Projekt

Obecné

Profil

« Předchozí | Další » 

Revize d2b0ef43

Přidáno uživatelem Stanislav Král před asi 4 roky(ů)

Re #8475 - Applied FlaskInjector to REST API tests

Zobrazit rozdíly:

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