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'])
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)
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
def version_key(self, fn, vtype=None): rec = self.index[fn] return (normalized_version(rec['version']), rec['build_number'])
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)
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'])
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)
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)