import subprocess
def get_python_version():
proc = subprocess.Popen(['python', '-V'],
stdout = subprocess.PIPE,
stderr = subprocess.PIPE,
)
out,err = proc.communicate()
if proc.returncode:
raise Exception(f"Error exit {proc.returncode}")
#if err:
# raise Exception(f"Error {err}")
if out:
return out.decode('utf8') # In Python 3.8.6
else:
return err.decode('utf8') # In Python 2.7.18
import app
import os
def test_python():
out = app.get_python_version()
assert out == 'Python 3.8.6\n'
def test_in_path(monkeypatch):
monkeypatch.setenv('PATH', '/usr/bin')
out = app.get_python_version()
assert out == 'Python 2.7.18\n'
print(os.environ['PATH'])
print()
def test_other():
print(os.environ['PATH'])
print()
def test_keep(monkeypatch):
monkeypatch.setenv('PATH', '/usr/bin' + os.pathsep + os.environ['PATH'])
print(os.environ['PATH'])