Example #1
0
    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)