def _resolve_ref(self, ref, location=None): from ambry.identity import Identity ip = Identity.classify(ref) return ip, { k: Identity.from_dict(ds) for k, ds in datasets.items() }
def test_split(self): name = Name(source='source.com', dataset='foobar', version='1.2.3') dn = DatasetNumber(10000, 1, assignment_class='registered') # NOTE, version is entered as 1.2.3, but will be changed to 1.2.1 b/c # last digit is overridden by revision ident = Identity(name, dn) ip = Identity.classify(name) self.assertEqual(Name, ip.isa) self.assertIsNone(ip.version) ip = Identity.classify(ident.name) self.assertEqual(Name, ip.isa) self.assertIsNone(ip.on) self.assertEqual(ident.sname, ip.name) self.assertIsNone(ip.version) ip = Identity.classify(ident.vname) self.assertEqual(Name, ip.isa) self.assertIsNone(ip.on) self.assertEqual(ident.vname, ip.name) self.assertEqual(ident._name.version, str(ip.version)) ip = Identity.classify(ident.fqname) self.assertEqual(DatasetNumber, ip.isa) self.assertEqual(ident.vname, ip.name) self.assertEqual(str(ip.on), str(ip.on)) ip = Identity.classify(ident.vid) self.assertEqual(DatasetNumber, ip.isa) ip = Identity.classify(ident.id_) self.assertEqual(DatasetNumber, ip.isa) ip = Identity.classify(dn) self.assertEqual(DatasetNumber, ip.isa) ip = Identity.classify(dn.as_partition(10)) self.assertEqual(PartitionNumber, ip.isa) ip = Identity.classify('source.com-foobar-orig') self.assertIsNone(ip.version) self.assertEqual('source.com-foobar-orig', ip.sname) self.assertIsNone(ip.vname) ip = Identity.classify('source.com-foobar-orig-1.2.3') self.assertIsInstance(ip.version, Version) self.assertEqual('source.com-foobar-orig', ip.sname) self.assertEqual('source.com-foobar-orig-1.2.3', ip.vname) ip = Identity.classify('source.com-foobar-orig->=1.2.3') self.assertIsInstance(ip.version, Spec) self.assertEqual('source.com-foobar-orig', ip.sname) self.assertIsNone(ip.vname) ip = Identity.classify('source.com-foobar-orig-==1.2.3') self.assertIsInstance(ip.version, Spec) self.assertEqual('source.com-foobar-orig', ip.sname) self.assertIsNone(ip.vname)
def _resolve_ref(self, ref, location=None): ip = Identity.classify(ref) return ip, {k: Identity.from_dict(ds) for k, ds in datasets.items()}