Ejemplo n.º 1
0
 def version_key(self, fn, vtype=None):
     rec = self.index[fn]
     if vtype == 'build':
         return rec['build_number']
     elif vtype == 'version':
         return normalized_version(rec['version'])
     else:
         return (normalized_version(rec['version']), rec['build_number'])
Ejemplo n.º 2
0
 def version_key(self, fkey, vtype=None):
     rec = self.index[fkey]
     cpri = -rec.get('priority', 1)
     ver = normalized_version(rec.get('version', ''))
     bld = rec.get('build_number', 0)
     return (cpri, ver, bld) if config.channel_priority else (ver, cpri,
                                                              bld)
Ejemplo n.º 3
0
 def __init__(self, fn, info):
     self.fn = fn
     self.name = info.get('name')
     self.version = info.get('version')
     self.build = info.get('build')
     self.build_number = info.get('build_number')
     self.channel = info.get('channel')
     try:
         self.norm_version = normalized_version(self.version)
     except ValueError:
         stderrlog.error("\nThe following stack trace is in reference to "
                         "package:\n\n\t%s\n\n" % fn)
         raise
     self.info = info
Ejemplo n.º 4
0
 def __init__(self, fn, info):
     self.fn = fn
     self.name = info.get('name')
     self.version = info.get('version')
     self.build = info.get('build')
     self.build_number = info.get('build_number')
     self.channel = info.get('channel')
     try:
         self.norm_version = normalized_version(self.version)
     except ValueError:
         stderrlog.error("\nThe following stack trace is in reference to "
                         "package:\n\n\t%s\n\n" % fn)
         raise
     self.info = info
Ejemplo n.º 5
0
 def version_key(self, fkey, vtype=None):
     rec = self.index[fkey]
     cpri = -rec.get('priority', 1)
     ver = normalized_version(rec.get('version', ''))
     bld = rec.get('build_number', 0)
     return (cpri, ver, bld) if config.channel_priority else (ver, cpri, bld)
Ejemplo n.º 6
0
 def version_key(self, fn, vtype=None):
     rec = self.index[fn]
     return (normalized_version(rec['version']), rec['build_number'])
