Exemple #1
0
 def test_matchingdependencies(self, newconfig, mocksession):
     config = newconfig([], """
         [testenv]
         deps=abc
     """)
     envconfig = config.envconfigs['python']
     venv = VirtualEnv(envconfig, session=mocksession)
     cconfig = venv._getliveconfig()
     config = newconfig([], """
         [testenv]
         deps=xyz
     """)
     envconfig = config.envconfigs['python']
     venv = VirtualEnv(envconfig, session=mocksession)
     otherconfig = venv._getliveconfig()
     assert not cconfig.matches(otherconfig)
Exemple #2
0
 def test_python_recreation(self, tmpdir, newconfig, mocksession):
     pkg = tmpdir.ensure("package.tar.gz")
     config = newconfig([], "")
     envconfig = config.envconfigs['python']
     venv = VirtualEnv(envconfig, session=mocksession)
     cconfig = venv._getliveconfig()
     action = mocksession.newaction(venv, "update")
     venv.update(action)
     assert not venv.path_config.check()
     mocksession.installpkg(venv, pkg)
     assert venv.path_config.check()
     assert mocksession._pcalls
     args1 = map(str, mocksession._pcalls[0].args)
     assert 'virtualenv' in " ".join(args1)
     mocksession.report.expect("*", "*create*")
     # modify config and check that recreation happens
     mocksession._clearmocks()
     action = mocksession.newaction(venv, "update")
     venv.update(action)
     mocksession.report.expect("*", "*reusing*")
     mocksession._clearmocks()
     action = mocksession.newaction(venv, "update")
     cconfig.python = py.path.local("balla")
     cconfig.writeconfig(venv.path_config)
     venv.update(action)
     mocksession.report.expect("verbosity0", "*recreate*")
Exemple #3
0
def test_create(mocksession, newconfig):
    config = newconfig(
        [],
        """
        [testenv:py123]
    """,
    )
    envconfig = config.envconfigs["py123"]
    venv = VirtualEnv(envconfig, session=mocksession)
    assert venv.path == envconfig.envdir
    assert not venv.path.check()
    action = mocksession.newaction(venv, "getenv")
    tox_testenv_create(action=action, venv=venv)
    pcalls = mocksession._pcalls
    assert len(pcalls) >= 1
    args = pcalls[0].args
    assert "virtualenv" == str(args[2])
    if not tox.INFO.IS_WIN:
        # realpath is needed for stuff like the debian symlinks
        our_sys_path = py.path.local(sys.executable).realpath()
        assert our_sys_path == py.path.local(args[0]).realpath()
        # assert Envconfig.toxworkdir in args
        assert venv.getcommandpath("easy_install", cwd=py.path.local())
    interp = venv._getliveconfig().base_resolved_python_path
    assert interp == venv.envconfig.python_info.executable
    assert venv.path_config.check(exists=False)
Exemple #4
0
def test_create(monkeypatch, mocksession, newconfig):
    config = newconfig([], """
        [testenv:py123]
    """)
    envconfig = config.envconfigs['py123']
    venv = VirtualEnv(envconfig, session=mocksession)
    assert venv.path == envconfig.envdir
    assert not venv.path.check()
    action = mocksession.newaction(venv, "getenv")
    tox_testenv_create(action=action, venv=venv)
    pcalls = mocksession._pcalls
    assert len(pcalls) >= 1
    args = pcalls[0].args
    module = 'venv' if use_builtin_venv(venv) else 'virtualenv'
    assert module == str(args[2])
    if sys.platform != "win32":
        executable = sys.executable
        if use_builtin_venv(venv) and hasattr(sys, 'real_prefix'):
            # workaround virtualenv prefixing issue w/ venv on python3
            _, executable = executable.rsplit('bin/', 1)
            executable = os.path.join(sys.real_prefix, 'bin/', executable)
        # realpath is needed for stuff like the debian symlinks
        assert py.path.local(executable).realpath() == py.path.local(args[0]).realpath()
        # assert Envconfig.toxworkdir in args
        assert venv.getcommandpath("easy_install", cwd=py.path.local())
    interp = venv._getliveconfig().python
    assert interp == venv.envconfig.python_info.executable
    assert venv.path_config.check(exists=False)
