Ejemplo n.º 1
0
 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])
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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'])