コード例 #1
0
 def SideEffect(*_, **__):
     SideEffect.call_count += 1
     if SideEffect.call_count == 1:
         return unittest_utils.FakeProcess(
             stdout=json.dumps([{
                 'foo': 'bar'
             }]))
     else:
         return unittest_utils.FakeProcess(
             stdout=json.dumps([{
                 'bar': 'baz'
             }]))
コード例 #2
0
ファイル: queries_unittest.py プロジェクト: yan-zay/chromium
 def testValidResults(self):
   """Tests functionality when valid results are returned."""
   query_results = [
       {
           'id':
           'build-1234',
           'test_id': ('ninja://chrome/test:telemetry_gpu_integration_test/'
                       'gpu_tests.pixel_integration_test.'
                       'PixelIntegrationTest.test_name'),
           'status':
           'FAIL',
           'typ_expectations': [
               'RetryOnFailure',
           ],
           'typ_tags': [
               'win',
               'intel',
           ],
           'step_name':
           'step_name',
       },
   ]
   self._popen_mock.return_value = unittest_utils.FakeProcess(
       stdout=json.dumps(query_results))
   results = self._querier.QueryBuilder('builder', 'ci')
   self.assertEqual(len(results), 1)
   self.assertEqual(
       results[0],
       data_types.Result('test_name', ['win', 'intel'], 'Failure', 'step_name',
                         '1234'))
コード例 #3
0
ファイル: queries_unittest.py プロジェクト: yan-zay/chromium
 def testRateLimitRetryFailure(self):
   """Tests that rate limit errors stop retrying after enough iterations."""
   self._popen_mock.return_value = unittest_utils.FakeProcess(
       returncode=1, stdout='Exceeded rate limits for foo.')
   with self.assertRaises(RuntimeError):
     self._querier._RunBigQueryCommandForJsonOutput('', {})
   self.assertEqual(self._popen_mock.call_count, queries.MAX_QUERY_TRIES)
コード例 #4
0
 def testNoResults(self):
   """Tests functionality if the query returns no results."""
   self._popen_mock.return_value = unittest_utils.FakeProcess(stdout='[]')
   builder, results = queries.QueryBuilder('builder', 'ci', 'pixel', 'project',
                                           5, False)
   self.assertEqual(builder, 'builder')
   self.assertEqual(results, [])
コード例 #5
0
    def testWebGlVersion(self):
        """Tests that only results for the correct WebGL version are returned."""
        query_results = [
            {
                'id':
                'build-1234',
                'test_id':
                ('ninja://chrome/test:telemetry_gpu_integration_test/'
                 'gpu_tests.webgl_conformance_integration_test.'
                 'WebGLConformanceIntegrationTest.test_name'),
                'status':
                'FAIL',
                'typ_expectations': [
                    'RetryOnFailure',
                ],
                'typ_tags': [
                    'webgl-version-1',
                ],
                'step_name':
                'step_name',
            },
            {
                'id':
                'build-2345',
                'test_id':
                ('ninja://chrome/test:telemetry_gpu_integration_test/'
                 'gpu_tests.webgl_conformance_integration_test.'
                 'WebGLConformanceIntegrationTest.test_name'),
                'status':
                'FAIL',
                'typ_expectations': [
                    'RetryOnFailure',
                ],
                'typ_tags': [
                    'webgl-version-2',
                ],
                'step_name':
                'step_name',
            },
        ]
        querier = unittest_utils.CreateGenericQuerier(
            suite='webgl_conformance1')
        self._popen_mock.return_value = unittest_utils.FakeProcess(
            stdout=json.dumps(query_results))
        results = querier.QueryBuilder('builder', 'ci')
        self.assertEqual(len(results), 1)
        self.assertEqual(
            results[0],
            data_types.Result('test_name', ['webgl-version-1'], 'Failure',
                              'step_name', '1234'))

        querier = unittest_utils.CreateGenericQuerier(
            suite='webgl_conformance2')
        results = querier.QueryBuilder('builder', 'ci')
        self.assertEqual(len(results), 1)
        self.assertEqual(
            results[0],
            data_types.Result('test_name', ['webgl-version-2'], 'Failure',
                              'step_name', '2345'))
コード例 #6
0
ファイル: queries_unittest.py プロジェクト: yan-zay/chromium
 def testJsonReturned(self):
   """Tests that valid JSON parsed from stdout is returned."""
   query_output = {'foo': 'bar'}
   self._popen_mock.return_value = unittest_utils.FakeProcess(
       stdout=json.dumps(query_output))
   result = self._querier._RunBigQueryCommandForJsonOutput('', {})
   self.assertEqual(result, query_output)
   self._popen_mock.assert_called_once()
コード例 #7
0
ファイル: queries_unittest.py プロジェクト: yan-zay/chromium
 def testNoResults(self):
   """Tests functionality if the query returns no results."""
   self._popen_mock.return_value = unittest_utils.FakeProcess(stdout='[]')
   results = self._querier.QueryBuilder('builder', 'ci')
   self.assertEqual(results, [])
コード例 #8
0
ファイル: queries_unittest.py プロジェクト: yan-zay/chromium
 def testQueryFailureRaised(self):
   """Tests that a query failure is properly surfaced."""
   self._popen_mock.return_value = unittest_utils.FakeProcess(returncode=1)
   with self.assertRaises(RuntimeError):
     self._querier.QueryBuilder('builder', 'ci')
コード例 #9
0
ファイル: queries_unittest.py プロジェクト: yan-zay/chromium
 def SideEffect(*_, **__):
   SideEffect.call_count += 1
   if SideEffect.call_count == 1:
     return unittest_utils.FakeProcess(
         returncode=1, stdout='Exceeded rate limits for foo.')
   return unittest_utils.FakeProcess(stdout='[]')
コード例 #10
0
ファイル: queries_unittest.py プロジェクト: yan-zay/chromium
 def testExceptionRaisedOnFailure(self):
   """Tests that an exception is raised if the query fails."""
   self._popen_mock.return_value = unittest_utils.FakeProcess(returncode=1)
   with self.assertRaises(RuntimeError):
     self._querier._RunBigQueryCommandForJsonOutput('', {})