Ejemplo n.º 1
0
    def test_bigquery_matcher_query_error_retry(self, mock_bigquery):
        mock_query = mock_bigquery.return_value.query
        mock_query.side_effect = NotFound('table not found')

        matcher = bq_verifier.BigqueryMatcher('mock_project', 'mock_query',
                                              'mock_checksum')
        with self.assertRaises(NotFound):
            hc_assert_that(self._mock_result, matcher)
        self.assertEqual(bq_verifier.MAX_RETRIES + 1, mock_query.call_count)
    def test_bigquery_matcher_success(self, mock_bigquery):
        mock_query = Mock()
        mock_client = mock_bigquery.return_value
        mock_client.run_sync_query.return_value = mock_query
        mock_query.fetch_data.return_value = ([], None, None)

        matcher = bq_verifier.BigqueryMatcher(
            'mock_project', 'mock_query',
            '59f9d6bdee30d67ea73b8aded121c3a0280f9cd8')
        hc_assert_that(self._mock_result, matcher)
    def test_bigquery_matcher_success(self, mock_bigquery):
        mock_query = Mock()
        mock_client = mock_bigquery.return_value
        mock_client.run_sync_query.return_value = mock_query
        mock_query.fetch_data.return_value = ([], None, None)

        matcher = bq_verifier.BigqueryMatcher(
            'mock_project', 'mock_query',
            'da39a3ee5e6b4b0d3255bfef95601890afd80709')
        hc_assert_that(self._mock_result, matcher)
Ejemplo n.º 4
0
  def test_bigquery_matcher_success(self, mock_bigquery):
    mock_query_result = [mock.Mock(), mock.Mock(), mock.Mock()]
    mock_query_result[0].values.return_value = []
    mock_query_result[1].values.return_value = None
    mock_query_result[2].values.return_value = None

    mock_bigquery.return_value.query.return_value = mock_query_result

    matcher = bq_verifier.BigqueryMatcher(
        'mock_project',
        'mock_query',
        '59f9d6bdee30d67ea73b8aded121c3a0280f9cd8')
    hc_assert_that(self._mock_result, matcher)
    def test_bigquery_matcher_query_responds_error_code(self, mock_bigquery):
        mock_query = Mock()
        mock_client = mock_bigquery.return_value
        mock_client.run_sync_query.return_value = mock_query
        mock_query.run.side_effect = NotFound('table is not found')

        matcher = bq_verifier.BigqueryMatcher('mock_project', 'mock_query',
                                              'mock_checksum')
        with self.assertRaises(NotFound):
            hc_assert_that(self._mock_result, matcher)
        self.assertTrue(mock_query.run.called)
        self.assertEqual(bq_verifier.MAX_RETRIES + 1,
                         mock_query.run.call_count)
    def test_bigquery_matcher_query_run_error(self, mock_bigquery):
        mock_query = Mock()
        mock_client = mock_bigquery.return_value
        mock_client.run_sync_query.return_value = mock_query
        mock_query.run.side_effect = ValueError('job is already running')

        matcher = bq_verifier.BigqueryMatcher('mock_project', 'mock_query',
                                              'mock_checksum')
        with self.assertRaises(ValueError):
            hc_assert_that(self._mock_result, matcher)
        self.assertTrue(mock_query.run.called)
        self.assertEqual(bq_verifier.MAX_RETRIES + 1,
                         mock_query.run.call_count)
Ejemplo n.º 7
0
    def test_bigquery_matcher_query_error_checksum(self, mock_bigquery):
        empty_query_result = []

        mock_query = mock_bigquery.return_value.query
        mock_query.return_value.result.return_value = empty_query_result

        matcher = bq_verifier.BigqueryMatcher(
            'mock_project',
            'mock_query',
            '59f9d6bdee30d67ea73b8aded121c3a0280f9cd8',
        )
        with self.assertRaisesRegex(AssertionError, r'Expected checksum'):
            hc_assert_that(self._mock_result, matcher)
        self.assertEqual(1, mock_query.call_count)
Ejemplo n.º 8
0
    def test_bigquery_matcher_success_streaming_retry(self, mock_bigquery):
        # Simulate case where a streaming insert takes time to process, such that
        # the first query result is incomplete (empty).
        empty_query_result = []
        mock_query_result = [mock.Mock(), mock.Mock(), mock.Mock()]
        mock_query_result[0].values.return_value = []
        mock_query_result[1].values.return_value = None
        mock_query_result[2].values.return_value = None

        mock_query = mock_bigquery.return_value.query
        mock_query.return_value.result.side_effect = [
            empty_query_result, mock_query_result
        ]

        matcher = bq_verifier.BigqueryMatcher(
            'mock_project',
            'mock_query',
            '59f9d6bdee30d67ea73b8aded121c3a0280f9cd8',
            timeout_secs=5,
        )
        hc_assert_that(self._mock_result, matcher)
        self.assertEqual(2, mock_query.call_count)