def test_dicontainer_inject_override(self): DIContainer.container = {} test_value_initial = Maze test_value_override = AdapterManager inject_return_initial = inject(self.test_key, test_value_initial) inject_return_override = inject(self.test_key, test_value_override) assert isinstance( inject_return_initial, Maze) and inject_return_initial == inject_return_override
def __init__(self): self.display_manager = inject(DIContainerKeys.display_manager, AdapterManager)
def __init__(self): self._leaderboard_filename = "leaderboard.json" self._auth_code_admin = None print("MAZE GAME BOOTSRAPPER ---------") print("ENV STATUS CHECK -----") print("Admin Auth Code - " + ("ENABLED" if self._auth_code_admin is not None else "DISABLED")) print("SenseHat - " + ("ENABLED" if sensehat_compat else "DISABLED")) print("Leaderboard - " + self._leaderboard_filename) print("----------------------") # Initialization of ControlManager and DisplayManager self._control_manager = inject(DIContainerKeys.control_manager, AdapterManager) self._control_manager.add(ConsoleControlAdapter) self._display_manager = inject(DIContainerKeys.display_manager, AdapterManager) self._display_manager.add(ConsoleDisplayAdapter) # Initialization of other deps. self._error_handler = inject(DIContainerKeys.error_handler, ErrorHandler) self._maze = inject(DIContainerKeys.maze, Maze) self._menu = inject(DIContainerKeys.menu, Menu) # Leaderboard init. # Handles "corrupted" leaderboard files. self._leaderboard = None self._leaderboard_compat = False while self._leaderboard is None: try: self._leaderboard = inject(DIContainerKeys.leaderboard, Leaderboard, self._leaderboard_filename) self._leaderboard_compat = True except TypeError as e: self._error_handler.new_error(e) menu_obj = { "meta": { "title": "LEADERBOARD LOAD FAIL RESOLVER MENU" }, "sections": [{ "items": [{ "meta": { "title": "Disable leaderboard", "key": "D" } }, { "meta": { "title": "Reset leaderboard", "key": "R" } }] }] } user_choice = None while user_choice is None: self._display_manager.call( DisplayAdapterCalls.show_text, "\nThere was an issue with loading the leaderboard. (Check error above)" ) menu_render = self._menu.render(menu_obj) self._display_manager.call(DisplayAdapterCalls.show_text, menu_render) user_choice = self._control_manager.call( ControlAdapterCalls.get_userinput_string, "Enter option: ").upper() if user_choice == "D": self._leaderboard_compat = False self._leaderboard = "DISABLED" elif user_choice == "R": user_choice = self._control_manager.call( ControlAdapterCalls.get_userinput_string, "Are you sure? [Y/N] ").upper() if user_choice == "Y": # Overwrite leaderboard file. with open( os.path.join( os.path.dirname( os.path.realpath(__file__)), self._leaderboard_filename), "w") as f: f.writelines( json.dumps({ "meta": { "version": 1 }, "leaderboard": [] })) else: user_choice = None else: self._error_handler.new_error("Invalid user input")
def __init__(self, filename): self._filepath = os.path.join(os.path.dirname(os.path.realpath(__file__)), filename) self._load_file() self._score_init = 1000 self._maze = inject(DIContainerKeys.maze, Maze)
def __init__(self): self._sensehat = SenseHat() self._maze = inject(DIContainerKeys.maze, Maze) self._sensehat.low_light = True
def test_dicontainer_inject(self, test_input, expected): DIContainer.container = {} inject_return = inject(self.test_key, test_input) assert isinstance(inject_return, expected) and isinstance( DIContainer.get(self.test_key), expected)