From 220923f0844b0e9ed4f11ac9ec9447be5e9af9b7 Mon Sep 17 00:00:00 2001 From: Caleb Hattingh Date: Wed, 14 Aug 2019 17:50:06 +1000 Subject: [PATCH] Include path as a kwarg on activate and deactivate events --- tests/test_vox.py | 8 ++++---- xontrib/voxapi.py | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/test_vox.py b/tests/test_vox.py index b74abfbac..1f9bf0f51 100644 --- a/tests/test_vox.py +++ b/tests/test_vox.py @@ -95,12 +95,12 @@ def test_activate_non_vox_venv(xonsh_builtins, tmpdir): @xonsh_builtins.events.vox_on_activate def activate(name, **_): nonlocal last_event - last_event = "activate", name + last_event = "activate", name, _['path'] @xonsh_builtins.events.vox_on_deactivate def deactivate(name, **_): nonlocal last_event - last_event = "deactivate", name + last_event = "deactivate", name, _['path'] with tmpdir.as_cwd(): venv_dirname = 'venv' @@ -114,12 +114,12 @@ def test_activate_non_vox_venv(xonsh_builtins, tmpdir): assert env["PATH"][0] == vxv.bin assert os.path.isabs(vxv.env) assert env["VIRTUAL_ENV"] == vxv.env - assert last_event == ("activate", venv_dirname) + assert last_event == ("activate", venv_dirname, str(pathlib.Path(tmpdir) / 'venv')) vox.deactivate() assert not env["PATH"] assert "VIRTUAL_ENV" not in env - assert last_event == ("deactivate", tmpdir.join(venv_dirname)) + assert last_event == ("deactivate", tmpdir.join(venv_dirname), str(pathlib.Path(tmpdir) / 'venv')) @skip_if_on_msys diff --git a/xontrib/voxapi.py b/xontrib/voxapi.py index 414a6c7fc..d7d253ab5 100644 --- a/xontrib/voxapi.py +++ b/xontrib/voxapi.py @@ -363,7 +363,7 @@ class Vox(collections.abc.Mapping): if "PYTHONHOME" in env: type(self).oldvars["PYTHONHOME"] = env.pop("PYTHONHOME") - events.vox_on_activate.fire(name=name) + events.vox_on_activate.fire(name=name, path=ve.env) def deactivate(self): """ @@ -382,7 +382,7 @@ class Vox(collections.abc.Mapping): env.pop("VIRTUAL_ENV") - events.vox_on_deactivate.fire(name=env_name) + events.vox_on_deactivate.fire(name=env_name, path=self[env_name].env) return env_name def __delitem__(self, name):