def setup(self): self.monitor = TextMonitor()
class TestMonitor(object): @classmethod def setup_class(cls): print complete_line( __name__ + ':{}.setup_class()'.format(cls.__name__), '-', 77) @classmethod def teardown_class(cls): print complete_line( __name__ + ':{}.teardown_class()'.format(cls.__name__), '-', 77) def setup(self): self.monitor = TextMonitor() def teardown(self): self.monitor = None def test_create_default_entry(self): """ Test creating an entryt from a path. """ entry = self.monitor._create_default_entry('test/entry_test', 1) assert_equal(entry.path, 'test/entry_test') assert_equal(entry.name, 'entry_test') assert_equal(entry.formatting, '{test/entry_test}') assert_equal(entry.depend_on, ['test/entry_test']) assert_equal(entry.value, '1') def test_add_displayed_entry(self): """ Test adding an entry to the displayed ones. """ entry = self.monitor._create_default_entry('test', 1) self.monitor._displayed_entry_added(entry) assert_equal(self.monitor.updaters, {'test': [entry.update]}) assert_equal(self.monitor.database_entries, ['test']) self.monitor._displayed_entry_added(entry) assert_equal(self.monitor.updaters, {'test': [entry.update, entry.update]}) assert_equal(self.monitor.database_entries, ['test']) def test_remove_displayed_entry(self): """ Test removing an entry from the displayed ones. """ entry = self.monitor._create_default_entry('test', 1) self.monitor.updaters = {'test': [entry.update, entry.update]} self.monitor.database_entries = ['test'] self.monitor._displayed_entry_removed(entry) assert_equal(self.monitor.updaters, {'test': [entry.update]}) assert_equal(self.monitor.database_entries, ['test']) self.monitor._displayed_entry_removed(entry) assert_equal(self.monitor.updaters, {}) assert_equal(self.monitor.database_entries, []) def test_displayed_entries_observer(self): """ Test displayed entries observer does its job in all cases. """ entry = self.monitor._create_default_entry('test', 1) entry2 = self.monitor._create_default_entry('test2', 2) # Test container operations # __iadd__ self.monitor.displayed_entries += [entry] assert_equal(len(self.monitor.updaters['test']), 1) assert_equal(self.monitor.database_entries, ['test']) # append self.monitor.displayed_entries.append(entry) assert_equal(len(self.monitor.updaters['test']), 2) assert_equal(self.monitor.database_entries, ['test']) # insert self.monitor.displayed_entries.insert(0, entry) assert_equal(len(self.monitor.updaters['test']), 3) assert_equal(self.monitor.database_entries, ['test']) # extend self.monitor.displayed_entries.extend([entry]) assert_equal(len(self.monitor.updaters['test']), 4) assert_equal(self.monitor.database_entries, ['test']) # __delitem__ del self.monitor.displayed_entries[0] assert_equal(len(self.monitor.updaters['test']), 3) assert_equal(self.monitor.database_entries, ['test']) # remove self.monitor.displayed_entries.remove(entry) assert_equal(len(self.monitor.updaters['test']), 2) assert_equal(self.monitor.database_entries, ['test']) # pop self.monitor.displayed_entries.pop() assert_equal(len(self.monitor.updaters['test']), 1) assert_equal(self.monitor.database_entries, ['test']) # __setitem__ self.monitor.displayed_entries[0] = entry2 assert_equal(self.monitor.updaters, {'test2': [entry2.update]}) assert_equal(self.monitor.database_entries, ['test2']) # Test update the whole list self.monitor.displayed_entries = [entry] assert_equal(self.monitor.updaters, {'test': [entry.update]}) assert_equal(self.monitor.database_entries, ['test']) def test_database_modified1(self): """ Test handling the adding of an entry to the database. """ self.monitor.database_modified({'value': ('test/entry_test', 1)}) assert_equal(self.monitor.database_entries, ['test/entry_test']) assert_equal(len(self.monitor.displayed_entries), 1) assert_false(self.monitor.undisplayed_entries) assert_false(self.monitor.hidden_entries) entry = self.monitor.displayed_entries[0] assert_equal(entry.path, 'test/entry_test') assert_equal(entry.name, 'entry_test') assert_equal(entry.formatting, '{test/entry_test}') assert_equal(entry.depend_on, ['test/entry_test']) assert_equal(self.monitor._database_values, {'test/entry_test': 1}) assert_in('test/entry_test', self.monitor.updaters) def test_database_modified2(self): """ Test handling the adding of an entry subject to a reject rule. """ self.monitor.rules.append(RejectRule(name='Test', suffixes=['test'])) self.monitor.database_modified({'value': ('root/make_test', 1)}) assert_equal(self.monitor.database_entries, []) assert_false(self.monitor.displayed_entries) assert_equal(len(self.monitor.undisplayed_entries), 1) assert_false(self.monitor.hidden_entries) assert_equal(self.monitor.undisplayed_entries[0].depend_on, ['root/make_test']) assert_equal(self.monitor._database_values, {'root/make_test': 1}) assert_false(self.monitor.updaters) def test_database_modified3(self): """ Test handling the adding of entries subject to a format rule. """ rule = FormatRule(name='Test', suffixes=['loop', 'index'], new_entry_suffix='progress', new_entry_formatting='{index}/{loop}') self.monitor.rules.append(rule) self.monitor.database_modified({'value': ('root/test_loop', 10)}) assert_equal(self.monitor.database_entries, ['root/test_loop']) assert_equal(len(self.monitor.displayed_entries), 1) assert_false(self.monitor.undisplayed_entries) assert_false(self.monitor.hidden_entries) assert_equal(self.monitor.displayed_entries[0].depend_on, ['root/test_loop']) assert_equal(self.monitor._database_values, {'root/test_loop': 10}) assert_in('root/test_loop', self.monitor.updaters) self.monitor.database_modified({'value': ('root/test2_index', 1)}) assert_equal(self.monitor.database_entries, ['root/test_loop', 'root/test2_index']) assert_equal(len(self.monitor.displayed_entries), 2) assert_false(self.monitor.undisplayed_entries) assert_false(self.monitor.hidden_entries) assert_equal(self.monitor._database_values, { 'root/test_loop': 10, 'root/test2_index': 1 }) self.monitor.database_modified({'value': ('root/test_index', 1)}) assert_equal(self.monitor.database_entries, ['root/test_loop', 'root/test2_index', 'root/test_index']) assert_equal(len(self.monitor.displayed_entries), 2) assert_false(self.monitor.undisplayed_entries) assert_equal(len(self.monitor.hidden_entries), 2) assert_equal(self.monitor._database_values, { 'root/test_loop': 10, 'root/test2_index': 1, 'root/test_index': 1 }) assert_equal(len(self.monitor.updaters['root/test_loop']), 1) assert_equal(len(self.monitor.updaters['root/test_index']), 1) entry = self.monitor.displayed_entries[0] if entry.name != 'test_progress': entry = self.monitor.displayed_entries[1] assert_equal(entry.name, 'test_progress') assert_equal(entry.path, 'root/test_progress') assert_equal(entry.depend_on, ['root/test_loop', 'root/test_index']) assert_equal(entry.formatting, '{root/test_index}/{root/test_loop}') entry.update(self.monitor._database_values) process_app_events() assert_equal(entry.value, '1/10') rule.hide_entries = False self.monitor.database_modified({'value': ('root/test2_loop', 10)}) assert_equal(self.monitor.database_entries, [ 'root/test_loop', 'root/test2_index', 'root/test_index', 'root/test2_loop' ]) assert_equal(len(self.monitor.displayed_entries), 4) assert_false(self.monitor.undisplayed_entries) assert_equal(len(self.monitor.hidden_entries), 2) assert_equal( self.monitor._database_values, { 'root/test_loop': 10, 'root/test2_index': 1, 'root/test_index': 1, 'root/test2_loop': 10 }) assert_equal(len(self.monitor.updaters['root/test2_loop']), 2) assert_equal(len(self.monitor.updaters['root/test2_index']), 2) def test_database_modified4(self): """ Test handling the adding/removing an entry linked to a custom one. """ entry = self.monitor._create_default_entry('test', 1) entry.name = 'Custom' entry.path = 'custom' entry.formatting = 'This test n {test}' entry.depend_on = ['test'] self.monitor.custom_entries.append(entry) self.monitor.database_modified({'value': ('aux', 1)}) assert_equal(self.monitor.database_entries, ['aux']) assert_equal(len(self.monitor.displayed_entries), 1) assert_false(self.monitor.undisplayed_entries) assert_false(self.monitor.hidden_entries) assert_equal(self.monitor._database_values, {'aux': 1}) self.monitor.database_modified({'value': ('test', 2)}) assert_equal(self.monitor.database_entries, ['aux', 'test']) assert_equal(len(self.monitor.displayed_entries), 3) assert_false(self.monitor.undisplayed_entries) assert_false(self.monitor.hidden_entries) assert_equal(self.monitor._database_values, {'aux': 1, 'test': 2}) assert_equal(len(self.monitor.updaters['test']), 2) self.monitor.database_modified({'value': ('test', )}) assert_equal(self.monitor.database_entries, ['aux']) assert_equal(len(self.monitor.displayed_entries), 1) assert_false(self.monitor.undisplayed_entries) assert_false(self.monitor.hidden_entries) assert_equal(self.monitor._database_values, {'aux': 1}) assert_true(self.monitor.custom_entries) assert_not_in('test', self.monitor.updaters) def test_refresh_monitored_entries(self): """ Test refreshing entries (with a custom entry). """ entry = self.monitor._create_default_entry('test', 1) entry.name = 'Custom' entry.path = 'custom' entry.formatting = 'This test n {test}' entry.depend_on = ['test'] self.monitor.custom_entries.append(entry) self.monitor.database_modified({'value': ('test', 1)}) self.monitor.refresh_monitored_entries({'test': 2}) assert_equal(self.monitor.database_entries, ['test']) assert_equal(len(self.monitor.displayed_entries), 2) assert_false(self.monitor.undisplayed_entries) assert_false(self.monitor.hidden_entries) assert_equal(self.monitor._database_values, {'test': 2}) def test_life_cycle1(self): """ Test life cycle: auto_show on, proxy active on closing. """ assert_false(Window.windows) self.monitor.start(None) process_app_events() assert_true(self.monitor._view.proxy_is_active) assert_true(Window.windows) self.monitor._view.minimize() process_app_events() self.monitor.show_monitor(None) process_app_events() assert_false(self.monitor._view.is_minimized()) self.monitor.stop() process_app_events() assert_false(Window.windows) assert_is(self.monitor._view, None) def test_life_cycle2(self): """ Test life cycle: auto_show off, show later, proxy active on closing """ assert_false(Window.windows) self.monitor.auto_show = False self.monitor.start(None) process_app_events() assert_is(self.monitor._view, None) self.monitor.show_monitor(None) process_app_events() assert_true(self.monitor._view.proxy_is_active) assert_true(Window.windows) self.monitor._view.close() process_app_events() assert_false(self.monitor._view.proxy_is_active) self.monitor.show_monitor(None) process_app_events() assert_true(self.monitor._view.proxy_is_active) self.monitor.stop() process_app_events() assert_false(Window.windows) assert_is(self.monitor._view, None) def test_process_news(self): """ Test processing news coming from a database. """ rule = FormatRule(name='Test', suffixes=['loop', 'index'], new_entry_suffix='progress', new_entry_formatting='{index}/{loop}', hide_entries=False) self.monitor.rules.append(rule) self.monitor.database_modified({'value': ('root/test_loop', 10)}) self.monitor.database_modified({'value': ('root/test_index', 1)}) self.monitor.process_news(('root/test_index', 2)) process_app_events() assert_equal(self.monitor.displayed_entries[0].value, '10') assert_equal(self.monitor.displayed_entries[1].value, '2') assert_equal(self.monitor.displayed_entries[2].value, '2/10') def test_clear_state(self): """ Test clearing the monitor state. """ rule = FormatRule(name='Test', suffixes=['loop', 'index'], new_entry_suffix='progress', new_entry_formatting='{index}/{loop}') self.monitor.rules.append(rule) self.monitor.database_modified({'value': ('root/test_loop', 10)}) self.monitor.database_modified({'value': ('root/test2_index', 1)}) self.monitor.database_modified({'value': ('root/test_index', 1)}) self.monitor.clear_state() assert_false(self.monitor.displayed_entries) assert_false(self.monitor.undisplayed_entries) assert_false(self.monitor.hidden_entries) assert_false(self.monitor.updaters) assert_false(self.monitor.custom_entries) assert_false(self.monitor.database_entries) def test_get_state(self): """ Test get_state. """ self.monitor.measure_name = 'Test' entry = self.monitor._create_default_entry('test', 1) entry.name = 'Custom' entry.path = 'custom' entry.formatting = 'This test n {root/test_loop}*{root/test2_loop}' entry.depend_on = ['root/test_loop', 'root/test2_loop'] self.monitor.custom_entries.append(entry) rule = FormatRule(name='Test', suffixes=['loop', 'index'], new_entry_suffix='progress', new_entry_formatting='{index}/{loop}') self.monitor.rules.append(rule) self.monitor.database_modified({'value': ('root/test_loop', 10)}) self.monitor.database_modified({'value': ('root/test2_index', 1)}) self.monitor.database_modified({'value': ('root/test_index', 1)}) self.monitor.database_modified({'value': ('root/test2_loop', 10)}) state = self.monitor.get_state() assert_in('rule_0', state) rule = state['rule_0'] assert_dict_equal( rule, { 'class_name': 'FormatRule', 'name': 'Test', 'hide_entries': 'True', 'suffixes': "['loop', 'index']", 'new_entry_suffix': 'progress', 'new_entry_formatting': '{index}/{loop}' }) assert_in('custom_0', state) custom = state['custom_0'] aux = { 'name': 'Custom', 'path': 'custom', 'formatting': 'This test n {root/test_loop}*{root/test2_loop}', 'depend_on': "['root/test_loop', 'root/test2_loop']" } assert_dict_equal(custom, aux) assert_equal(state['measure_name'], 'Test') assert_equal(state['auto_show'], 'True') assert_equal(state['displayed'], repr([e.path for e in self.monitor.displayed_entries])) assert_equal(state['undisplayed'], repr([e.path for e in self.monitor.undisplayed_entries])) assert_equal(state['hidden'], repr([e.path for e in self.monitor.hidden_entries])) def test_get_editor_page(self): """ Test creating the page to edit the monitor. """ assert_true(self.monitor.get_editor_page()) def test_all_database_entries(self): """ Test all_database_entries property. """ test = {'test': 1, '2': 'aux'} self.monitor._database_values = test assert_equal(sorted(self.monitor.all_database_entries), sorted(test.keys()))
class TestMonitor(object): @classmethod def setup_class(cls): print complete_line(__name__ + ':{}.setup_class()'.format(cls.__name__), '-', 77) @classmethod def teardown_class(cls): print complete_line(__name__ + ':{}.teardown_class()'.format(cls.__name__), '-', 77) def setup(self): self.monitor = TextMonitor() def teardown(self): self.monitor = None def test_create_default_entry(self): """ Test creating an entryt from a path. """ entry = self.monitor._create_default_entry('test/entry_test', 1) assert_equal(entry.path, 'test/entry_test') assert_equal(entry.name, 'entry_test') assert_equal(entry.formatting, '{test/entry_test}') assert_equal(entry.depend_on, ['test/entry_test']) assert_equal(entry.value, '1') def test_add_displayed_entry(self): """ Test adding an entry to the displayed ones. """ entry = self.monitor._create_default_entry('test', 1) self.monitor._displayed_entry_added(entry) assert_equal(self.monitor.updaters, {'test': [entry.update]}) assert_equal(self.monitor.database_entries, ['test']) self.monitor._displayed_entry_added(entry) assert_equal(self.monitor.updaters, {'test': [entry.update, entry.update]}) assert_equal(self.monitor.database_entries, ['test']) def test_remove_displayed_entry(self): """ Test removing an entry from the displayed ones. """ entry = self.monitor._create_default_entry('test', 1) self.monitor.updaters = {'test': [entry.update, entry.update]} self.monitor.database_entries = ['test'] self.monitor._displayed_entry_removed(entry) assert_equal(self.monitor.updaters, {'test': [entry.update]}) assert_equal(self.monitor.database_entries, ['test']) self.monitor._displayed_entry_removed(entry) assert_equal(self.monitor.updaters, {}) assert_equal(self.monitor.database_entries, []) def test_displayed_entries_observer(self): """ Test displayed entries observer does its job in all cases. """ entry = self.monitor._create_default_entry('test', 1) entry2 = self.monitor._create_default_entry('test2', 2) # Test container operations # __iadd__ self.monitor.displayed_entries += [entry] assert_equal(len(self.monitor.updaters['test']), 1) assert_equal(self.monitor.database_entries, ['test']) # append self.monitor.displayed_entries.append(entry) assert_equal(len(self.monitor.updaters['test']), 2) assert_equal(self.monitor.database_entries, ['test']) # insert self.monitor.displayed_entries.insert(0, entry) assert_equal(len(self.monitor.updaters['test']), 3) assert_equal(self.monitor.database_entries, ['test']) # extend self.monitor.displayed_entries.extend([entry]) assert_equal(len(self.monitor.updaters['test']), 4) assert_equal(self.monitor.database_entries, ['test']) # __delitem__ del self.monitor.displayed_entries[0] assert_equal(len(self.monitor.updaters['test']), 3) assert_equal(self.monitor.database_entries, ['test']) # remove self.monitor.displayed_entries.remove(entry) assert_equal(len(self.monitor.updaters['test']), 2) assert_equal(self.monitor.database_entries, ['test']) # pop self.monitor.displayed_entries.pop() assert_equal(len(self.monitor.updaters['test']), 1) assert_equal(self.monitor.database_entries, ['test']) # __setitem__ self.monitor.displayed_entries[0] = entry2 assert_equal(self.monitor.updaters, {'test2': [entry2.update]}) assert_equal(self.monitor.database_entries, ['test2']) # Test update the whole list self.monitor.displayed_entries = [entry] assert_equal(self.monitor.updaters, {'test': [entry.update]}) assert_equal(self.monitor.database_entries, ['test']) def test_database_modified1(self): """ Test handling the adding of an entry to the database. """ self.monitor.database_modified({'value': ('test/entry_test', 1)}) assert_equal(self.monitor.database_entries, ['test/entry_test']) assert_equal(len(self.monitor.displayed_entries), 1) assert_false(self.monitor.undisplayed_entries) assert_false(self.monitor.hidden_entries) entry = self.monitor.displayed_entries[0] assert_equal(entry.path, 'test/entry_test') assert_equal(entry.name, 'entry_test') assert_equal(entry.formatting, '{test/entry_test}') assert_equal(entry.depend_on, ['test/entry_test']) assert_equal(self.monitor._database_values, {'test/entry_test': 1}) assert_in('test/entry_test', self.monitor.updaters) def test_database_modified2(self): """ Test handling the adding of an entry subject to a reject rule. """ self.monitor.rules.append(RejectRule(name='Test', suffixes=['test'])) self.monitor.database_modified({'value': ('root/make_test', 1)}) assert_equal(self.monitor.database_entries, []) assert_false(self.monitor.displayed_entries) assert_equal(len(self.monitor.undisplayed_entries), 1) assert_false(self.monitor.hidden_entries) assert_equal(self.monitor.undisplayed_entries[0].depend_on, ['root/make_test']) assert_equal(self.monitor._database_values, {'root/make_test': 1}) assert_false(self.monitor.updaters) def test_database_modified3(self): """ Test handling the adding of entries subject to a format rule. """ rule = FormatRule(name='Test', suffixes=['loop', 'index'], new_entry_suffix='progress', new_entry_formatting='{index}/{loop}') self.monitor.rules.append(rule) self.monitor.database_modified({'value': ('root/test_loop', 10)}) assert_equal(self.monitor.database_entries, ['root/test_loop']) assert_equal(len(self.monitor.displayed_entries), 1) assert_false(self.monitor.undisplayed_entries) assert_false(self.monitor.hidden_entries) assert_equal(self.monitor.displayed_entries[0].depend_on, ['root/test_loop']) assert_equal(self.monitor._database_values, {'root/test_loop': 10}) assert_in('root/test_loop', self.monitor.updaters) self.monitor.database_modified({'value': ('root/test2_index', 1)}) assert_equal(self.monitor.database_entries, ['root/test_loop', 'root/test2_index']) assert_equal(len(self.monitor.displayed_entries), 2) assert_false(self.monitor.undisplayed_entries) assert_false(self.monitor.hidden_entries) assert_equal(self.monitor._database_values, {'root/test_loop': 10, 'root/test2_index': 1}) self.monitor.database_modified({'value': ('root/test_index', 1)}) assert_equal(self.monitor.database_entries, ['root/test_loop', 'root/test2_index', 'root/test_index']) assert_equal(len(self.monitor.displayed_entries), 2) assert_false(self.monitor.undisplayed_entries) assert_equal(len(self.monitor.hidden_entries), 2) assert_equal(self.monitor._database_values, {'root/test_loop': 10, 'root/test2_index': 1, 'root/test_index': 1}) assert_equal(len(self.monitor.updaters['root/test_loop']), 1) assert_equal(len(self.monitor.updaters['root/test_index']), 1) entry = self.monitor.displayed_entries[0] if entry.name != 'test_progress': entry = self.monitor.displayed_entries[1] assert_equal(entry.name, 'test_progress') assert_equal(entry.path, 'root/test_progress') assert_equal(entry.depend_on, ['root/test_loop', 'root/test_index']) assert_equal(entry.formatting, '{root/test_index}/{root/test_loop}') entry.update(self.monitor._database_values) process_app_events() assert_equal(entry.value, '1/10') rule.hide_entries = False self.monitor.database_modified({'value': ('root/test2_loop', 10)}) assert_equal(self.monitor.database_entries, ['root/test_loop', 'root/test2_index', 'root/test_index', 'root/test2_loop']) assert_equal(len(self.monitor.displayed_entries), 4) assert_false(self.monitor.undisplayed_entries) assert_equal(len(self.monitor.hidden_entries), 2) assert_equal(self.monitor._database_values, {'root/test_loop': 10, 'root/test2_index': 1, 'root/test_index': 1, 'root/test2_loop': 10}) assert_equal(len(self.monitor.updaters['root/test2_loop']), 2) assert_equal(len(self.monitor.updaters['root/test2_index']), 2) def test_database_modified4(self): """ Test handling the adding/removing an entry linked to a custom one. """ entry = self.monitor._create_default_entry('test', 1) entry.name = 'Custom' entry.path = 'custom' entry.formatting = 'This test n {test}' entry.depend_on = ['test'] self.monitor.custom_entries.append(entry) self.monitor.database_modified({'value': ('aux', 1)}) assert_equal(self.monitor.database_entries, ['aux']) assert_equal(len(self.monitor.displayed_entries), 1) assert_false(self.monitor.undisplayed_entries) assert_false(self.monitor.hidden_entries) assert_equal(self.monitor._database_values, {'aux': 1}) self.monitor.database_modified({'value': ('test', 2)}) assert_equal(self.monitor.database_entries, ['aux', 'test']) assert_equal(len(self.monitor.displayed_entries), 3) assert_false(self.monitor.undisplayed_entries) assert_false(self.monitor.hidden_entries) assert_equal(self.monitor._database_values, {'aux': 1, 'test': 2}) assert_equal(len(self.monitor.updaters['test']), 2) self.monitor.database_modified({'value': ('test',)}) assert_equal(self.monitor.database_entries, ['aux']) assert_equal(len(self.monitor.displayed_entries), 1) assert_false(self.monitor.undisplayed_entries) assert_false(self.monitor.hidden_entries) assert_equal(self.monitor._database_values, {'aux': 1}) assert_true(self.monitor.custom_entries) assert_not_in('test', self.monitor.updaters) def test_refresh_monitored_entries(self): """ Test refreshing entries (with a custom entry). """ entry = self.monitor._create_default_entry('test', 1) entry.name = 'Custom' entry.path = 'custom' entry.formatting = 'This test n {test}' entry.depend_on = ['test'] self.monitor.custom_entries.append(entry) self.monitor.database_modified({'value': ('test', 1)}) self.monitor.refresh_monitored_entries({'test': 2}) assert_equal(self.monitor.database_entries, ['test']) assert_equal(len(self.monitor.displayed_entries), 2) assert_false(self.monitor.undisplayed_entries) assert_false(self.monitor.hidden_entries) assert_equal(self.monitor._database_values, {'test': 2}) def test_life_cycle1(self): """ Test life cycle: auto_show on, proxy active on closing. """ assert_false(Window.windows) self.monitor.start(None) process_app_events() assert_true(self.monitor._view.proxy_is_active) assert_true(Window.windows) self.monitor._view.minimize() process_app_events() self.monitor.show_monitor(None) process_app_events() assert_false(self.monitor._view.is_minimized()) self.monitor.stop() process_app_events() assert_false(Window.windows) assert_is(self.monitor._view, None) def test_life_cycle2(self): """ Test life cycle: auto_show off, show later, proxy active on closing """ assert_false(Window.windows) self.monitor.auto_show = False self.monitor.start(None) process_app_events() assert_is(self.monitor._view, None) self.monitor.show_monitor(None) process_app_events() assert_true(self.monitor._view.proxy_is_active) assert_true(Window.windows) self.monitor._view.close() process_app_events() assert_false(self.monitor._view.proxy_is_active) self.monitor.show_monitor(None) process_app_events() assert_true(self.monitor._view.proxy_is_active) self.monitor.stop() process_app_events() assert_false(Window.windows) assert_is(self.monitor._view, None) def test_process_news(self): """ Test processing news coming from a database. """ rule = FormatRule(name='Test', suffixes=['loop', 'index'], new_entry_suffix='progress', new_entry_formatting='{index}/{loop}', hide_entries=False) self.monitor.rules.append(rule) self.monitor.database_modified({'value': ('root/test_loop', 10)}) self.monitor.database_modified({'value': ('root/test_index', 1)}) self.monitor.process_news(('root/test_index', 2)) process_app_events() assert_equal(self.monitor.displayed_entries[0].value, '10') assert_equal(self.monitor.displayed_entries[1].value, '2') assert_equal(self.monitor.displayed_entries[2].value, '2/10') def test_clear_state(self): """ Test clearing the monitor state. """ rule = FormatRule(name='Test', suffixes=['loop', 'index'], new_entry_suffix='progress', new_entry_formatting='{index}/{loop}') self.monitor.rules.append(rule) self.monitor.database_modified({'value': ('root/test_loop', 10)}) self.monitor.database_modified({'value': ('root/test2_index', 1)}) self.monitor.database_modified({'value': ('root/test_index', 1)}) self.monitor.clear_state() assert_false(self.monitor.displayed_entries) assert_false(self.monitor.undisplayed_entries) assert_false(self.monitor.hidden_entries) assert_false(self.monitor.updaters) assert_false(self.monitor.custom_entries) assert_false(self.monitor.database_entries) def test_get_state(self): """ Test get_state. """ self.monitor.measure_name = 'Test' entry = self.monitor._create_default_entry('test', 1) entry.name = 'Custom' entry.path = 'custom' entry.formatting = 'This test n {root/test_loop}*{root/test2_loop}' entry.depend_on = ['root/test_loop', 'root/test2_loop'] self.monitor.custom_entries.append(entry) rule = FormatRule(name='Test', suffixes=['loop', 'index'], new_entry_suffix='progress', new_entry_formatting='{index}/{loop}') self.monitor.rules.append(rule) self.monitor.database_modified({'value': ('root/test_loop', 10)}) self.monitor.database_modified({'value': ('root/test2_index', 1)}) self.monitor.database_modified({'value': ('root/test_index', 1)}) self.monitor.database_modified({'value': ('root/test2_loop', 10)}) state = self.monitor.get_state() assert_in('rule_0', state) rule = state['rule_0'] assert_dict_equal(rule, {'class_name': 'FormatRule', 'name': 'Test', 'hide_entries': 'True', 'suffixes': "['loop', 'index']", 'new_entry_suffix': 'progress', 'new_entry_formatting': '{index}/{loop}'}) assert_in('custom_0', state) custom = state['custom_0'] aux = {'name': 'Custom', 'path': 'custom', 'formatting': 'This test n {root/test_loop}*{root/test2_loop}', 'depend_on': "['root/test_loop', 'root/test2_loop']"} assert_dict_equal(custom, aux) assert_equal(state['measure_name'], 'Test') assert_equal(state['auto_show'], 'True') assert_equal(state['displayed'], repr([e.path for e in self.monitor.displayed_entries])) assert_equal(state['undisplayed'], repr([e.path for e in self.monitor.undisplayed_entries])) assert_equal(state['hidden'], repr([e.path for e in self.monitor.hidden_entries])) def test_get_editor_page(self): """ Test creating the page to edit the monitor. """ assert_true(self.monitor.get_editor_page()) def test_all_database_entries(self): """ Test all_database_entries property. """ test = {'test': 1, '2': 'aux'} self.monitor._database_values = test assert_equal(sorted(self.monitor.all_database_entries), sorted(test.keys()))