fixtures#

Collection of pytest fixtures used in conda tests.

Functions#

suppress_resource_warning()

Suppress Unclosed Socket Warning

tmpdir(tmpdir, request)

clear_subdir_cache()

disable_channel_notices()

Fixture that will set "context.number_channel_notices" to 0 and then set

reset_conda_context()

Resets the context object after each test function is run.

temp_package_cache(tmp_path_factory)

Used to isolate package or index cache from other tests.

parametrized_solver_fixture(...)

A parameterized fixture that sets the solver backend to (1) libmamba

solver_classic(→ Iterable[Literal[classic]])

solver_libmamba(→ Iterable[Literal[libmamba]])

_solver_helper(→ Iterable[Solver])

Attributes#

Solver

suppress_resource_warning()#

Suppress Unclosed Socket Warning

It seems urllib3 keeps a socket open to avoid costly recreation costs.

xref: kennethreitz/requests#1882

tmpdir(tmpdir, request)#
clear_subdir_cache()#
disable_channel_notices()#

Fixture that will set "context.number_channel_notices" to 0 and then set it back to its original value.

This is also a good example of how to override values in the context object.

reset_conda_context()#

Resets the context object after each test function is run.

temp_package_cache(tmp_path_factory)#

Used to isolate package or index cache from other tests.

parametrized_solver_fixture(request: pytest.FixtureRequest, monkeypatch: pytest.MonkeyPatch) Iterable[Literal[libmamba, classic]]#

A parameterized fixture that sets the solver backend to (1) libmamba and (2) classic for each test. It's using autouse=True, so only import it in modules that actually need it.

Note that skips and xfails need to be done _inside_ the test body. Decorators can't be used because they are evaluated before the fixture has done its work!

So, instead of:

@pytest.mark.skipif(context.solver == "libmamba", reason="...") def test_foo():

...

Do:

def test_foo():
if context.solver == "libmamba":

pytest.skip("...")

...

solver_classic(request: pytest.FixtureRequest, monkeypatch: pytest.MonkeyPatch) Iterable[Literal[classic]]#
solver_libmamba(request: pytest.FixtureRequest, monkeypatch: pytest.MonkeyPatch) Iterable[Literal[libmamba]]#
Solver#
_solver_helper(request: pytest.FixtureRequest, monkeypatch: pytest.MonkeyPatch, solver: Solver) Iterable[Solver]#