from behave import fixture, use_fixture from injector import Injector from tui_rsync.core.components.backup_plan.application.repository.backup_plan_repository import BackupPlanRepository from tui_rsync.core.components.backup_plan.application.services.backup_plan_service import BackupPlanService from tui_rsync.infrastructure.configuration import TestingConfiguration, CurrentConfiguration from tui_rsync.infrastructure.orm import InMemoryDatabaseManager @fixture def setup_in_memory_database_manager(context): context.db = context.injector.get(InMemoryDatabaseManager) yield context.db @fixture def setup_backup_plan_service(context): context.backup_plan_service = context.injector.get(BackupPlanService) yield context.backup_plan_service @fixture def setup_injector_for_testing(context): context.injector = Injector([TestingConfiguration()]) CurrentConfiguration.set_injector(context.injector) yield context.injector def before_tag(context, tag): if tag == "fixture.injector": use_fixture(setup_injector_for_testing, context) if tag == "fixture.in_memory_database": use_fixture(setup_in_memory_database_manager, context) if tag == "fixture.backup_plan_service": use_fixture(setup_backup_plan_service, context)