Example #1
0
    def test_to_schema_field(self):
        expected_schema_field1 = SchemaField(name='test',
                                             field_type='STRING',
                                             mode='NULLABLE',
                                             description='test_description')
        schema_field1_1 = BigQuerySchemaField('test', 'STRING', 'NULLABLE',
                                              'test_description')
        actual_schema_field1_1 = BigQuerySchemaField.to_schema_field(
            schema_field1_1)
        self.assertEqual(expected_schema_field1, actual_schema_field1_1)
        schema_field1_2 = BigQuerySchemaField('test', 'INTEGER', 'REQUIRED',
                                              'foo_bar')
        actual_schema_field1_2 = BigQuerySchemaField.to_schema_field(
            schema_field1_2)
        self.assertNotEqual(expected_schema_field1, actual_schema_field1_2)

        expected_schema_field2 = SchemaField(name='test',
                                             field_type='RECORD',
                                             mode='NULLABLE',
                                             description='test_description',
                                             fields=(expected_schema_field1, ))
        schema_field2_1 = BigQuerySchemaField('test', 'RECORD', 'NULLABLE',
                                              'test_description',
                                              (schema_field1_1, ))
        actual_schema_field2_1 = BigQuerySchemaField.to_schema_field(
            schema_field2_1)
        self.assertEqual(expected_schema_field2, actual_schema_field2_1)
        schema_field2_2 = BigQuerySchemaField('test', 'RECORD', 'NULLABLE',
                                              'test_description',
                                              (schema_field1_2, ))
        actual_schema_field2_2 = BigQuerySchemaField.to_schema_field(
            schema_field2_2)
        self.assertNotEqual(expected_schema_field2, actual_schema_field2_2)
 def to_table(dataset_ref, model):
     schema = model.schema
     if schema:
         schema = tuple(
             BigQuerySchemaField.to_schema_field(s) for s in schema)
     else:
         schema = None
     table_ref = TableReference(dataset_ref, model.table_id)
     table = Table(table_ref, schema)
     table.friendly_name = model.friendly_name
     table.description = model.description
     table.expires = model.expires
     table.partitioning_type = model.partitioning_type
     if model.view_use_legacy_sql is not None:
         table.view_use_legacy_sql = model.view_use_legacy_sql
     if model.view_query is not None:
         table.view_query = model.view_query
     table.labels = model.labels if model.labels is not None else dict()
     return table