Show conda environment in virtualenv segment.
Either conda or virtualenv checks can be disabled using the new ignore_venv or ignore_conda options to this segment.
This commit is contained in:
parent
f8c45e9566
commit
56aa31a66d
|
@ -19,9 +19,20 @@ def environment(pl, segment_info, variable=None):
|
||||||
|
|
||||||
|
|
||||||
@requires_segment_info
|
@requires_segment_info
|
||||||
def virtualenv(pl, segment_info):
|
def virtualenv(pl, segment_info, ignore_venv=False, ignore_conda=False):
|
||||||
'''Return the name of the current Python virtualenv.'''
|
'''Return the name of the current Python or conda virtualenv.
|
||||||
return os.path.basename(segment_info['environ'].get('VIRTUAL_ENV', '')) or None
|
|
||||||
|
:param bool ignore_venv:
|
||||||
|
Whether to ignore virtual environments. Default is False.
|
||||||
|
:param bool ignore_conda:
|
||||||
|
Whether to ignore conda environments. Default is False.
|
||||||
|
'''
|
||||||
|
return (
|
||||||
|
(not ignore_venv and
|
||||||
|
os.path.basename(segment_info['environ'].get('VIRTUAL_ENV', ''))) or
|
||||||
|
(not ignore_conda and
|
||||||
|
segment_info['environ'].get('CONDA_DEFAULT_ENV', '')) or
|
||||||
|
None)
|
||||||
|
|
||||||
|
|
||||||
@requires_segment_info
|
@requires_segment_info
|
||||||
|
|
|
@ -625,8 +625,39 @@ class TestEnv(TestCommon):
|
||||||
pl = Pl()
|
pl = Pl()
|
||||||
with replace_env('VIRTUAL_ENV', '/abc/def/ghi') as segment_info:
|
with replace_env('VIRTUAL_ENV', '/abc/def/ghi') as segment_info:
|
||||||
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info), 'ghi')
|
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info), 'ghi')
|
||||||
|
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info, ignore_conda=True), 'ghi')
|
||||||
|
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info, ignore_venv=True), None)
|
||||||
|
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info, ignore_venv=True, ignore_conda=True), None)
|
||||||
|
|
||||||
segment_info['environ'].pop('VIRTUAL_ENV')
|
segment_info['environ'].pop('VIRTUAL_ENV')
|
||||||
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info), None)
|
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info), None)
|
||||||
|
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info, ignore_conda=True), None)
|
||||||
|
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info, ignore_venv=True), None)
|
||||||
|
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info, ignore_venv=True, ignore_conda=True), None)
|
||||||
|
|
||||||
|
with replace_env('CONDA_DEFAULT_ENV', 'foo') as segment_info:
|
||||||
|
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info), 'foo')
|
||||||
|
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info, ignore_conda=True), None)
|
||||||
|
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info, ignore_venv=True), 'foo')
|
||||||
|
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info, ignore_venv=True, ignore_conda=True), None)
|
||||||
|
|
||||||
|
segment_info['environ'].pop('CONDA_DEFAULT_ENV')
|
||||||
|
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info), None)
|
||||||
|
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info, ignore_conda=True), None)
|
||||||
|
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info, ignore_venv=True), None)
|
||||||
|
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info, ignore_venv=True, ignore_conda=True), None)
|
||||||
|
|
||||||
|
with replace_env('CONDA_DEFAULT_ENV', 'foo', environ={'VIRTUAL_ENV': '/sbc/def/ghi'}) as segment_info:
|
||||||
|
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info), 'ghi')
|
||||||
|
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info, ignore_conda=True), 'ghi')
|
||||||
|
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info, ignore_venv=True), 'foo')
|
||||||
|
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info, ignore_venv=True, ignore_conda=True), None)
|
||||||
|
|
||||||
|
segment_info['environ'].pop('CONDA_DEFAULT_ENV')
|
||||||
|
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info), 'ghi')
|
||||||
|
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info, ignore_conda=True), 'ghi')
|
||||||
|
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info, ignore_venv=True), None)
|
||||||
|
self.assertEqual(self.module.virtualenv(pl=pl, segment_info=segment_info, ignore_venv=True, ignore_conda=True), None)
|
||||||
|
|
||||||
def test_environment(self):
|
def test_environment(self):
|
||||||
pl = Pl()
|
pl = Pl()
|
||||||
|
|
Loading…
Reference in New Issue