def test_complex_checkout(self): coroot = os.path.join(TestModuleTool.tempdir, "testproject") subprocess.check_output([ "git", "clone", os.path.join(TestModuleTool.tempdir, "repos", "testproject") ], cwd=TestModuleTool.tempdir, stderr=subprocess.STDOUT) os.chdir(coroot) os.curdir = coroot Config.load_config() ModuleTool().execute("install", []) expected = ["mod1", "mod2", "mod3", "mod6", "mod7"] for i in expected: dirname = os.path.join(coroot, "libs", i) assert os.path.exists(os.path.join(dirname, "signal")) assert not os.path.exists(os.path.join(dirname, "badsignal")) assert not os.path.exists(os.path.join(coroot, "libs", "mod5")) # test all tools, perhaps isolate to other test case ModuleTool().execute("list", []) ModuleTool().execute("update", []) ModuleTool().execute("status", []) ModuleTool().execute("push", [])
def test_for_git_failures(self): coroot = os.path.join(TestModuleTool.tempdir, "testproject2") subprocess.check_output([ "git", "clone", os.path.join(TestModuleTool.tempdir, "repos", "testproject"), "testproject2" ], cwd=TestModuleTool.tempdir, stderr=subprocess.STDOUT) os.chdir(coroot) os.curdir = coroot Config.load_config() ModuleTool().execute("install", []) gp = module.gitprovider module.gitprovider = BadModProvider( gp, os.path.join(coroot, "libs", "mod6")) try: # test all tools, perhaps isolate to other test case ModuleTool().execute("install", []) ModuleTool().execute("list", []) ModuleTool().execute("update", []) ModuleTool().execute("status", []) ModuleTool().execute("push", []) finally: module.gitprovider = gp
def test_for_repo_without_versions(self): coroot = os.path.join(TestModuleTool.tempdir, "noverproject") subprocess.check_output([ "git", "clone", os.path.join(TestModuleTool.tempdir, "repos", "noverproject") ], cwd=TestModuleTool.tempdir, stderr=subprocess.STDOUT) os.chdir(coroot) os.curdir = coroot Config.load_config() ModuleTool().execute("install", [])
def test_bad_dep_checkout(self): coroot = os.path.join(TestModuleTool.tempdir, "baddep") subprocess.check_output([ "git", "clone", os.path.join(TestModuleTool.tempdir, "repos", "baddep") ], cwd=TestModuleTool.tempdir, stderr=subprocess.STDOUT) os.chdir(coroot) os.curdir = coroot Config.load_config() with pytest.raises(CompilerException): ModuleTool().execute("install", [])
def add_file(modpath, file, content, msg, version=None): with open(os.path.join(modpath, file), "w") as projectfile: projectfile.write(content) if version is None: return commitmodule(modpath, msg) else: ocd = os.curdir os.curdir = modpath subprocess.check_output(["git", "add", "*"], cwd=modpath, stderr=subprocess.STDOUT) ModuleTool().commit(msg, version=version, dev=False, commit_all=True) os.curdir = ocd
def test_dev_checkout(self): coroot = os.path.join(TestModuleTool.tempdir, "devproject") subprocess.check_output([ "git", "clone", os.path.join(TestModuleTool.tempdir, "repos", "devproject") ], cwd=TestModuleTool.tempdir, stderr=subprocess.STDOUT) os.chdir(coroot) os.curdir = coroot Config.load_config() ModuleTool().execute("install", []) dirname = os.path.join(coroot, "libs", "mod8") assert os.path.exists(os.path.join(dirname, "devsignal")) assert not os.path.exists(os.path.join(dirname, "mastersignal"))
def test_install_for_git_failures(self): coroot = os.path.join(TestModuleTool.tempdir, "testproject3") subprocess.check_output([ "git", "clone", os.path.join(TestModuleTool.tempdir, "repos", "testproject"), "testproject3" ], cwd=TestModuleTool.tempdir, stderr=subprocess.STDOUT) os.chdir(coroot) os.curdir = coroot Config.load_config() gp = module.gitprovider module.gitprovider = BadModProvider( gp, os.path.join(coroot, "libs", "mod6")) try: with pytest.raises(ModuleNotFoundException): ModuleTool().execute("install", []) finally: module.gitprovider = gp
def test_bad_setup(self): coroot = os.path.join(TestModuleTool.tempdir, "badprojectx") subprocess.check_output([ "git", "clone", os.path.join(TestModuleTool.tempdir, "repos", "badproject"), coroot ], cwd=TestModuleTool.tempdir, stderr=subprocess.STDOUT) os.chdir(coroot) os.curdir = coroot Config.load_config() mod1 = os.path.join(coroot, "libs", "mod1") os.makedirs(mod1) subprocess.check_output([ "git", "clone", os.path.join(TestModuleTool.tempdir, "repos", "mod2"), mod1 ], cwd=TestModuleTool.tempdir, stderr=subprocess.STDOUT) with pytest.raises(ModuleNotFoundException): ModuleTool().execute("verify", [])
def test_versioning(): mt = ModuleTool() newversion = mt.determine_new_version(parse_version("1.2.3"), None, False, False, True, False) assert str(newversion) == "1.2.4" newversion = mt.determine_new_version(parse_version("1.2.3"), None, False, True, False, False) assert str(newversion) == "1.3.0" newversion = mt.determine_new_version(parse_version("1.2.3"), None, True, False, False, False) assert str(newversion) == "2.0.0" newversion = mt.determine_new_version(parse_version("1.2.3"), None, True, True, False, False) assert newversion is None newversion = mt.determine_new_version(parse_version("1.2.3"), None, True, False, True, False) assert newversion is None newversion = mt.determine_new_version(parse_version("1.2.3"), None, True, True, True, False) assert newversion is None newversion = mt.determine_new_version(parse_version("1.2.3.dev025"), None, False, False, True, False) assert str(newversion) == "1.2.3" newversion = mt.determine_new_version(parse_version("1.2.3.dev025"), None, False, False, False, False) assert str(newversion) == "1.2.3" newversion = mt.determine_new_version(parse_version("1.2.3"), None, False, False, True, True) assert re.search("1.2.4.dev[0-9]+", str(newversion)) newversion = mt.determine_new_version(parse_version("1.2.3"), None, False, True, False, True) assert re.search("1.3.0.dev[0-9]+", str(newversion)) newversion = mt.determine_new_version(parse_version("1.2.3"), None, True, False, False, True) assert re.search("2.0.0.dev[0-9]+", str(newversion)) newversion = mt.determine_new_version(parse_version("1.2.3"), None, True, True, False, True) assert newversion is None newversion = mt.determine_new_version(parse_version("1.2.3"), None, True, False, True, True) assert newversion is None newversion = mt.determine_new_version(parse_version("1.2.3"), None, True, True, True, True) assert newversion is None newversion = mt.determine_new_version(parse_version("1.2.3.dev025"), None, False, False, True, True) assert re.search("1.2.3.dev[0-9]+", str(newversion)) newversion = mt.determine_new_version(parse_version("1.2.3.dev025"), None, False, False, False, True) assert re.search("1.2.3.dev[0-9]+", str(newversion))