Exemple #5
0
 def test_matchingdependencies_file(self, newconfig, mocksession):
     config = newconfig([], """
         [tox]
         distshare={toxworkdir}/distshare
         [testenv]
         deps=abc
              {distshare}/xyz.zip
     """)
     xyz = config.distshare.join("xyz.zip")
     xyz.ensure()
     envconfig = config.envconfigs['python']
     venv = VirtualEnv(envconfig, session=mocksession)
     cconfig = venv._getliveconfig()
     assert cconfig.matches(cconfig)
     xyz.write("hello")
     newconfig = venv._getliveconfig()
     assert not cconfig.matches(newconfig)
Exemple #6
0
 def test_basic(self, newconfig, mocksession, tmpdir):
     config = newconfig([], "")
     envconfig = config.envconfigs['python']
     venv = VirtualEnv(envconfig, session=mocksession)
     cconfig = venv._getliveconfig()
     assert cconfig.matches(cconfig)
     path = tmpdir.join("configdump")
     cconfig.writeconfig(path)
     newconfig = CreationConfig.readconfig(path)
     assert newconfig.matches(cconfig)
     assert cconfig.matches(newconfig)
Exemple #7
0
 def test_develop_recreation(self, newconfig, mocksession):
     config = newconfig([], "")
     envconfig = config.envconfigs['python']
     venv = VirtualEnv(envconfig, session=mocksession)
     action = mocksession.newaction(venv, "update")
     venv.update(action)
     cconfig = venv._getliveconfig()
     cconfig.usedevelop = True
     cconfig.writeconfig(venv.path_config)
     mocksession._clearmocks()
     action = mocksession.newaction(venv, "update")
     venv.update(action)
     mocksession.report.expect("verbosity0", "*recreate*")
Exemple #8
0
 def test_dep_recreation(self, newconfig, mocksession):
     config = newconfig([], "")
     envconfig = config.envconfigs['python']
     venv = VirtualEnv(envconfig, session=mocksession)
     action = mocksession.newaction(venv, "update")
     venv.update(action)
     cconfig = venv._getliveconfig()
     cconfig.deps[:] = [("1" * 32, "xyz.zip")]
     cconfig.writeconfig(venv.path_config)
     mocksession._clearmocks()
     action = mocksession.newaction(venv, "update")
     venv.update(action)
     mocksession.report.expect("*", "*recreate*")
Exemple #9
0
 def test_matchingdependencies_latest(self, newconfig, mocksession):
     config = newconfig([], """
         [tox]
         distshare={toxworkdir}/distshare
         [testenv]
         deps={distshare}/xyz-*
     """)
     config.distshare.ensure("xyz-1.2.0.zip")
     xyz2 = config.distshare.ensure("xyz-1.2.1.zip")
     envconfig = config.envconfigs['python']
     venv = VirtualEnv(envconfig, session=mocksession)
     cconfig = venv._getliveconfig()
     md5, path = cconfig.deps[0]
     assert path == xyz2
     assert md5 == path.computehash()
Exemple #10
0
def test_create(monkeypatch, mocksession, newconfig):
    config = newconfig([], """
        [testenv:py123]
    """)
    envconfig = config.envconfigs['py123']
    venv = VirtualEnv(envconfig, session=mocksession)
    assert venv.path == envconfig.envdir
    assert not venv.path.check()
    action = mocksession.newaction(venv, "getenv")
    tox_testenv_create(action=action, venv=venv)
    pcalls = mocksession._pcalls
    assert len(pcalls) >= 1
    args = pcalls[0].args
    assert "virtualenv" == str(args[2])
    if sys.platform != "win32":
        # realpath is needed for stuff like the debian symlinks
        assert py.path.local(sys.executable).realpath() == py.path.local(args[0]).realpath()
        # assert Envconfig.toxworkdir in args
        assert venv.getcommandpath("easy_install", cwd=py.path.local())
    interp = venv._getliveconfig().python
    assert interp == venv.envconfig.python_info.executable
    assert venv.path_config.check(exists=False)