85 lines
2.5 KiB
Python
85 lines
2.5 KiB
Python
import os
|
|
|
|
from flask import Flask
|
|
|
|
|
|
class TestDevelopmentConfig:
|
|
def test_debug_is_enabled(self, app: Flask) -> None:
|
|
app.config.from_object('fittrackee.config.DevelopmentConfig')
|
|
|
|
assert app.config['DEBUG']
|
|
|
|
def test_testing_is_disabled(self, app: Flask) -> None:
|
|
app.config.from_object('fittrackee.config.DevelopmentConfig')
|
|
|
|
assert not app.config['TESTING']
|
|
|
|
def test_sqlalchemy_is_configured_to_use_dev_database(
|
|
self, app: Flask
|
|
) -> None:
|
|
app.config.from_object('fittrackee.config.DevelopmentConfig')
|
|
|
|
assert app.config['SQLALCHEMY_DATABASE_URI'] == os.environ.get(
|
|
'DATABASE_URL'
|
|
)
|
|
|
|
|
|
class TestTestingConfig:
|
|
def test_debug_is_enabled(self, app: Flask) -> None:
|
|
app.config.from_object('fittrackee.config.TestingConfig')
|
|
|
|
assert app.config['DEBUG']
|
|
|
|
def test_testing_is_enabled(self, app: Flask) -> None:
|
|
app.config.from_object('fittrackee.config.TestingConfig')
|
|
|
|
assert app.config['TESTING']
|
|
|
|
def test_sqlalchemy_is_configured_to_use_testing_database(
|
|
self, app: Flask
|
|
) -> None:
|
|
app.config.from_object('fittrackee.config.TestingConfig')
|
|
|
|
assert app.config['SQLALCHEMY_DATABASE_URI'] == os.environ.get(
|
|
'DATABASE_TEST_URL', ''
|
|
) + (
|
|
f"_{os.getenv('PYTEST_XDIST_WORKER')}"
|
|
if os.getenv('PYTEST_XDIST_WORKER')
|
|
else ''
|
|
)
|
|
|
|
def test_it_does_not_preserve_context_on_exception(
|
|
self, app: Flask
|
|
) -> None:
|
|
app.config.from_object('fittrackee.config.TestingConfig')
|
|
|
|
assert not app.config['PRESERVE_CONTEXT_ON_EXCEPTION']
|
|
|
|
|
|
class TestProductionConfig:
|
|
def test_debug_is_disabled(self, app: Flask) -> None:
|
|
app.config.from_object('fittrackee.config.ProductionConfig')
|
|
|
|
assert not app.config['DEBUG']
|
|
|
|
def test_testing_is_disabled(self, app: Flask) -> None:
|
|
app.config.from_object('fittrackee.config.ProductionConfig')
|
|
|
|
assert not app.config['TESTING']
|
|
|
|
def test_sqlalchemy_is_configured_to_use_testing_database(
|
|
self, app: Flask
|
|
) -> None:
|
|
app.config.from_object('fittrackee.config.ProductionConfig')
|
|
|
|
assert app.config['SQLALCHEMY_DATABASE_URI'] == os.environ.get(
|
|
'DATABASE_TEST_URL'
|
|
)
|
|
|
|
def test_it_does_not_preserve_context_on_exception(
|
|
self, app: Flask
|
|
) -> None:
|
|
app.config.from_object('fittrackee.config.ProductionConfig')
|
|
|
|
assert not app.config['PRESERVE_CONTEXT_ON_EXCEPTION']
|