def test_to_api_repr_bigtable(self): ec = external_config.ExternalConfig("BIGTABLE") options = external_config.BigtableOptions() options.ignore_unspecified_column_families = True options.read_rowkey_as_string = False ec._options = options fam1 = external_config.BigtableColumnFamily() fam1.family_id = "familyId" fam1.type_ = "type" fam1.encoding = "encoding" fam1.only_read_latest = False col1 = external_config.BigtableColumn() col1.qualifier_string = "q" col1.field_name = "fieldName1" col1.type_ = "type1" col1.encoding = "encoding1" col1.only_read_latest = True col2 = external_config.BigtableColumn() col2.qualifier_encoded = b"q" col2.field_name = "fieldName2" col2.type_ = "type2" col2.encoding = "encoding2" fam1.columns = [col1, col2] options.column_families = [fam1] qualifier_encoded = base64.standard_b64encode(b"q").decode("ascii") exp_resource = { "sourceFormat": "BIGTABLE", "bigtableOptions": { "ignoreUnspecifiedColumnFamilies": True, "readRowkeyAsString": False, "columnFamilies": [ { "familyId": "familyId", "type": "type", "encoding": "encoding", "columns": [ { "qualifierString": "q", "fieldName": "fieldName1", "type": "type1", "encoding": "encoding1", "onlyReadLatest": True, }, { "qualifierEncoded": qualifier_encoded, "fieldName": "fieldName2", "type": "type2", "encoding": "encoding2", }, ], "onlyReadLatest": False, } ], }, } got_resource = ec.to_api_repr() self.assertEqual(got_resource, exp_resource)
def test_to_api_repr_bigtable(self): ec = external_config.ExternalConfig('BIGTABLE') options = external_config.BigtableOptions() options.ignore_unspecified_column_families = True options.read_rowkey_as_string = False ec._options = options fam1 = external_config.BigtableColumnFamily() fam1.family_id = 'familyId' fam1.type_ = 'type' fam1.encoding = 'encoding' fam1.only_read_latest = False col1 = external_config.BigtableColumn() col1.qualifier_string = 'q' col1.field_name = 'fieldName1' col1.type_ = 'type1' col1.encoding = 'encoding1' col1.only_read_latest = True col2 = external_config.BigtableColumn() col2.qualifier_encoded = b'q' col2.field_name = 'fieldName2' col2.type_ = 'type2' col2.encoding = 'encoding2' fam1.columns = [col1, col2] options.column_families = [fam1] qualifier_encoded = base64.standard_b64encode(b'q').decode('ascii') exp_resource = { 'sourceFormat': 'BIGTABLE', 'bigtableOptions': { 'ignoreUnspecifiedColumnFamilies': True, 'readRowkeyAsString': False, 'columnFamilies': [ { 'familyId': 'familyId', 'type': 'type', 'encoding': 'encoding', 'columns': [ { 'qualifierString': 'q', 'fieldName': 'fieldName1', 'type': 'type1', 'encoding': 'encoding1', 'onlyReadLatest': True, }, { 'qualifierEncoded': qualifier_encoded, 'fieldName': 'fieldName2', 'type': 'type2', 'encoding': 'encoding2', }, ], 'onlyReadLatest': False, } ], }, } got_resource = ec.to_api_repr() self.assertEqual(got_resource, exp_resource)