Beispiel #1
0
 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()
     }
Beispiel #2
0
    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)
Beispiel #3
0
 def _resolve_ref(self, ref, location=None):
     ip = Identity.classify(ref)
     return ip, {k: Identity.from_dict(ds) for k, ds in datasets.items()}
Beispiel #4
0
    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)