Beispiel #1
0
 def init_database(self, redis=StrictRedis, cassandra=CassandraContext):
     with MockModelFactory.safari(), MockModelFactory.webkit():
         cassandra.drop_keyspace(keyspace=self.KEYSPACE)
         self.model = MockModelFactory.create(redis=redis(),
                                              cassandra=cassandra(
                                                  keyspace=self.KEYSPACE,
                                                  create_keyspace=True))
         MockModelFactory.add_mock_results(
             self.model,
             test_results=dict(
                 details=dict(link='dummy-link'),
                 run_stats=dict(tests_skipped=0),
                 results={
                     'fast': {
                         'encoding': {
                             'css-cached-bom.html':
                             dict(expected='PASS', actual='FAIL', time=1.2),
                             'css-charset-default.xhtml':
                             dict(expected='FAIL', actual='FAIL', time=1.2),
                             'css-charset.html':
                             dict(expected='FAIL', actual='PASS', time=1.2),
                             'css-link-charset.html':
                             dict(expected='PASS', actual='PASS', time=1.2),
                         }
                     }
                 },
             ))
         MockModelFactory.process_results(self.model)
Beispiel #2
0
 def setup_webserver(cls, app, redis=StrictRedis, cassandra=CassandraContext):
     with MockModelFactory.safari(), MockModelFactory.webkit():
         cassandra.drop_keyspace(keyspace=cls.KEYSPACE)
         model = MockModelFactory.create(redis=redis(), cassandra=cassandra(keyspace=cls.KEYSPACE, create_keyspace=True))
         model.upload_context.register_upload_callback('python-tests', lambda **kwargs: dict(status='ok'))
         MockModelFactory.add_mock_results(model)
         app.register_blueprint(APIRoutes(model))
    def test_callback(self, redis=StrictRedis, cassandra=CassandraContext):
        self.init_database(redis=redis, cassandra=cassandra)
        MockModelFactory.add_mock_results(self.model)

        configuration_to_search = Configuration(platform='iOS',
                                                version='12.0.0',
                                                is_simulator=True,
                                                style='Asan')
        configuration, uploads = next(
            iter(
                self.model.upload_context.find_test_results(
                    configurations=[configuration_to_search],
                    suite='layout-tests',
                    recent=False).items()))
        self.model.upload_context.process_test_results(
            configuration=configuration,
            commits=uploads[0]['commits'],
            suite='layout-tests',
            test_results=uploads[0]['test_results'],
            timestamp=uploads[0]['timestamp'],
        )

        # Using suite results as a proxy to tell if callbacks were triggered
        self.assertEqual(
            1,
            len(
                self.model.suite_context.find_by_commit(
                    configurations=[Configuration()], suite='layout-tests')))
    def test_result_retrieval_by_sdk(self,
                                     redis=StrictRedis,
                                     cassandra=CassandraContext):
        self.init_database(redis=redis, cassandra=cassandra)
        MockModelFactory.add_mock_results(self.model)

        self.assertEqual(
            0,
            len(
                self.model.upload_context.find_test_results(
                    configurations=[
                        Configuration(platform='iOS', sdk='15A432')
                    ],
                    suite='layout-tests',
                    recent=True)))
        results = self.model.upload_context.find_test_results(
            configurations=[Configuration(platform='iOS', sdk='15A432')],
            suite='layout-tests',
            recent=False)
        self.assertEqual(6, len(results))
        for config, values in results.items():
            self.assertEqual(config.version, 11000000)
            for value in values:
                self.assertEqual(value['sdk'], '15A432')
                self.assertEqual(value['test_results'],
                                 MockModelFactory.layout_test_results())
Beispiel #5
0
 def init_database(self, redis=StrictRedis, cassandra=CassandraContext):
     cassandra.drop_keyspace(keyspace=self.KEYSPACE)
     self.model = MockModelFactory.create(redis=redis(),
                                          cassandra=cassandra(
                                              keyspace=self.KEYSPACE,
                                              create_keyspace=True))
     MockModelFactory.add_mock_results(self.model)
     MockModelFactory.process_results(self.model)
 def test_no_failures(self, redis=StrictRedis, cassandra=CassandraContext):
     cassandra.drop_keyspace(keyspace=self.KEYSPACE)
     self.model = MockModelFactory.create(redis=redis(), cassandra=cassandra(keyspace=self.KEYSPACE, create_keyspace=True))
     MockModelFactory.add_mock_results(self.model)
     MockModelFactory.process_results(self.model)
     results = self.model.failure_context.failures_by_commit(
         configurations=[Configuration(platform='Mac', style='Release', flavor='wk1')],
         suite='layout-tests', recent=True, collapsed=False, unexpected=False,
     )
     self.assertEqual(len(results), 0)
