class Context: def __init__(self): self.configuration = Configuration() self.database = Database(self.configuration.database.url) self.game_repository: GameRepository = MySQLGameRepository( self.database) self.create_game_command_handler = CreateGameCommandHandler( GameCreator(self.game_repository)) self.search_game_query_handler = SearchGameQueryHandler( self.game_repository) self.query_bus: QueryBus = SimpleQueryBus( {SearchGameQuery.__name__: self.search_game_query_handler}) self.guess_repository: GuessRepository = MySQLGuessRepository( self.database) self.create_guess_command_handler = \ CreateGuessCommandHandler(GuessCreator( self.guess_repository, self.query_bus)) def tear_down(self): self.database.close()
def db_connection(db_config: dict): connection = Database(db_config['public-transport-stops']) yield connection connection.close()