Pytest: fix local params overriden (#30312)

* fix local params being overriden

* just reset prefix after completion
pull/30330/head
Justin Newberry 2 years ago committed by GitHub
parent 1802de3f01
commit 412f4cbc1a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      common/prefix.py
  2. 5
      conftest.py

@ -14,6 +14,7 @@ class OpenpilotPrefix:
self.clean_dirs_on_exit = clean_dirs_on_exit self.clean_dirs_on_exit = clean_dirs_on_exit
def __enter__(self): def __enter__(self):
self.original_prefix = os.environ.get('OPENPILOT_PREFIX', None)
os.environ['OPENPILOT_PREFIX'] = self.prefix os.environ['OPENPILOT_PREFIX'] = self.prefix
try: try:
os.mkdir(self.msgq_path) os.mkdir(self.msgq_path)
@ -28,6 +29,8 @@ class OpenpilotPrefix:
self.clean_dirs() self.clean_dirs()
try: try:
del os.environ['OPENPILOT_PREFIX'] del os.environ['OPENPILOT_PREFIX']
if self.original_prefix is not None:
os.environ['OPENPILOT_PREFIX'] = self.original_prefix
except KeyError: except KeyError:
pass pass
return False return False

@ -10,8 +10,13 @@ def openpilot_function_fixture():
# setup a clean environment for each test # setup a clean environment for each test
with OpenpilotPrefix(): with OpenpilotPrefix():
prefix = os.environ["OPENPILOT_PREFIX"]
yield yield
# ensure the test doesn't change the prefix
assert "OPENPILOT_PREFIX" in os.environ and prefix == os.environ["OPENPILOT_PREFIX"]
os.environ.clear() os.environ.clear()
os.environ.update(starting_env) os.environ.update(starting_env)

Loading…
Cancel
Save