Ejemplo n.º 7
0
    def test_version_order(self):
        versions = [
           (VersionOrder("0.4"),        [[0], [0], [4]]),
           (VersionOrder("0.4.0"),      [[0], [0], [4], [0]]),
           (VersionOrder("0.4.1a.vc11"),[[0], [0], [4], [1, 'a'],[0, 'vc', 11]]),
           (VersionOrder("0.4.1.rc"),   [[0], [0], [4], [1], [0, 'rc']]),
           (VersionOrder("0.4.1.vc11"), [[0], [0], [4], [1],[0, 'vc', 11]]),
           (VersionOrder("0.4.1"),      [[0], [0], [4], [1]]),
           (VersionOrder("0.5*"),       [[0], [0], [5, '*']]),
           (VersionOrder("0.5a1"),      [[0], [0], [5, 'a', 1]]),
           (VersionOrder("0.5b3"),      [[0], [0], [5, 'b', 3]]),
           (VersionOrder("0.5C1"),      [[0], [0], [5, 'c', 1]]),
           (VersionOrder("0.5z"),       [[0], [0], [5, 'z']]),
           (VersionOrder("0.5za"),      [[0], [0], [5, 'za']]),
           (VersionOrder("0.5"),        [[0], [0], [5]]),
           (VersionOrder("0.5_5"),      [[0], [0], [5], [5]]),
           (VersionOrder("0.5-5"),      [[0], [0], [5], [5]]),
           (VersionOrder("0.9.6"),      [[0], [0], [9], [6]]),
           (VersionOrder("0.960923"),   [[0], [0], [960923]]),
           (VersionOrder("1.0"),        [[0], [1], [0]]),
           (VersionOrder("1.0.4a3"),    [[0], [1], [0], [4, 'a', 3]]),
           (VersionOrder("1.0.4b1"),    [[0], [1], [0], [4, 'b', 1]]),
           (VersionOrder("1.0.4"),      [[0], [1], [0], [4]]),
           (VersionOrder("1.1dev1"),    [[0], [1], [1, 'DEV', 1]]),
           (VersionOrder("1.1a1"),      [[0], [1], [1, 'a', 1]]),
           (VersionOrder("1.1.dev1"),   [[0], [1], [1], [0, 'DEV', 1]]),
           (VersionOrder("1.1.a1"),     [[0], [1], [1], [0, 'a', 1]]),
           (VersionOrder("1.1"),        [[0], [1], [1]]),
           (VersionOrder("1.1.post1"),  [[0], [1], [1], [0, float('inf'), 1]]),
           (VersionOrder("1.1.1dev1"),  [[0], [1], [1], [1, 'DEV', 1]]),
           (VersionOrder("1.1.1rc1"),   [[0], [1], [1], [1, 'rc', 1]]),
           (VersionOrder("1.1.1"),      [[0], [1], [1], [1]]),
           (VersionOrder("1.1.1post1"), [[0], [1], [1], [1, float('inf'), 1]]),
           (VersionOrder("1.1post1"),   [[0], [1], [1, float('inf'), 1]]),
           (VersionOrder("2g6"),        [[0], [2, 'g', 6]]),
           (VersionOrder("2.0b1pr0"),   [[0], [2], [0, 'b', 1, 'pr', 0]]),
           (VersionOrder("2.2be.ta29"), [[0], [2], [2, 'be'], [0, 'ta', 29]]),
           (VersionOrder("2.2be5ta29"), [[0], [2], [2, 'be', 5, 'ta', 29]]),
           (VersionOrder("2.2beta29"),  [[0], [2], [2, 'beta', 29]]),
           (VersionOrder("2.2.0.1"),    [[0], [2], [2],[0],[1]]),
           (VersionOrder("3.1.1.6"),    [[0], [3], [1], [1], [6]]),
           (VersionOrder("3.2.p.r0"),   [[0], [3], [2], [0, 'p'], [0, 'r', 0]]),
           (VersionOrder("3.2.pr0"),    [[0], [3], [2], [0, 'pr', 0]]),
           (VersionOrder("3.2.pr.1"),   [[0], [3], [2], [0, 'pr'], [1]]),
           (VersionOrder("5.5.kw"),     [[0], [5], [5], [0, 'kw']]),
           (VersionOrder("11g"),        [[0], [11, 'g']]),
           (VersionOrder("14.3.1"),     [[0], [14], [3], [1]]),
           (VersionOrder("14.3.1.post26.g9d75ca2"),
                                        [[0],[14],[3],[1],[0,float('inf'),26],[0,'g',9,'d',75,'ca',2]]),
           (VersionOrder("1996.07.12"), [[0], [1996], [7], [12]]),
           (VersionOrder("1!0.4.1"),    [[1], [0], [4], [1]]),
           (VersionOrder("1!3.1.1.6"),  [[1], [3], [1], [1], [6]]),
           (VersionOrder("2!0.4.1"),    [[2], [0], [4], [1]]),
        ]

        # check parser
        for v, l in versions:
            self.assertEqual(v.version, l)
        self.assertEqual(VersionOrder("0.4.1.rc"), VersionOrder("  0.4.1.RC  "))
        self.assertEqual(normalized_version("  0.4.1.RC  "), VersionOrder("0.4.1.rc"))
        with self.assertRaises(ValueError):
            VersionOrder("")
        with self.assertRaises(ValueError):
            VersionOrder("  ")
        with self.assertRaises(ValueError):
            VersionOrder("3.5&1")
        with self.assertRaises(ValueError):
            VersionOrder("5.5++")
        with self.assertRaises(ValueError):
            VersionOrder("5.5..mw")
        with self.assertRaises(ValueError):
            VersionOrder("5.5.mw.")
        with self.assertRaises(ValueError):
            VersionOrder("!")
        with self.assertRaises(ValueError):
            VersionOrder("a!1.0")
        with self.assertRaises(ValueError):
            VersionOrder("a!b!1.0")

        # check __eq__
        self.assertEqual(VersionOrder("  0.4.rc  "), VersionOrder("0.4.RC"))
        self.assertEqual(VersionOrder("0.4"), VersionOrder("0.4.0"))
        self.assertNotEqual(VersionOrder("0.4"), VersionOrder("0.4.1"))
        self.assertEqual(VersionOrder("0.4.a1"), VersionOrder("0.4.0a1"))
        self.assertNotEqual(VersionOrder("0.4.a1"), VersionOrder("0.4.1a1"))

        # check __lt__
        self.assertEqual(sorted(versions, key=lambda x: x[0]), versions)

        # test openssl convention
        openssl = [VersionOrder(k) for k in ['1.0.1', '1.0.1post.a', '1.0.1post.b',
                                             '1.0.1post.z', '1.0.1post.za', '1.0.2']]
        self.assertEqual(sorted(openssl), openssl)
Ejemplo n.º 8
0
 def version_key(self, fn, majoronly=False):
     rec = self.index[fn]
     if majoronly:
         return normalized_version(rec['version'])
     else:
         return (normalized_version(rec['version']), rec['build_number'])
