Пример #1
0
 def test_merge_field_schemas_no_same_id(self):
     field_schemas_1 = [
         bigquery.TableFieldSchema(name='II',
                                   type=TableFieldConstants.TYPE_INTEGER,
                                   mode=TableFieldConstants.MODE_NULLABLE,
                                   description='INFO foo desc'),
         bigquery.TableFieldSchema(name='IFR',
                                   type=TableFieldConstants.TYPE_FLOAT,
                                   mode=TableFieldConstants.MODE_REPEATED,
                                   description='INFO foo desc')
     ]
     field_schemas_2 = [
         bigquery.TableFieldSchema(name='AB',
                                   type=TableFieldConstants.TYPE_FLOAT,
                                   mode=TableFieldConstants.MODE_NULLABLE,
                                   description='INFO foo desc')
     ]
     merged_field_schemas = variant_to_bigquery._get_merged_field_schemas(
         field_schemas_1, field_schemas_2)
     expected_merged_field_schemas = [
         bigquery.TableFieldSchema(name='II',
                                   type=TableFieldConstants.TYPE_INTEGER,
                                   mode=TableFieldConstants.MODE_NULLABLE,
                                   description='INFO foo desc'),
         bigquery.TableFieldSchema(name='IFR',
                                   type=TableFieldConstants.TYPE_FLOAT,
                                   mode=TableFieldConstants.MODE_REPEATED,
                                   description='INFO foo desc'),
         bigquery.TableFieldSchema(name='AB',
                                   type=TableFieldConstants.TYPE_FLOAT,
                                   mode=TableFieldConstants.MODE_NULLABLE,
                                   description='INFO foo desc')
     ]
     self.assertEqual(merged_field_schemas, expected_merged_field_schemas)
Пример #2
0
    def test_merge_field_schemas_merge_record_fields(self):
        call_record_1 = bigquery.TableFieldSchema(
            name=ColumnKeyConstants.CALLS,
            type=TableFieldConstants.TYPE_RECORD,
            mode=TableFieldConstants.MODE_REPEATED,
            description='One record for each call.')
        call_record_1.fields.append(
            bigquery.TableFieldSchema(name='FB',
                                      type=TableFieldConstants.TYPE_BOOLEAN,
                                      mode=TableFieldConstants.MODE_NULLABLE,
                                      description='FORMAT foo desc'))

        field_schemas_1 = [call_record_1]

        call_record_2 = bigquery.TableFieldSchema(
            name=ColumnKeyConstants.CALLS,
            type=TableFieldConstants.TYPE_RECORD,
            mode=TableFieldConstants.MODE_REPEATED,
            description='One record for each call.')
        call_record_2.fields.append(
            bigquery.TableFieldSchema(name='GQ',
                                      type=TableFieldConstants.TYPE_INTEGER,
                                      mode=TableFieldConstants.MODE_NULLABLE,
                                      description='FORMAT foo desc'))
        field_schemas_2 = [call_record_2]

        call_record_3 = bigquery.TableFieldSchema(
            name=ColumnKeyConstants.CALLS,
            type=TableFieldConstants.TYPE_RECORD,
            mode=TableFieldConstants.MODE_REPEATED,
            description='One record for each call.')
        call_record_3.fields.append(
            bigquery.TableFieldSchema(name='FB',
                                      type=TableFieldConstants.TYPE_BOOLEAN,
                                      mode=TableFieldConstants.MODE_NULLABLE,
                                      description='FORMAT foo desc'))
        call_record_3.fields.append(
            bigquery.TableFieldSchema(name='GQ',
                                      type=TableFieldConstants.TYPE_INTEGER,
                                      mode=TableFieldConstants.MODE_NULLABLE,
                                      description='FORMAT foo desc'))

        expected_merged_field_schemas = [call_record_3]
        self.assertEqual(
            variant_to_bigquery._get_merged_field_schemas(
                field_schemas_1, field_schemas_2),
            expected_merged_field_schemas)
Пример #3
0
    def test_merge_field_schemas_merge_inner_record_fields(self):
        record_1 = bigquery.TableFieldSchema(
            name=ColumnKeyConstants.CALLS,
            type=TableFieldConstants.TYPE_RECORD,
            mode=TableFieldConstants.MODE_REPEATED,
            description='One record for each call.')
        inner_record_1 = bigquery.TableFieldSchema(
            name='inner record',
            type=TableFieldConstants.TYPE_RECORD,
            mode=TableFieldConstants.MODE_REPEATED,
            description='One record for each call.')
        inner_record_1.fields.append(
            bigquery.TableFieldSchema(name='FB',
                                      type=TableFieldConstants.TYPE_RECORD,
                                      mode=TableFieldConstants.MODE_REPEATED,
                                      description='FORMAT foo desc'))
        record_1.fields.append(inner_record_1)
        field_schemas_1 = [record_1]

        record_2 = bigquery.TableFieldSchema(
            name=ColumnKeyConstants.CALLS,
            type=TableFieldConstants.TYPE_RECORD,
            mode=TableFieldConstants.MODE_REPEATED,
            description='One record for each call.')
        inner_record_2 = bigquery.TableFieldSchema(
            name='inner record',
            type=TableFieldConstants.TYPE_RECORD,
            mode=TableFieldConstants.MODE_REPEATED,
            description='One record for each call.')
        inner_record_2.fields.append(
            bigquery.TableFieldSchema(name='AB',
                                      type=TableFieldConstants.TYPE_RECORD,
                                      mode=TableFieldConstants.MODE_REPEATED,
                                      description='FORMAT foo desc'))
        record_2.fields.append(inner_record_2)
        field_schemas_2 = [record_2]

        merged_record = bigquery.TableFieldSchema(
            name=ColumnKeyConstants.CALLS,
            type=TableFieldConstants.TYPE_RECORD,
            mode=TableFieldConstants.MODE_REPEATED,
            description='One record for each call.')
        merged_inner_record = bigquery.TableFieldSchema(
            name='inner record',
            type=TableFieldConstants.TYPE_RECORD,
            mode=TableFieldConstants.MODE_REPEATED,
            description='One record for each call.')
        merged_inner_record.fields.append(
            bigquery.TableFieldSchema(name='FB',
                                      type=TableFieldConstants.TYPE_RECORD,
                                      mode=TableFieldConstants.MODE_REPEATED,
                                      description='FORMAT foo desc'))
        merged_inner_record.fields.append(
            bigquery.TableFieldSchema(name='AB',
                                      type=TableFieldConstants.TYPE_RECORD,
                                      mode=TableFieldConstants.MODE_REPEATED,
                                      description='FORMAT foo desc'))
        merged_record.fields.append(merged_inner_record)
        expected_merged_field_schemas = [merged_record]
        self.assertEqual(
            variant_to_bigquery._get_merged_field_schemas(
                field_schemas_1, field_schemas_2),
            expected_merged_field_schemas)