Revize d2b0ef43
Přidáno uživatelem Stanislav Král před asi 4 roky(ů)
src/config/configuration.py | ||
---|---|---|
3 | 3 |
import configparser |
4 | 4 |
from injector import singleton |
5 | 5 |
|
6 |
from src.constants import DEFAULT_CONNECTION_STRING |
|
6 |
from src.constants import DEFAULT_CONNECTION_STRING, TEST_DATABASE_FILE
|
|
7 | 7 |
|
8 | 8 |
DATABASE_SECTION = "Database" |
9 | 9 |
DATABASE_CONNECTION_STRING = "ConnectionString" |
... | ... | |
23 | 23 |
self.connection_string = DEFAULT_CONNECTION_STRING |
24 | 24 |
|
25 | 25 |
|
26 |
def test_configuration(): |
|
27 |
conf = Configuration() |
|
28 |
conf.connection_string = TEST_DATABASE_FILE |
|
29 |
return conf |
|
30 |
|
|
31 |
|
|
32 |
def test_configuration_binder(binder): |
|
33 |
binder.bind(Configuration, to=test_configuration(), scope=singleton) |
|
34 |
|
|
35 |
|
|
26 | 36 |
def configure_env_variable(binder): |
27 | 37 |
""" |
28 | 38 |
Load configuration file stored in X509_CONFIG environment variable. |
src/constants.py | ||
---|---|---|
1 | 1 |
from src.utils.file_anchor import FileAnchor |
2 | 2 |
|
3 |
INMEMORY_DATABASE_FILE = ":memory:" |
|
4 |
TEST_DATABASE_FILE = INMEMORY_DATABASE_FILE |
|
3 | 5 |
DATABASE_FILE = "db/database_sqlite.db" |
4 | 6 |
DATABASE_FILE_LOCATION = FileAnchor("aswi2021jmsd", DATABASE_FILE) |
5 | 7 |
DATETIME_FORMAT = "%d.%m.%Y %H:%M:%S" |
tests/integration_tests/rest_api/conftest.py | ||
---|---|---|
1 | 1 |
import pytest |
2 |
import app |
|
2 |
from flask_injector import FlaskInjector |
|
3 |
from injector import Injector |
|
4 |
|
|
3 | 5 |
from app import app as flask_app |
4 |
from src.config import configuration
|
|
6 |
from src.config.configuration import test_configuration_binder
|
|
5 | 7 |
from src.config.connection_provider import ConnectionProvider |
6 |
from src.controllers.certificates_controller import CertController |
|
7 |
from src.db.setup_database import setup_database |
|
8 |
from injector import Module, Annotated, inject, Injector |
|
9 | 8 |
|
10 | 9 |
|
11 | 10 |
@pytest.fixture(scope="session") |
12 | 11 |
def server(): |
13 |
injector = Injector([configuration.configure_env_variable, ConnectionProvider]) |
|
14 |
app.certificate_controller = injector.get(CertController) |
|
12 |
modules = [test_configuration_binder, ConnectionProvider] |
|
13 |
injector = Injector(modules) |
|
14 |
FlaskInjector(app=flask_app, modules=modules) |
|
15 | 15 |
|
16 |
setup_database() |
|
17 | 16 |
flask_app.testing = True |
18 | 17 |
with flask_app.test_client() as s: |
19 | 18 |
yield s |
Také k dispozici: Unified diff
Re #8475 - Applied FlaskInjector to REST API tests