Ejemplo n.º 9
0
    def test_version_order(self):
        versions = [
            (VersionOrder("0.4"), [[0], [0], [4]]),
            (VersionOrder("0.4.0"), [[0], [0], [4], [0]]),
            (VersionOrder("0.4.1a.vc11"), [[0], [0], [4], [1, 'a'],
                                           [0, 'vc', 11]]),
            (VersionOrder("0.4.1.rc"), [[0], [0], [4], [1], [0, 'rc']]),
            (VersionOrder("0.4.1.vc11"), [[0], [0], [4], [1], [0, 'vc', 11]]),
            (VersionOrder("0.4.1"), [[0], [0], [4], [1]]),
            (VersionOrder("0.5*"), [[0], [0], [5, '*']]),
            (VersionOrder("0.5a1"), [[0], [0], [5, 'a', 1]]),
            (VersionOrder("0.5b3"), [[0], [0], [5, 'b', 3]]),
            (VersionOrder("0.5C1"), [[0], [0], [5, 'c', 1]]),
            (VersionOrder("0.5z"), [[0], [0], [5, 'z']]),
            (VersionOrder("0.5za"), [[0], [0], [5, 'za']]),
            (VersionOrder("0.5"), [[0], [0], [5]]),
            (VersionOrder("0.5_5"), [[0], [0], [5], [5]]),
            (VersionOrder("0.5-5"), [[0], [0], [5], [5]]),
            (VersionOrder("0.9.6"), [[0], [0], [9], [6]]),
            (VersionOrder("0.960923"), [[0], [0], [960923]]),
            (VersionOrder("1.0"), [[0], [1], [0]]),
            (VersionOrder("1.0.4a3"), [[0], [1], [0], [4, 'a', 3]]),
            (VersionOrder("1.0.4b1"), [[0], [1], [0], [4, 'b', 1]]),
            (VersionOrder("1.0.4"), [[0], [1], [0], [4]]),
            (VersionOrder("1.1dev1"), [[0], [1], [1, 'DEV', 1]]),
            (VersionOrder("1.1a1"), [[0], [1], [1, 'a', 1]]),
            (VersionOrder("1.1.dev1"), [[0], [1], [1], [0, 'DEV', 1]]),
            (VersionOrder("1.1.a1"), [[0], [1], [1], [0, 'a', 1]]),
            (VersionOrder("1.1"), [[0], [1], [1]]),
            (VersionOrder("1.1.post1"), [[0], [1], [1], [0, float('inf'), 1]]),
            (VersionOrder("1.1.1dev1"), [[0], [1], [1], [1, 'DEV', 1]]),
            (VersionOrder("1.1.1rc1"), [[0], [1], [1], [1, 'rc', 1]]),
            (VersionOrder("1.1.1"), [[0], [1], [1], [1]]),
            (VersionOrder("1.1.1post1"), [[0], [1], [1], [1,
                                                          float('inf'), 1]]),
            (VersionOrder("1.1post1"), [[0], [1], [1, float('inf'), 1]]),
            (VersionOrder("2g6"), [[0], [2, 'g', 6]]),
            (VersionOrder("2.0b1pr0"), [[0], [2], [0, 'b', 1, 'pr', 0]]),
            (VersionOrder("2.2be.ta29"), [[0], [2], [2, 'be'], [0, 'ta', 29]]),
            (VersionOrder("2.2be5ta29"), [[0], [2], [2, 'be', 5, 'ta', 29]]),
            (VersionOrder("2.2beta29"), [[0], [2], [2, 'beta', 29]]),
            (VersionOrder("2.2.0.1"), [[0], [2], [2], [0], [1]]),
            (VersionOrder("3.1.1.6"), [[0], [3], [1], [1], [6]]),
            (VersionOrder("3.2.p.r0"), [[0], [3], [2], [0, 'p'], [0, 'r', 0]]),
            (VersionOrder("3.2.pr0"), [[0], [3], [2], [0, 'pr', 0]]),
            (VersionOrder("3.2.pr.1"), [[0], [3], [2], [0, 'pr'], [1]]),
            (VersionOrder("5.5.kw"), [[0], [5], [5], [0, 'kw']]),
            (VersionOrder("11g"), [[0], [11, 'g']]),
            (VersionOrder("14.3.1"), [[0], [14], [3], [1]]),
            (VersionOrder("14.3.1.post26.g9d75ca2"),
             [[0], [14], [3], [1], [0, float('inf'), 26],
              [0, 'g', 9, 'd', 75, 'ca', 2]]),
            (VersionOrder("1996.07.12"), [[0], [1996], [7], [12]]),
            (VersionOrder("1!0.4.1"), [[1], [0], [4], [1]]),
            (VersionOrder("1!3.1.1.6"), [[1], [3], [1], [1], [6]]),
            (VersionOrder("2!0.4.1"), [[2], [0], [4], [1]]),
        ]

        # check parser
        for v, l in versions:
            self.assertEqual(v.version, l)
        self.assertEqual(VersionOrder("0.4.1.rc"),
                         VersionOrder("  0.4.1.RC  "))
        self.assertEqual(normalized_version("  0.4.1.RC  "),
                         VersionOrder("0.4.1.rc"))
        with self.assertRaises(ValueError):
            VersionOrder("")
        with self.assertRaises(ValueError):
            VersionOrder("  ")
        with self.assertRaises(ValueError):
            VersionOrder("3.5&1")
        with self.assertRaises(ValueError):
            VersionOrder("5.5++")
        with self.assertRaises(ValueError):
            VersionOrder("5.5..mw")
        with self.assertRaises(ValueError):
            VersionOrder("5.5.mw.")
        with self.assertRaises(ValueError):
            VersionOrder("!")
        with self.assertRaises(ValueError):
            VersionOrder("a!1.0")
        with self.assertRaises(ValueError):
            VersionOrder("a!b!1.0")

        # check __eq__
        self.assertEqual(VersionOrder("  0.4.rc  "), VersionOrder("0.4.RC"))
        self.assertEqual(VersionOrder("0.4"), VersionOrder("0.4.0"))
        self.assertNotEqual(VersionOrder("0.4"), VersionOrder("0.4.1"))
        self.assertEqual(VersionOrder("0.4.a1"), VersionOrder("0.4.0a1"))
        self.assertNotEqual(VersionOrder("0.4.a1"), VersionOrder("0.4.1a1"))

        # check __lt__
        self.assertEqual(sorted(versions, key=lambda x: x[0]), versions)

        # test openssl convention
        openssl = [
            VersionOrder(k) for k in [
                '1.0.1', '1.0.1post.a', '1.0.1post.b', '1.0.1post.z',
                '1.0.1post.za', '1.0.2'
            ]
        ]
        self.assertEqual(sorted(openssl), openssl)
