def testClientReturnsErrors(self): mock_client = mock.Mock(spec=tables.bigquery.Client) mock_client.insert_rows.return_value = [{'err1': 'xxx'}, {'err2': 'yyy'}] self.Patch(tables.bigquery, 'Client', return_value=mock_client) with self.assertRaises(tables.StreamingFailureError): tables._SendToBigQuery(TEST_TABLE, self.row_dict)
def testSuccess(self): mock_client = mock.Mock(spec=tables.bigquery.Client) mock_client.insert_rows.return_value = [] self.Patch(tables.bigquery, 'Client', return_value=mock_client) tables._SendToBigQuery(TEST_TABLE, self.row_dict) self.assertTrue(mock_client.insert_rows.called)
def testMissingTable_Created(self): mock_client = mock.Mock(spec=tables.bigquery.Client) mock_client.insert_rows.side_effect = [exceptions.NotFound('OMG'), []] mock_client.get_table.side_effect = exceptions.NotFound('OMG') self.Patch(tables.bigquery, 'Client', return_value=mock_client) tables._SendToBigQuery(TEST_TABLE, self.row_dict) insert_rows_call = mock.call( mock.ANY, [self.row_dict], selected_fields=TEST_TABLE.schema, row_ids=[self.row_id]) mock_client.insert_rows.assert_has_calls([insert_rows_call] * 2) mock_client.get_dataset.assert_called_once() mock_client.create_dataset.assert_not_called() mock_client.get_table.assert_called_once() mock_client.create_table.assert_called_once()