]> arthur.barton.de Git - bup.git/blob - conftest.py
Add pytest context manager to save/restore test environment
[bup.git] / conftest.py
1
2 from os.path import dirname, realpath
3 from time import tzset
4 import os
5 import pytest
6 import sys
7
8 sys.path[:0] = ['lib']
9
10 from bup import helpers
11 from bup.compat import environ, fsencode
12
13
14 _bup_src_top = realpath(dirname(fsencode(__file__)))
15
16 @pytest.fixture(autouse=True)
17 def ephemeral_env_changes():
18     orig_env = environ.copy()
19     yield None
20     for k, orig_v in orig_env.items():
21         v = environ.get(k)
22         if v is not orig_v:
23             environ[k] = orig_v
24             if k == b'TZ':
25                 tzset()
26     for k in environ.keys():
27         if k not in orig_env:
28             del environ[k]
29             if k == b'TZ':
30                 tzset()
31     os.chdir(_bup_src_top)