def test_identity_from_dict(self): name = Name(source='source.com', dataset='foobar', variation='orig', version='0.0.1') dataset_number = DatasetNumber(10000, 1, assignment_class='registered') oident = Identity(name, dataset_number) opident = oident.as_partition(7) idict = oident.dict pidict = opident.dict ident = Identity.from_dict(idict) self.assertIsInstance(ident, Identity) self.assertEqual(ident.fqname, oident.fqname) ident = Identity.from_dict(pidict) self.assertEqual('source.com/foobar-orig-0.0.1', ident.cache_key)
def test_identity(self): name = Name(source='source.com', dataset='foobar', version='0.0.1', variation='orig') dn = DatasetNumber(10000, 1, assignment_class='registered') ident = Identity(name, dn) self.assertEqual('d002Bi', ident.id_) self.assertEqual('d002Bi001', ident.vid) self.assertEqual('source.com-foobar-orig', str(ident.name)) self.assertEqual('source.com-foobar-orig-0.0.1', ident.vname) self.assertEqual('source.com-foobar-orig-0.0.1~d002Bi001', ident.fqname) self.assertEqual('source.com/foobar-orig-0.0.1', ident.path) self.assertEqual('source.com/foobar-orig', ident.source_path) self.assertEqual('source.com/foobar-orig-0.0.1', ident.cache_key) self.assertEqual('source.com-foobar-orig-0.0.1', ident.name.dict['vname']) self.assertEqual({'id', 'vid', 'revision', 'name', 'vname', 'cache_key', 'variation', 'dataset', 'source', 'version'}, set(ident.dict.keys())) self.assertIn('fqname', ident.names_dict) self.assertIn('vname', ident.names_dict) self.assertNotIn('dataset', ident.names_dict) self.assertIn('dataset', ident.ident_dict) self.assertNotIn('fqname', ident.ident_dict) # Clone to get a PartitionIdentity pi = ident.as_partition(7) self.assertEqual('source.com-foobar-orig-0.0.1~p002Bi007001', pi.fqname) pi = ident.as_partition(8, time='time', space='space', format='geo') self.assertEqual('source.com-foobar-orig-time-space-geo-0.0.1~p002Bi008001', pi.fqname) # PartitionIdentity part_name = PartitionName(time='time', space='space', format='geo', **name.dict) pn = PartitionNumber(dn, 500) ident = PartitionIdentity(part_name, pn) expected_keys = set([ 'id', 'vid', 'revision', 'cache_key', 'name', 'vname', 'space', 'format', 'variation', 'dataset', 'source', 'version', 'time']) self.assertEqual(expected_keys, set(ident.dict.keys())) self.assertEqual('p002Bi084', ident.id_) self.assertEqual('p002Bi084001', ident.vid) self.assertEqual('source.com-foobar-orig-time-space-geo', str(ident.name)) self.assertEqual('source.com-foobar-orig-time-space-geo-0.0.1', ident.vname) self.assertEqual('source.com-foobar-orig-time-space-geo-0.0.1~p002Bi084001', ident.fqname) self.assertEqual('source.com/foobar-orig-0.0.1/geo/time-space', ident.path) self.assertEqual('source.com/foobar-orig-0.0.1/geo/time-space', ident.cache_key) # Updating partition names that were partially specified PartitionNameQuery(time='time', space='space', format='hdf') # pnq = PartitionNameQuery(time='time', space='space', format='hdf') # Partitions, converting to datasets ident = Identity(name, dn) pi = ident.as_partition(8, time='time', space='space', format='geo') self.assertEqual('source.com-foobar-orig-time-space-geo-0.0.1~p002Bi008001', pi.fqname) iid = pi.as_dataset() self.assertEqual(ident.fqname, iid.fqname)
def test_identity(self): name = Name(source='source.com', dataset='foobar', version='0.0.1', variation='orig') dn = DatasetNumber(10000, 1, assignment_class='registered') ident = Identity(name, dn) self.assertEqual('d002Bi', ident.id_) self.assertEqual('d002Bi001', ident.vid) self.assertEqual('source.com-foobar-orig', str(ident.name)) self.assertEqual('source.com-foobar-orig-0.0.1', ident.vname) self.assertEqual('source.com-foobar-orig-0.0.1~d002Bi001', ident.fqname) self.assertEqual('source.com/foobar-orig-0.0.1', ident.path) self.assertEqual('source.com/foobar-orig', ident.source_path) self.assertEqual('source.com/foobar-orig-0.0.1', ident.cache_key) self.assertEqual('source.com-foobar-orig-0.0.1', ident.name.dict['vname']) self.assertEqual( { 'id', 'vid', 'revision', 'name', 'vname', 'cache_key', 'variation', 'dataset', 'source', 'version' }, set(ident.dict.keys())) self.assertIn('fqname', ident.names_dict) self.assertIn('vname', ident.names_dict) self.assertNotIn('dataset', ident.names_dict) self.assertIn('dataset', ident.ident_dict) self.assertNotIn('fqname', ident.ident_dict) # Clone to get a PartitionIdentity pi = ident.as_partition(7) self.assertEqual('source.com-foobar-orig-0.0.1~p002Bi007001', pi.fqname) pi = ident.as_partition(8, time='time', space='space', format='geo') self.assertEqual( 'source.com-foobar-orig-time-space-geo-0.0.1~p002Bi008001', pi.fqname) # PartitionIdentity part_name = PartitionName(time='time', space='space', format='geo', **name.dict) pn = PartitionNumber(dn, 500) ident = PartitionIdentity(part_name, pn) expected_keys = set([ 'id', 'vid', 'revision', 'cache_key', 'name', 'vname', 'space', 'format', 'variation', 'dataset', 'source', 'version', 'time' ]) self.assertEqual(expected_keys, set(ident.dict.keys())) self.assertEqual('p002Bi084', ident.id_) self.assertEqual('p002Bi084001', ident.vid) self.assertEqual('source.com-foobar-orig-time-space-geo', str(ident.name)) self.assertEqual('source.com-foobar-orig-time-space-geo-0.0.1', ident.vname) self.assertEqual( 'source.com-foobar-orig-time-space-geo-0.0.1~p002Bi084001', ident.fqname) self.assertEqual('source.com/foobar-orig-0.0.1/geo/time-space', ident.path) self.assertEqual('source.com/foobar-orig-0.0.1/geo/time-space', ident.cache_key) # Updating partition names that were partially specified PartitionNameQuery(time='time', space='space', format='hdf') # pnq = PartitionNameQuery(time='time', space='space', format='hdf') # Partitions, converting to datasets ident = Identity(name, dn) pi = ident.as_partition(8, time='time', space='space', format='geo') self.assertEqual( 'source.com-foobar-orig-time-space-geo-0.0.1~p002Bi008001', pi.fqname) iid = pi.as_dataset() self.assertEqual(ident.fqname, iid.fqname)