def test_switch_navigator0_driver1_index(self): mobber_manager = MobberManager() mobber_manager.add_mobber("Joe") mobber_manager.add_mobber("Chris") mobber_manager.switch_navigator_driver() result = "Navigator: " + str(mobber_manager.navigator_index) + " Driver: " + str(mobber_manager.driver_index) self.assertEqual(result, "Navigator: 0 Driver: 1")
def test_clear(self): mobber_manager = MobberManager() mobber_manager.add_mobber("Joe") mobber_manager.add_mobber("Chris") mobber_manager.add_mobber("Sam") mobber_manager.clear() result = [] self.assertEqual(mobber_manager.get_mobbers(), result)
def test_add_mobber_joe_chris_joe__remove_joe_has_joe_chris(self): mobber_manager = MobberManager() mobber_manager.add_mobber("Joe") mobber_manager.add_mobber("Chris") mobber_manager.add_mobber("Joe") mobber_manager.remove_mobber(2) result = ["Joe", "Chris"] self.assertEqual(mobber_manager.get_mobbers(), result)
def test_navigator1_driver0_index(self): mobber_manager = MobberManager() mobber_manager.add_mobber("Joe") mobber_manager.add_mobber("Chris") result = "Navigator: " + str( mobber_manager.next_driver_index) + " Driver: " + str( mobber_manager.driver_index) self.assertEqual(result, "Navigator: 1 Driver: 0")
def test_add_4_mobbers_move_down_bottom(self): mobber_manager = MobberManager() mobber_manager.add_mobber("Joe") mobber_manager.add_mobber("Chris") mobber_manager.add_mobber("Will") mobber_manager.add_mobber("Eric") mobber_manager.move_mobber_down(3) result = ["Eric", "Chris", "Will", "Joe"] self.assertEqual(mobber_manager.get_mobbers(), result)
def test_add_4_mobbers_move_up_middle(self): mobber_manager = MobberManager() mobber_manager.add_mobber("Joe") mobber_manager.add_mobber("Chris") mobber_manager.add_mobber("Will") mobber_manager.add_mobber("Eric") mobber_manager.move_mobber_up(2) result = ["Joe", "Will", "Chris", "Eric"] self.assertEqual(mobber_manager.get_mobbers(), result)
def test_subscribe_to_mobber_list_changes(self): mobber_manager = MobberManager() result = { "result": "Mobbers in List for Each Change\n", "increment": 0 } def time_change_callback(mobber_list, driver_index, navigator_index): result["increment"] += 1 result["result"] += "Action " + result["increment"].__str__() + ":" for mobber_index in range(0, mobber_list.__len__()): result["result"] += mobber_list[mobber_index] if mobber_index == driver_index: result["result"] += " (Driver)" if mobber_index == navigator_index: result["result"] += " (Navigator)" result["result"] += ", " result["result"] += "\n" mobber_manager.subscribe_to_mobber_list_change(time_change_callback) mobber_manager.add_mobber("Joe") mobber_manager.add_mobber("Chris") mobber_manager.add_mobber("Sam") mobber_manager.add_mobber("John") mobber_manager.switch_next_driver() mobber_manager.add_mobber("Bill") mobber_manager.switch_next_driver() mobber_manager.switch_next_driver() mobber_manager.switch_next_driver() mobber_manager.switch_next_driver() mobber_manager.switch_next_driver() mobber_manager.remove_mobber(2) mobber_manager.remove_mobber(0) mobber_manager.switch_next_driver() mobber_manager.rewind_driver() mobber_manager.add_mobber("Seth") mobber_manager.rewind_driver() mobber_manager.rewind_driver() mobber_manager.rewind_driver() mobber_manager.move_mobber_down(0) mobber_manager.add_mobber("Fredrick") mobber_manager.move_mobber_up(2) mobber_manager.remove_mobber(1) mobber_manager.remove_mobber(0) mobber_manager.remove_mobber(0) Approvals.verify(result["result"], TextDiffReporter())
def __init__(self, *args, **kwargs): Tk.__init__(self, *args, **kwargs) # self.iconbitmap(default='C:\\Users\\Chris\\OneDrive\\Git\\Pycharm\\MobTimer\\time-bomb.ico') #TODO: iconbitmap needs to load the ico file as a string because of py2exe =/ self.time_options_manager = TimeOptionsManager() self.mobber_manager = MobberManager() self.countdown_manager = CountdownManager(self) self.session_manager = SessionManager(uuid) atexit.register(self.session_manager.clear_sessions) if self.session_manager.get_active_sessions().__len__() > 0: self.quit_and_destroy_session() self.session_manager.create_session() self.countdown_manager.subscribe_to_time_changes( self.show_screen_blocker_when_session_interupted) monitors = get_monitors() num_monitors = monitors.__len__() self.containers = [self] for monitor_index in range(1, num_monitors): monitor_screen_blocker = Toplevel(self) self.containers.append(monitor_screen_blocker) self.frame_types = (ScreenBlockerFrame, TransparentCountdownFrame) self.frames = {} for frame_type in self.frame_types: self.frames[frame_type] = [] for container in self.containers: container_frame = Frame(container) container_frame.grid(row=0, column=0, sticky=N + S + E + W) container_frame.grid_rowconfigure(0, weight=1) container_frame.grid_columnconfigure(0, weight=1) for frame_type in self.frame_types: frame_instance = frame_type(container_frame, self, self.time_options_manager, self.mobber_manager, self.countdown_manager) self.frames[frame_type].append(frame_instance) frame_instance.grid(row=0, column=0, sticky="nsew") self.last_frame = None self.show_screen_blocker_frame() for frame_instance in self.frames[TransparentCountdownFrame]: frame_instance.bind("<Enter>", self.toggle_transparent_frame_position) self.transparent_frame_position = 0 self.title("Mob Timer")
def test_remove_empty(self): mobber_manager = MobberManager() mobber_manager.remove_mobber(0) result = [] self.assertEqual(mobber_manager.get_mobbers(), result)
def test_add_mobber_chris_has_chris(self): mobber_manager = MobberManager() mobber_manager.add_mobber("Chris") result = ["Chris"] self.assertEqual(mobber_manager.get_mobbers(), result)
def test_empty_mobber_manager_has_no_items(self): mobber_manager = MobberManager() self.assertEqual(mobber_manager.mobber_count(), 0)
def __init__(self, *args, **kwargs): Tk.__init__(self, *args, **kwargs) self.toggle_transparent_frame_position_function = self.toggle_transparent_frame_position_enabled self.transparent_frame_monitor_index = 0 self.transparent_frame_position_index = 0 self.settings_manager = SettingsManager() self.tips_manager = TipsManager() self.time_options_manager = TimeSettingsManager() self.date_time_utility = DateTimeUtility() self.file_utilities = FileUtilities() self.event_logging_manager = EventLoggingManager(self.file_utilities, self.date_time_utility) self.mobber_manager = MobberManager(self.settings_manager.get_randomize_randomize_next_driver()) self.countdown_manager = CountdownManager(self) self.session_manager = SessionManager(uuid) self.timer_extension_count = self.settings_manager.get_timer_extension_count() self.extensions_used = 0 atexit.register(self.session_manager.clear_sessions) if self.session_manager.get_active_sessions().__len__() > 0: self.quit_and_destroy_session() self.session_manager.create_session() if sys.platform != 'darwin': self.iconbitmap(default='time-bomb.ico') self.countdown_manager.subscribe_to_time_changes(self.show_screen_blocker_when_session_interupted) self.theme_manager = ThemeManager() theme = self.settings_manager.get_general_theme() if not theme == 'none': self.theme_manager.set_theme(theme) monitors = ScreenUtility.get_monitors_or_default() num_monitors = monitors.__len__() self.parent_containers = [self] self.containers = [] for monitor_index in range(1, num_monitors): monitor_screen_blocker = Toplevel(self) self.parent_containers.append(monitor_screen_blocker) self.frame_types = (ScreenBlockerFrame, TransparentCountdownFrame, MinimalScreenBlockerFrame) self.frames = {} for frame_type in self.frame_types: self.frames[frame_type] = [] for parent_container, monitor in zip(self.parent_containers, monitors): parent_container.grid_rowconfigure(0, weight=1) parent_container.grid_columnconfigure(0, weight=1) container = OuterFrame(parent=parent_container, monitor=monitor) self.containers.append(container) container.grid(row=0, column=0, sticky=(N, S, E, W)) container.grid_rowconfigure(0, weight=1) container.grid_columnconfigure(0, weight=1) for frame_type in self.frame_types: frame_instance = frame_type(container, self, self.time_options_manager, self.mobber_manager, self.countdown_manager, self.settings_manager, self.tips_manager, self.theme_manager) self.frames[frame_type].append(frame_instance) frame_instance.grid(row=0, column=0, sticky=(N, S, E, W)) frame_instance.grid_rowconfigure(0, weight=1) frame_instance.grid_columnconfigure(0, weight=1) self.last_frame = None self.show_screen_blocker_frame() for frame_instance in self.frames[TransparentCountdownFrame]: frame_instance.bind("<Enter>", self.toggle_transparent_frame_position) self.transparent_frame_position = 0 self.title("Mob Timer") self.bind_all("<Control-Return>", self.launch_transparent_countdown_if_blocking) self.time_options_manager.set_countdown_time(self.settings_manager.get_timer_minutes(), self.settings_manager.get_timer_seconds()) self.dojo_manager = DojoManager(self) if self.settings_manager.get_event_logging_enabled(): self.mobber_manager.subscribe_to_mobber_add(self.add_mobber_callback) self.mobber_manager.subscribe_to_mobber_remove(self.remove_mobber_callback)
def test_subscribe_to_mobber_list_changes_random(self): random.seed(0) mobber_manager = MobberManager(True) result = { "result": "Mobbers in List for Each Change\n", "increment": 0 } def time_change_callback(mobber_list, driver_index, navigator_index): result["increment"] += 1 result["result"] += "Action " + result["increment"].__str__() + ":" for mobber_index in range(0, mobber_list.__len__()): result["result"] += mobber_list[mobber_index] if mobber_index == driver_index: result["result"] += " (Driver)" if mobber_index == navigator_index: result["result"] += " (Next)" result["result"] += ", " result["result"] += "\n" def on_mobber_add(mobber_name): result["increment"] += 1 result["result"] += "Action " + result["increment"].__str__( ) + ":" + mobber_name + " added\n" mobber_manager.subscribe_to_mobber_add(on_mobber_add) def on_mobber_remove(mobber_name): result["increment"] += 1 result["result"] += "Action " + result["increment"].__str__( ) + ":" + mobber_name + " removed\n" mobber_manager.subscribe_to_mobber_remove(on_mobber_remove) mobber_manager.subscribe_to_mobber_list_change(time_change_callback) mobber_manager.add_mobber("Joe") mobber_manager.add_mobber("Chris") mobber_manager.add_mobber("Sam") mobber_manager.add_mobber("John") mobber_manager.switch_next_driver() mobber_manager.add_mobber("Bill") mobber_manager.switch_next_driver() mobber_manager.switch_next_driver() mobber_manager.switch_next_driver() mobber_manager.set_mobber_list(["Hello", "Eric", "Joe"]) mobber_manager.switch_next_driver() mobber_manager.switch_next_driver() mobber_manager.remove_mobber(2) mobber_manager.remove_mobber(0) mobber_manager.switch_next_driver() mobber_manager.add_mobber("Seth") mobber_manager.move_mobber_down(0) mobber_manager.add_mobber("Fredrick") mobber_manager.move_mobber_up(2) mobber_manager.remove_mobber(1) mobber_manager.remove_mobber(0) mobber_manager.remove_mobber(0) verify(result["result"])