@@ -561,6 +561,39 @@ def test_envbinddir_path(self, newmocksession, monkeypatch):
561
561
assert 'PIP_REQUIRE_VIRTUALENV' not in os .environ
562
562
assert '__PYVENV_LAUNCHER__' not in os .environ
563
563
564
+ def test_pythonpath_usage (self , newmocksession , monkeypatch ):
565
+ monkeypatch .setenv ("PYTHONPATH" , "/my/awesome/library" )
566
+ mocksession = newmocksession ([], """
567
+ [testenv:python]
568
+ commands=abc
569
+ """ )
570
+ venv = mocksession .getenv ("python" )
571
+ action = mocksession .newaction (venv , "getenv" )
572
+ venv .run_install_command (['qwe' ], action = action )
573
+ assert 'PYTHONPATH' not in os .environ
574
+ mocksession .report .expect ("warning" , "*Discarding $PYTHONPATH from environment*" )
575
+
576
+ l = mocksession ._pcalls
577
+ assert len (l ) == 1
578
+ assert 'PYTHONPATH' not in l [0 ].env
579
+
580
+ # passenv = PYTHONPATH allows PYTHONPATH to stay in environment
581
+ monkeypatch .setenv ("PYTHONPATH" , "/my/awesome/library" )
582
+ mocksession = newmocksession ([], """
583
+ [testenv:python]
584
+ commands=abc
585
+ passenv = PYTHONPATH
586
+ """ )
587
+ venv = mocksession .getenv ("python" )
588
+ action = mocksession .newaction (venv , "getenv" )
589
+ venv .run_install_command (['qwe' ], action = action )
590
+ assert 'PYTHONPATH' in os .environ
591
+ mocksession .report .not_expect ("warning" , "*Discarding $PYTHONPATH from environment*" )
592
+
593
+ l = mocksession ._pcalls
594
+ assert len (l ) == 2
595
+ assert l [1 ].env ['PYTHONPATH' ] == '/my/awesome/library'
596
+
564
597
565
598
def test_env_variables_added_to_pcall (tmpdir , mocksession , newconfig , monkeypatch ):
566
599
pkg = tmpdir .ensure ("package.tar.gz" )
@@ -572,11 +605,11 @@ def test_env_variables_added_to_pcall(tmpdir, mocksession, newconfig, monkeypatc
572
605
passenv = x123
573
606
setenv =
574
607
ENV_VAR = value
608
+ PYTHONPATH = value
575
609
""" )
576
610
mocksession ._clearmocks ()
577
611
578
612
venv = VirtualEnv (config .envconfigs ['python' ], session = mocksession )
579
- # import pdb; pdb.set_trace()
580
613
mocksession .installpkg (venv , pkg )
581
614
venv .test ()
582
615
@@ -589,13 +622,18 @@ def test_env_variables_added_to_pcall(tmpdir, mocksession, newconfig, monkeypatc
589
622
assert env ['ENV_VAR' ] == 'value'
590
623
assert env ['VIRTUAL_ENV' ] == str (venv .path )
591
624
assert env ['X123' ] == "123"
625
+ assert 'PYTHONPATH' in env
626
+ assert env ['PYTHONPATH' ] == 'value'
592
627
# all env variables are passed for installation
593
628
assert l [0 ].env ["YY" ] == "456"
594
629
assert "YY" not in l [1 ].env
595
630
596
631
assert set (["ENV_VAR" , "VIRTUAL_ENV" , "PYTHONHASHSEED" , "X123" , "PATH" ])\
597
632
.issubset (l [1 ].env )
598
633
634
+ # setenv does not trigger PYTHONPATH warnings
635
+ mocksession .report .not_expect ("warning" , "*Discarding $PYTHONPATH from environment*" )
636
+
599
637
# for e in os.environ:
600
638
# assert e in env
601
639
0 commit comments