def project(self) -> Project: name = self.ui.nameEdit.text() layout: QVBoxLayout = self.ui.rulesBox.layout() rule_widgets: List[RuleWidget] = [] for i in range(0, layout.count()): widget = layout.itemAt(i).widget() assert isinstance(widget, RuleWidget) rule_widgets.append(widget) return Project(name, [rule_widget.rule for rule_widget in rule_widgets])
def config_test(self): self.get_connection_handle() tenant_name = "tenant" + "".join([random.choice(string.ascii_uppercase + string.digits) for i in xrange(10)]) project_obj = Project(self.connections) project_obj.create(tenant_name)
def test_analyze_events(self) -> None: analyzer = EventsAnalyzer() events = analyzer.analyze_events( { 'window': BucketType.APP, 'afk': BucketType.AFK, 'browser': BucketType.WEB, }, { 'window': get_events('window'), 'afk': get_events('afk'), 'browser': get_events('browser'), }, ) # Application on non-afk # [(5, {'app': 'Another2', 'title': 'whatever'}, False), # (5, {'app': 'Another2', 'title': 'whatever'}, True), # (6, {'app': 'Browser', 'title': 'website - Browser'}, False), # (11, {'app': 'Browser', 'title': 'website - Browser'}, True), # (12, {'app': 'Browser', 'title': 'whatever - Browser'}, False), # (13, {'app': 'Browser', 'title': 'whatever - Browser'}, True)] # Web tabs matching Browser # [(6, {'title': 'nothing2'}, False), # (9, {'title': 'nothing2'}, True), # (10, {'title': 'website'}, False), # (11, {'title': 'website'}, True)] # Application on non-afk not-matching browser tabs # [(5, {'app': 'Another2', 'title': 'whatever'}, False), # (5, {'app': 'Another2', 'title': 'whatever'}, True), # (6, {'app': 'Browser', 'title': 'website - Browser'}, False), # (6, {'app': 'Browser', 'title': 'website - Browser'}, True), # (9, {'app': 'Browser', 'title': 'website - Browser'}, False), # (10, {'app': 'Browser', 'title': 'website - Browser'}, True) # (12, {'app': 'Browser', 'title': 'website - Browser'}, False), # (12, {'app': 'Browser', 'title': 'website - Browser'}, True) check_events = [ ('nothing2', 6, 3), ('website - Browser', 9, 1), ('website', 10, 1), ('website', 12, 1), ] self.assertEqual(len(check_events), len(events)) for i in range(0, len(check_events)): check = check_events[i] event = events[i] self.assertEqual(check[0], event.data['title']) self.assertEqual(check[1], event.timestamp.second, event.data['title']) self.assertEqual(check[2], event.duration.seconds, event.data['title']) projects = Projects([ Project('test1', [Rule({ 'id': '1', 'type': 'app', 'app': 'Browser' })]) ], 'none') matched_events = analyzer.match(events, projects) check_matched_events = [ ('nothing2', None), ('website - Browser', 'test1'), ('website', None), ('website', None), ] for i in range(0, len(check_matched_events)): matched_check = check_matched_events[i] matched_event = matched_events[i] self.assertEqual(matched_check[0], matched_event.data['title']) # Work with a cache with the same result matched_events = analyzer.match(events, projects) for i in range(0, len(check_matched_events)): matched_check = check_matched_events[i] matched_event = matched_events[i] self.assertEqual(matched_check[0], matched_event.data['title'])