Skip to content

Commit

Permalink
more test fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
gaborbernat committed Jan 20, 2019
1 parent 7615859 commit e656e49
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 26 deletions.
1 change: 1 addition & 0 deletions src/tox/_pytestplugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,7 @@ def popen(self, args, cwd, shell=None, stdout=None, stderr=None, env=None, **_):
return process_call_mock

def new_config(self, config):
update_default_reporter(config.option.quiet_level, config.option.verbose_level)
self.config = config
self.venv_dict.clear()
self.existing_venvs.clear()
Expand Down
3 changes: 2 additions & 1 deletion tests/unit/config/test_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -2664,7 +2664,8 @@ def test_no_tox_ini(self, cmd, initproj):
result = cmd()
assert result.ret
msg = "ERROR: tox config file (either pyproject.toml, tox.ini, setup.cfg) not found\n"
assert result.out == msg
assert result.err == msg
assert not result.out

def test_override_workdir(self, cmd, initproj):
baddir = "badworkdir-123"
Expand Down
24 changes: 13 additions & 11 deletions tests/unit/package/test_package_parallel.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@

import py

from tox.session.commands.run import sequential


def test_tox_parallel_build_safe(initproj, cmd, mock_venv, monkeypatch):
initproj(
Expand Down Expand Up @@ -45,31 +47,31 @@ def invoke_tox_in_thread(thread_name):

with monkeypatch.context() as m:

def build_package(config, report, session):
def build_package(config, session):
t1_build_started.set()
prev_run_test_env = tox.session.Session.runtestenv
t1_build_blocker.wait()
return prev_build_package(config, session)

def run_test_env(self, venv, redirect=False):
t2_build_finished.wait()
return prev_run_test_env(self, venv, redirect)
m.setattr(tox.package, "build_package", build_package)

session.runtestenv = partial(run_test_env, session)
prev_run_test_env = sequential.runtestenv

t1_build_blocker.wait()
return prev_build_package(config, report, session)
def run_test_env(venv, redirect=False):
t2_build_finished.wait()
return prev_run_test_env(venv, redirect)

m.setattr(tox.package, "build_package", build_package)
m.setattr(sequential, "runtestenv", run_test_env)

t1 = threading.Thread(target=invoke_tox_in_thread, args=("t1",))
t1.start()
t1_build_started.wait()

with monkeypatch.context() as m:

def build_package(config, report, session):
def build_package(config, session):
t2_build_started.set()
try:
return prev_build_package(config, report, session)
return prev_build_package(config, session)
finally:
t2_build_finished.set()

Expand Down
27 changes: 14 additions & 13 deletions tests/unit/session/test_session.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,60 +8,61 @@

import tox
from tox.exception import MissingDependency, MissingDirectory
from tox.package import resolve_package


def test__resolve_pkg_missing_directory(tmpdir, mocksession):
def test_resolve_pkg_missing_directory(tmpdir, mocksession):
distshare = tmpdir.join("distshare")
spec = distshare.join("pkg123-*")
with pytest.raises(MissingDirectory):
mocksession._resolve_package(spec)
resolve_package(spec)


def test__resolve_pkg_missing_directory_in_distshare(tmpdir, mocksession):
def test_resolve_pkg_missing_directory_in_distshare(tmpdir, mocksession):
distshare = tmpdir.join("distshare")
spec = distshare.join("pkg123-*")
distshare.ensure(dir=1)
with pytest.raises(MissingDependency):
mocksession._resolve_package(spec)
resolve_package(spec)


def test__resolve_pkg_multiple_valid_versions(tmpdir, mocksession):
def test_resolve_pkg_multiple_valid_versions(tmpdir, mocksession):
distshare = tmpdir.join("distshare")
distshare.ensure("pkg123-1.3.5.zip")
p = distshare.ensure("pkg123-1.4.5.zip")
result = mocksession._resolve_package(distshare.join("pkg123-*"))
result = resolve_package(distshare.join("pkg123-*"))
assert result == p
mocksession.report.expect("info", "determin*pkg123*")


def test__resolve_pkg_with_invalid_version(tmpdir, mocksession):
def test_resolve_pkg_with_invalid_version(tmpdir, mocksession):
distshare = tmpdir.join("distshare")

distshare.ensure("pkg123-1.something_bad.zip")
distshare.ensure("pkg123-1.3.5.zip")
p = distshare.ensure("pkg123-1.4.5.zip")

result = mocksession._resolve_package(distshare.join("pkg123-*"))
result = resolve_package(distshare.join("pkg123-*"))
mocksession.report.expect("warning", "*1.something_bad*")
assert result == p


def test__resolve_pkg_with_alpha_version(tmpdir, mocksession):
def test_resolve_pkg_with_alpha_version(tmpdir, mocksession):
distshare = tmpdir.join("distshare")
distshare.ensure("pkg123-1.3.5.zip")
distshare.ensure("pkg123-1.4.5a1.tar.gz")
p = distshare.ensure("pkg123-1.4.5.zip")
result = mocksession._resolve_package(distshare.join("pkg123-*"))
result = resolve_package(distshare.join("pkg123-*"))
assert result == p


def test__resolve_pkg_doubledash(tmpdir, mocksession):
def test_resolve_pkg_doubledash(tmpdir, mocksession):
distshare = tmpdir.join("distshare")
p = distshare.ensure("pkg-mine-1.3.0.zip")
res = mocksession._resolve_package(distshare.join("pkg-mine*"))
res = resolve_package(distshare.join("pkg-mine*"))
assert res == p
distshare.ensure("pkg-mine-1.3.0a1.zip")
res = mocksession._resolve_package(distshare.join("pkg-mine*"))
res = resolve_package(distshare.join("pkg-mine*"))
assert res == p


Expand Down
2 changes: 1 addition & 1 deletion tests/unit/test_venv.py
Original file line number Diff line number Diff line change
Expand Up @@ -539,7 +539,7 @@ def test_matchingdependencies_latest(self, newconfig, mocksession):

def test_python_recreation(self, tmpdir, newconfig, mocksession):
pkg = tmpdir.ensure("package.tar.gz")
config = newconfig([], "")
config = newconfig(["-v"], "")
mocksession.new_config(config)
venv = mocksession.getvenv("python")
create_config = venv._getliveconfig()
Expand Down

0 comments on commit e656e49

Please sign in to comment.