示例#1
0
    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", [])
示例#2
0
    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
示例#3
0
    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", [])
示例#4
0
    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", [])
示例#5
0
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
示例#6
0
    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"))
示例#7
0
    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
示例#8
0
    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", [])
示例#9
0
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))