From 47724c3af8d6bbe3984e12374e2f1ff994df815a Mon Sep 17 00:00:00 2001 From: Alexandre Quercia Date: Tue, 19 May 2015 02:16:01 +0200 Subject: [PATCH 1/2] Added failling test for split ball with extended build version info --- src/cygapt/test/test_cygapt.py | 60 ++++++++++++++++++++++------------ 1 file changed, 39 insertions(+), 21 deletions(-) diff --git a/src/cygapt/test/test_cygapt.py b/src/cygapt/test/test_cygapt.py index d71a5b1..dc3836e 100644 --- a/src/cygapt/test/test_cygapt.py +++ b/src/cygapt/test/test_cygapt.py @@ -180,30 +180,48 @@ def testRunScript(self): self.obj._runScript(script, False); self.assertTrue(os.path.exists(map_script_done)); - def testVersionToString(self): - versiont = [1,12,3,1]; - out = "1.12.3-1"; - ret = self.obj._versionToString(versiont); - self.assertEqual(ret, out); - - def testStringToVersion(self): - string = "1.12.3-1"; - out = [1,12,3,1]; - ret = self.obj._stringToVersion(string); - self.assertEqual(list(ret), out); - - def testSplitBall(self): - value = "pkgball-1.12.3-1.tar.bz2"; - output = ["pkgball", (1,12,3,1)]; + @dataProvider('getVersionToStringData') + def testVersionToString(self, value, expected): + ret = self.obj._versionToString(value); + self.assertEqual(ret, expected); + + def getVersionToStringData(self): + return [ + [[1, 12, 3, 1], "1.12.3-1"], + [[1, 12, 3, "1.23foo45"], "1.12.3-1.23foo45"], + ]; + + @dataProvider('getVersionToStringData') + def testStringToVersion(self, expected, value): + ret = self.obj._stringToVersion(value); + self.assertEqual(list(ret), expected); + + @dataProvider('getSplitBallData') + def testSplitBall(self, value, expected): ret = self.obj._splitBall(value); - self.assertEqual(list(ret), output); + self.assertEqual(list(ret), expected); - def testJoinBall(self): - value = ["pkgball", [1,12,3,1]]; - output = "pkgball-1.12.3-1"; + def getSplitBallData(self): + return [ + ["pkgball-1.12.3-1.tar.bz2", ["pkgball", (1, 12, 3, 1)]], + ["pkgball-1.2-1.tar.xz", ["pkgball", (1, 2, 1)]], + ["pkgball-1.12.3-1.23foo45.tar.bz2", ["pkgball", (1, 12, 3, "1.23foo45")]], + ["pkgball-1.2.34c-56.tar.bz2", ["pkgball", (1, 2, 34, "c", 56)]], + ["pkgball-1.2.34.c-56.tar.bz2", ["pkgball", (1, 2, 34, "c", 56)]], + ]; + + @dataProvider('getJoinBallData') + def testJoinBall(self, expected, value): ret = self.obj._joinBall(value); - self.assertEqual(ret, output); - + self.assertEqual(ret, expected); + + def getJoinBallData(self): + return [ + ["pkgball-1.12.3-1", ["pkgball", (1, 12, 3, 1)]], + ["pkgball-1.12.3-1.23foo45", ["pkgball", (1, 12, 3, "1.23foo45")]], + ["pkgball-1.2.34.c-56", ["pkgball", (1, 2, 34, "c", 56)]], + ]; + def testGetSetupIni(self): self.obj.setDists(0); self.obj._getSetupIni(); From f4999e3225673ecd70cd6183d097accedf771710 Mon Sep 17 00:00:00 2001 From: Alexandre Quercia Date: Tue, 19 May 2015 02:16:50 +0200 Subject: [PATCH 2/2] Fixed split ball with extended build version info --- src/cygapt/cygapt.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/cygapt/cygapt.py b/src/cygapt/cygapt.py index 7ca9027..e4ceefa 100644 --- a/src/cygapt/cygapt.py +++ b/src/cygapt/cygapt.py @@ -239,16 +239,20 @@ def try_itoa(x): ); def _stringToVersion(self, s): + dashPosition = s.find('-'); + build = s[dashPosition + 1:]; + s = s[:dashPosition]; s = re.sub(r"([^0-9][^0-9]*)", " \\1 ", s); s = re.sub(r"[ _.-][ _.-]*", " ", s); + s = s.rstrip(' '); def try_atoi(x): if re.match(r"^[0-9]*$", x): return int(x); return x - return tuple(map(try_atoi, (s.split(' ')))); + return tuple(map(try_atoi, s.split(' ') + [build])); def _splitBall(self, p): - m = re.match(r"^(.*)-([0-9].*-[0-9]+)(.tar.(bz2|xz))?$", p); + m = re.match(r"^(.*)-([0-9].*-[0-9]+[.\w]*?)(.tar.(bz2|xz))?$", p); if not m: print("splitBall: {0}".format(p)); return (p[:2], (0, 0));