Skip to content

Commit 4482c75

Browse files
authored
Merge pull request #3171 from tseaver/2951-bigquery-insert-nested-nested
Add BigQuery system test for nested-nested records.
2 parents 1b5e35c + d238ee9 commit 4482c75

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

system_tests/bigquery.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -664,6 +664,45 @@ def test_dump_table_w_public_data(self):
664664
table = dataset.table(TABLE_NAME)
665665
self._fetch_single_page(table)
666666

667+
def test_insert_nested_nested(self):
668+
# See #2951
669+
SF = bigquery.SchemaField
670+
schema = [
671+
SF('string_col', 'STRING', mode='NULLABLE'),
672+
SF('record_col', 'RECORD', mode='NULLABLE', fields=[
673+
SF('nested_string', 'STRING', mode='NULLABLE'),
674+
SF('nested_repeated', 'INTEGER', mode='REPEATED'),
675+
SF('nested_record', 'RECORD', mode='NULLABLE', fields=[
676+
SF('nested_nested_string', 'STRING', mode='NULLABLE'),
677+
]),
678+
]),
679+
]
680+
record = {
681+
'nested_string': 'another string value',
682+
'nested_repeated': [0, 1, 2],
683+
'nested_record': {'nested_nested_string': 'some deep insight'},
684+
}
685+
to_insert = [
686+
('Some value', record)
687+
]
688+
table_name = 'test_table'
689+
dataset = Config.CLIENT.dataset(
690+
_make_dataset_name('issue_2951'))
691+
692+
retry_403(dataset.create)()
693+
self.to_delete.append(dataset)
694+
695+
table = dataset.table(table_name, schema=schema)
696+
table.create()
697+
self.to_delete.insert(0, table)
698+
699+
table.insert_data(to_insert)
700+
701+
retry = RetryResult(_has_rows, max_tries=8)
702+
rows = retry(self._fetch_single_page)(table)
703+
704+
self.assertEqual(rows, to_insert)
705+
667706
def test_create_table_nested_schema(self):
668707
table_name = 'test_table'
669708
dataset = Config.CLIENT.dataset(

0 commit comments

Comments
 (0)