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 = bigquery_util._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)
Ejemplo n.º 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(
        bigquery_util._get_merged_field_schemas(field_schemas_1,
                                                field_schemas_2),
        expected_merged_field_schemas)
Ejemplo n.º 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(
        bigquery_util._get_merged_field_schemas(field_schemas_1,
                                                field_schemas_2),
        expected_merged_field_schemas)