示例#1
0
    def test_to_scalar(self):
        scalar_int = dict(num=100)
        mock_iter = mock_query_result([scalar_int])
        result = bq.to_scalar(mock_iter)
        self.assertEqual(100, result)

        today = datetime.date.today()
        scalar_date = dict(today=today)
        mock_iter = mock_query_result([scalar_date])
        result = bq.to_scalar(mock_iter)
        self.assertEqual(today, result)

        now = datetime.datetime.now()
        scalar_datetime = dict(now=now)
        mock_iter = mock_query_result([scalar_datetime])
        result = bq.to_scalar(mock_iter)
        self.assertEqual(now, result)

        scalar_struct = dict(num_1=100, num_2=200)
        scalar_struct_iter = mock_query_result([scalar_struct],
                                               ['num_2', 'num_1'])
        result = bq.to_scalar(scalar_struct_iter)
        self.assertDictEqual(scalar_struct, result)

        scalar_int_1 = dict(num=1)
        scalar_int_2 = dict(num=2)
        mock_iter = mock_query_result([scalar_int_1, scalar_int_2])
        with self.assertRaises(ValueError) as c:
            bq.to_scalar(mock_iter)
示例#2
0
 def _mock_client_with(self, table_ids):
     """
     Get a mock client
     :param table_ids:
     :return:
     """
     full_table_ids = [
         f'{self.project_id}.{self.dataset_id}.{table_id}'
         for table_id in table_ids
     ]
     list_tables_results = [
         list_item_from_table_id(table_id) for table_id in full_table_ids
     ]
     table_count_query_results = [
         dict(table_count=len(list_tables_results))
     ]
     mock_client = MagicMock()
     mock_client.list_tables.return_value = list_tables_results
     mock_client.query.return_value = mock_query_result(
         table_count_query_results)
     return mock_client