Ejemplo n.º 10
0
 def version_key(self, fn, vtype=None):
     rec = self.index[fn]
     return (normalized_version(rec['version']), rec['build_number'])
Ejemplo n.º 11
0
    def test_version_order(self):
        versions = [
            (VersionOrder("0.4"), [[0], [0], [4]]),
            (VersionOrder("0.4.0"), [[0], [0], [4], [0]]),
            (VersionOrder("0.4.1a.vc11"), [[0], [0], [4], [1, "a"], [0, "vc", 11]]),
            (VersionOrder("0.4.1.rc"), [[0], [0], [4], [1], [0, "rc"]]),
            (VersionOrder("0.4.1.vc11"), [[0], [0], [4], [1], [0, "vc", 11]]),
            (VersionOrder("0.4.1"), [[0], [0], [4], [1]]),
            (VersionOrder("0.5*"), [[0], [0], [5, "*"]]),
            (VersionOrder("0.5a1"), [[0], [0], [5, "a", 1]]),
            (VersionOrder("0.5b3"), [[0], [0], [5, "b", 3]]),
            (VersionOrder("0.5C1"), [[0], [0], [5, "c", 1]]),
            (VersionOrder("0.5z"), [[0], [0], [5, "z"]]),
            (VersionOrder("0.5za"), [[0], [0], [5, "za"]]),
            (VersionOrder("0.5"), [[0], [0], [5]]),
            (VersionOrder("0.9.6"), [[0], [0], [9], [6]]),
            (VersionOrder("0.960923"), [[0], [0], [960923]]),
            (VersionOrder("1.0"), [[0], [1], [0]]),
            (VersionOrder("1.0.4a3"), [[0], [1], [0], [4, "a", 3]]),
            (VersionOrder("1.0.4b1"), [[0], [1], [0], [4, "b", 1]]),
            (VersionOrder("1.0.4"), [[0], [1], [0], [4]]),
            (VersionOrder("1.1dev1"), [[0], [1], [1, "DEV", 1]]),
            (VersionOrder("1.1a1"), [[0], [1], [1, "a", 1]]),
            (VersionOrder("1.1.dev1"), [[0], [1], [1], [0, "DEV", 1]]),
            (VersionOrder("1.1.a1"), [[0], [1], [1], [0, "a", 1]]),
            (VersionOrder("1.1"), [[0], [1], [1]]),
            (VersionOrder("1.1.post1"), [[0], [1], [1], [0, float("inf"), 1]]),
            (VersionOrder("1.1.1dev1"), [[0], [1], [1], [1, "DEV", 1]]),
            (VersionOrder("1.1.1rc1"), [[0], [1], [1], [1, "rc", 1]]),
            (VersionOrder("1.1.1"), [[0], [1], [1], [1]]),
            (VersionOrder("1.1.1post1"), [[0], [1], [1], [1, float("inf"), 1]]),
            (VersionOrder("1.1post1"), [[0], [1], [1, float("inf"), 1]]),
            (VersionOrder("2g6"), [[0], [2, "g", 6]]),
            (VersionOrder("2.0b1pr0"), [[0], [2], [0, "b", 1, "pr", 0]]),
            (VersionOrder("2.2be.ta29"), [[0], [2], [2, "be"], [0, "ta", 29]]),
            (VersionOrder("2.2be5ta29"), [[0], [2], [2, "be", 5, "ta", 29]]),
            (VersionOrder("2.2beta29"), [[0], [2], [2, "beta", 29]]),
            (VersionOrder("2.2.0.1"), [[0], [2], [2], [0], [1]]),
            (VersionOrder("3.1.1.6"), [[0], [3], [1], [1], [6]]),
            (VersionOrder("3.2.p.r0"), [[0], [3], [2], [0, "p"], [0, "r", 0]]),
            (VersionOrder("3.2.pr0"), [[0], [3], [2], [0, "pr", 0]]),
            (VersionOrder("3.2.pr.1"), [[0], [3], [2], [0, "pr"], [1]]),
            (VersionOrder("5.5.kw"), [[0], [5], [5], [0, "kw"]]),
            (VersionOrder("11g"), [[0], [11, "g"]]),
            (VersionOrder("14.3.1"), [[0], [14], [3], [1]]),
            (
                VersionOrder("14.3.1.post26.g9d75ca2"),
                [[0], [14], [3], [1], [0, float("inf"), 26], [0, "g", 9, "d", 75, "ca", 2]],
            ),
            (VersionOrder("1996.07.12"), [[0], [1996], [7], [12]]),
            (VersionOrder("1!0.4.1"), [[1], [0], [4], [1]]),
            (VersionOrder("1!3.1.1.6"), [[1], [3], [1], [1], [6]]),
            (VersionOrder("2!0.4.1"), [[2], [0], [4], [1]]),
        ]

        # check parser
        for v, l in versions:
            self.assertEqual(v.version, l)
        self.assertEqual(VersionOrder("0.4.1.rc"), VersionOrder("  0.4.1.RC  "))
        self.assertEqual(normalized_version("  0.4.1.RC  "), VersionOrder("0.4.1.rc"))
        with self.assertRaises(ValueError):
            VersionOrder("")
        with self.assertRaises(ValueError):
            VersionOrder("  ")
        with self.assertRaises(ValueError):
            VersionOrder("5.5++")
        with self.assertRaises(ValueError):
            VersionOrder("5.5..mw")
        with self.assertRaises(ValueError):
            VersionOrder("5.5.mw.")
        with self.assertRaises(ValueError):
            VersionOrder("!")
        with self.assertRaises(ValueError):
            VersionOrder("a!1.0")

        # check __eq__
        self.assertEqual(VersionOrder("  0.4.rc  "), VersionOrder("0.4.RC"))
        self.assertEqual(VersionOrder("0.4"), VersionOrder("0.4.0"))
        self.assertNotEqual(VersionOrder("0.4"), VersionOrder("0.4.1"))
        self.assertEqual(VersionOrder("0.4.a1"), VersionOrder("0.4.0a1"))
        self.assertNotEqual(VersionOrder("0.4.a1"), VersionOrder("0.4.1a1"))

        # check __lt__
        self.assertEqual(sorted(versions, key=lambda x: x[0]), versions)

        # test openssl convention
        openssl = [
            VersionOrder(k) for k in ["1.0.1", "1.0.1post.a", "1.0.1post.b", "1.0.1post.z", "1.0.1post.za", "1.0.2"]
        ]
        self.assertEqual(sorted(openssl), openssl)
Ejemplo n.º 12
0
 def version_key(self, fn, majoronly=False):
     rec = self.index[fn]
     if majoronly:
         return normalized_version(rec['version'])
     else:
         return (normalized_version(rec['version']), rec['build_number'])