def test_from_schema_field(self): expected_schema_field1 = BigQuerySchemaField( name='test', field_type='STRING', mode='NULLABLE', description='test_description') schema_field1_1 = SchemaField('test', 'STRING', 'NULLABLE', 'test_description') actual_schema_field1_1 = BigQuerySchemaField.from_schema_field( schema_field1_1) self.assertEqual(expected_schema_field1, actual_schema_field1_1) schema_field1_2 = SchemaField('test', 'INTEGER', 'REQUIRED', 'foo_bar') actual_schema_field1_2 = BigQuerySchemaField.from_schema_field( schema_field1_2) self.assertNotEqual(expected_schema_field1, actual_schema_field1_2) expected_schema_field2 = BigQuerySchemaField( name='test', field_type='RECORD', mode='NULLABLE', description='test_description', fields=(expected_schema_field1, )) schema_field2_1 = SchemaField('test', 'RECORD', 'NULLABLE', 'test_description', (schema_field1_1, )) actual_schema_field2_1 = BigQuerySchemaField.from_schema_field( schema_field2_1) self.assertEqual(expected_schema_field2, actual_schema_field2_1) schema_field2_2 = SchemaField('test', 'RECORD', 'NULLABLE', 'test_description', (schema_field1_2, )) actual_schema_field2_2 = BigQuerySchemaField.from_schema_field( schema_field2_2) self.assertNotEqual(expected_schema_field2, actual_schema_field2_2)
def from_table(table): schema = tuple( BigQuerySchemaField.from_schema_field(s) for s in table.schema) if table.schema else None return BigQueryTable( table_id=table.table_id, friendly_name=table.friendly_name, description=table.description, expires=table.expires, partitioning_type=table.partitioning_type, view_use_legacy_sql=table.view_use_legacy_sql if table.view_query else None, view_query=table.view_query if table.view_query else None, schema=None if table.view_query else schema, labels=table.labels)