def simple_test(self): v1 = Version("1.2.3") self.assertTrue(v1 == "1.2.3") self.assertTrue(v1 > "1.1") self.assertTrue(v1 > None) self.assertTrue(v1 < "1.11") self.assertTrue(v1 > "1.2") self.assertTrue(v1 > "1.2.2.2") self.assertTrue(v1 < "1.2.3.2") self.assertEqual(v1.major(), "1.Y.Z") # 1.X.Y self.assertEqual(v1.minor(), "1.2.Z") # 1.2.Y self.assertEqual(v1.patch(), "1.2.3") self.assertEqual(v1.pre(), "1.2.3") self.assertEqual(v1.build, "") self.assertTrue(v1.compatible("1.X")) self.assertTrue(v1.compatible("1.2.Y")) self.assertFalse(v1.compatible("0.X")) v2 = v1.minor() self.assertTrue(v2.compatible("1.X")) self.assertTrue(v2.compatible("1.2.3.4")) self.assertFalse(v2.compatible("1.3.3.4")) v1 = Version("1.2.rc1") self.assertTrue(v1 < "1.2.0") self.assertFalse(v1 < "1.1.9") self.assertTrue(Version("1.2.1-dev") < Version("1.2.1")) self.assertTrue(Version("1.2.1-dev") < Version("1.2.2")) self.assertTrue(Version("1.2.1-dev") < Version("1.3")) self.assertTrue(Version("1.2.1-dev") < Version("1.3-alpha")) self.assertTrue(Version("1.2.1-dev") > Version("1.2.0")) self.assertTrue(Version("1.2.1-dev") > Version("1.2")) self.assertTrue(Version("1.2.1-dev") > Version("1.2.alpha")) self.assertTrue(Version("1.2.1-dev") > Version("1.2-alpha"))
def test_text(self): v1 = Version("master+build2") self.assertEqual(v1.major(), "master") self.assertEqual(v1.minor(), "master") self.assertEqual(v1.patch(), "master") self.assertEqual(v1.pre(), "master") self.assertEqual(v1.build, "build2") self.assertEqual(v1.stable(), "master")
def text_test(self): v1 = Version("master+build2") self.assertEqual(v1.major(), "master") self.assertEqual(v1.minor(), "master") self.assertEqual(v1.patch(), "master") self.assertEqual(v1.pre(), "master") self.assertEqual(v1.build, "build2") self.assertEqual(v1.stable(), "master")
def get_best_installer(arch, threads, exception, version): if arch == "x86": arch = "i686" if exception == "dwarf2": exception = "dwarf" tools.download(repository_file, "repository.txt", overwrite=True, retry=10) installers = [] with open("repository.txt") as f: for line in f.readlines(): installers.append(Installer(line)) version = Version(version) def params_match(i): return arch == i.arch and threads == i.threads and exception == i.exception def better_choice(i): return not best_match or i.version > best_match.version or ( i.version == best_match.version and i.revision > best_match.revision) best_match = None for i in installers: if len(version.as_list) == 1: if i.version.major() == version.major() and params_match( i) and better_choice(i): best_match = i elif len(version.as_list) == 2: if i.version.major() == version.major() and i.version.minor( ) == version.minor() and params_match(i) and better_choice(i): best_match = i elif len(version.as_list) == 3: if i.version == version and params_match(i) and better_choice(i): best_match = i if not best_match: raise Exception( "There is no suitable MinGW release for the requested features %s %s %s %s" % (arch, threads, exception, version)) else: return best_match
def get_best_installer(arch, threads, exception, version): if arch == "x86": arch = "i686" if exception == "dwarf2": exception = "dwarf" tools.download(repository_file, "repository.txt", overwrite=True, retry=10) installers = [] with open("repository.txt") as f: for line in f.readlines(): installers.append(Installer(line)) version = Version(version) def params_match(i): return arch == i.arch and threads == i.threads and exception == i.exception def better_choice(i): return not best_match or i.version > best_match.version or (i.version == best_match.version and i.revision > best_match.revision) best_match = None for i in installers: if len(version.as_list) == 1: if i.version.major() == version.major() and params_match(i) and better_choice(i): best_match = i elif len(version.as_list) == 2: if i.version.major() == version.major() and i.version.minor() == version.minor() and params_match(i) and better_choice(i): best_match = i elif len(version.as_list) == 3: if i.version == version and params_match(i) and better_choice(i): best_match = i if not best_match: raise Exception("There is no suitable MinGW release for the requested features %s %s %s %s" % (arch, threads, exception, version)) else: return best_match
def test_patch(self): v1 = Version("1.2.3-alpha1+build2") self.assertEqual(v1.major(), "1.Y.Z") self.assertEqual(v1.minor(), "1.2.Z") self.assertEqual(v1.patch(), "1.2.3") self.assertEqual(v1.pre(), "1.2.3-alpha1") self.assertEqual(v1.build, "build2") self.assertEqual(v1.stable(), "1.Y.Z") v1 = Version("1.2.3+build2") self.assertEqual(v1.major(), "1.Y.Z") self.assertEqual(v1.minor(), "1.2.Z") self.assertEqual(v1.patch(), "1.2.3") self.assertEqual(v1.pre(), "1.2.3") self.assertEqual(v1.build, "build2") self.assertEqual(v1.stable(), "1.Y.Z") v1 = Version("0.2.3-alpha1+build2") self.assertEqual(v1.major(), "0.Y.Z") self.assertEqual(v1.minor(), "0.2.Z") self.assertEqual(v1.patch(), "0.2.3") self.assertEqual(v1.pre(), "0.2.3-alpha1") self.assertEqual(v1.build, "build2") self.assertEqual(v1.stable(), "0.2.3-alpha1+build2")
def patch_test(self): v1 = Version("1.2.3-alpha1+build2") self.assertEqual(v1.major(), "1.Y.Z") self.assertEqual(v1.minor(), "1.2.Z") self.assertEqual(v1.patch(), "1.2.3") self.assertEqual(v1.pre(), "1.2.3-alpha1") self.assertEqual(v1.build, "build2") self.assertEqual(v1.stable(), "1.Y.Z") v1 = Version("1.2.3+build2") self.assertEqual(v1.major(), "1.Y.Z") self.assertEqual(v1.minor(), "1.2.Z") self.assertEqual(v1.patch(), "1.2.3") self.assertEqual(v1.pre(), "1.2.3") self.assertEqual(v1.build, "build2") self.assertEqual(v1.stable(), "1.Y.Z") v1 = Version("0.2.3-alpha1+build2") self.assertEqual(v1.major(), "0.Y.Z") self.assertEqual(v1.minor(), "0.2.Z") self.assertEqual(v1.patch(), "0.2.3") self.assertEqual(v1.pre(), "0.2.3-alpha1") self.assertEqual(v1.build, "build2") self.assertEqual(v1.stable(), "0.2.3-alpha1+build2")
def simple_test(self): v1 = Version("1.2.3") self.assertTrue(v1 == "1.2.3") self.assertTrue(v1 > "1.1") self.assertTrue(v1 > None) self.assertTrue(v1 < "1.11") self.assertEqual(v1.major(), "1.Y.Z") # 1.X.Y self.assertEqual(v1.minor(), "1.2.Z") # 1.2.Y self.assertTrue(v1.compatible("1.X")) self.assertTrue(v1.compatible("1.2.Y")) self.assertFalse(v1.compatible("0.X")) v2 = v1.minor() self.assertTrue(v2.compatible("1.X")) self.assertTrue(v2.compatible("1.2.3.4")) self.assertFalse(v2.compatible("1.3.3.4"))
def simple_test(self): v1 = Version("1.2.3") self.assertTrue(v1 == "1.2.3") self.assertTrue(v1 > "1.1") self.assertTrue(v1 > None) self.assertTrue(v1 < "1.11") self.assertTrue(v1 > "1.2") self.assertTrue(v1 > "1.2.2.2") self.assertTrue(v1 < "1.2.3.2") self.assertEqual(v1.major(), "1.Y.Z") # 1.X.Y self.assertEqual(v1.minor(), "1.2.Z") # 1.2.Y self.assertTrue(v1.compatible("1.X")) self.assertTrue(v1.compatible("1.2.Y")) self.assertFalse(v1.compatible("0.X")) v2 = v1.minor() self.assertTrue(v2.compatible("1.X")) self.assertTrue(v2.compatible("1.2.3.4")) self.assertFalse(v2.compatible("1.3.3.4")) v1 = Version("1.2.rc1") self.assertTrue(v1 < "1.2.0") self.assertFalse(v1 < "1.1.9")