Beispiel #7
0
    def test_result_retrieval_branch(self, redis=StrictRedis, cassandra=CassandraContext):
        self.init_database(redis=redis, cassandra=cassandra)
        MockModelFactory.add_mock_results(self.model)

        results = self.model.upload_context.find_test_results(configurations=[Configuration(platform='iOS', is_simulator=True)], suite='layout-tests', branch='safari-606-branch', recent=True)
        self.assertEqual(3, len(results))
        for config, values in results.items():
            self.assertEqual(config, Configuration(platform='iOS', is_simulator=True))
            self.assertEqual(2, len(values))
            for value in values:
                self.assertEqual(value['test_results'], MockModelFactory.layout_test_results())
    def test_result_retrieval_limit(self,
                                    redis=StrictRedis,
                                    cassandra=CassandraContext):
        self.init_database(redis=redis, cassandra=cassandra)
        MockModelFactory.add_mock_results(self.model)

        results = self.model.upload_context.find_test_results(
            configurations=[Configuration(platform='Mac')],
            suite='layout-tests',
            limit=2,
            recent=True)
        self.assertEqual(sum([len(value) for value in results.values()]), 12)
Beispiel #9
0
 def init_database(self,
                   redis=StrictRedis,
                   cassandra=CassandraContext,
                   test_results=None):
     with MockModelFactory.safari(), MockModelFactory.webkit():
         cassandra.drop_keyspace(keyspace=self.KEYSPACE)
         self.model = MockModelFactory.create(redis=redis(),
                                              cassandra=cassandra(
                                                  keyspace=self.KEYSPACE,
                                                  create_keyspace=True))
         MockModelFactory.add_mock_results(self.model,
                                           test_results=test_results)
         MockModelFactory.process_results(self.model)
    def setup_webserver(cls,
                        app,
                        redis=StrictRedis,
                        cassandra=CassandraContext):
        cassandra.drop_keyspace(keyspace=cls.KEYSPACE)
        model = MockModelFactory.create(redis=redis(),
                                        cassandra=cassandra(
                                            keyspace=cls.KEYSPACE,
                                            create_keyspace=True))
        app.register_blueprint(APIRoutes(model))

        MockModelFactory.add_mock_results(model)
        MockModelFactory.process_results(model)
Beispiel #11
0
    def test_sdk_differentiation(self, redis=StrictRedis, cassandra=CassandraContext):
        self.init_database(redis=redis, cassandra=cassandra)
        MockModelFactory.add_mock_results(self.model)

        configuration_to_search = Configuration(platform='iOS', version='12.0.0', is_simulator=True, style='Asan')
        results = self.model.upload_context.find_test_results(configurations=[configuration_to_search], suite='layout-tests', recent=False)
        self.assertEqual(1, len(results))

        MockModelFactory.add_mock_results(self.model, configuration=Configuration(
            platform='iOS', version='12.0.0', sdk='16A405', is_simulator=True, architecture='x86_64', style='Asan',
        ))

        results = self.model.upload_context.find_test_results(configurations=[configuration_to_search], suite='layout-tests', recent=False)
        self.assertEqual(2, len(results))
        results = self.model.upload_context.find_test_results(configurations=[Configuration(platform='iOS', sdk='16A405')], suite='layout-tests', recent=False)
        self.assertEqual(1, len(results))
    def setup_webserver(cls, app, redis=StrictRedis, cassandra=CassandraContext):
        cassandra.drop_keyspace(keyspace=cls.KEYSPACE)
        model = MockModelFactory.create(redis=redis(), cassandra=cassandra(keyspace=cls.KEYSPACE, create_keyspace=True))
        app.register_blueprint(APIRoutes(model))

        MockModelFactory.add_mock_results(model, test_results=dict(
            details=dict(link='dummy-link'),
            run_stats=dict(tests_skipped=0),
            results={
                'fast': {
                    'encoding': {
                        'css-cached-bom.html': dict(expected='PASS', actual='FAIL', time=1.2),
                        'css-charset-default.xhtml': dict(expected='FAIL', actual='FAIL', time=1.2),
                        'css-charset.html': dict(expected='FAIL', actual='PASS', time=1.2),
                        'css-link-charset.html': dict(expected='PASS', actual='PAS', time=1.2),
                    }
                }
            },
        ))
        MockModelFactory.process_results(model)
    def test_suite_list(self, redis=StrictRedis, cassandra=CassandraContext):
        self.init_database(redis=redis, cassandra=cassandra)

        MockModelFactory.add_mock_results(self.model)
        for suites in self.model.upload_context.find_suites(
                configurations=[Configuration()], recent=True).values():
            self.assertEqual(suites, ['layout-tests'])

        MockModelFactory.add_mock_results(self.model, suite='api_tests')
        for suites in self.model.upload_context.find_suites(
                configurations=[Configuration()], recent=True).values():
            self.assertEqual(suites, ['api_tests', 'layout-tests'])

        MockModelFactory.add_mock_results(
            self.model,
            configuration=Configuration(is_simulator=True),
            suite='webkitpy')
        for suites in self.model.upload_context.find_suites(
                configurations=[Configuration(is_simulator=True)],
                recent=True).values():
            self.assertEqual(suites, ['api_tests', 'layout-tests', 'webkitpy'])
        for suites in self.model.upload_context.find_suites(
                configurations=[Configuration(is_simulator=False)],
                recent=True).values():
            self.assertEqual(suites, ['api_tests', 'layout-tests'])