1234567891011121314151617181920212223242526272829303132 |
- import os
- import shutil
- import pytest
- @pytest.fixture(scope="function")
- def testing_workdir(tmpdir, request):
- """Create a workdir in a safe temporary folder; cd into dir above before test, cd out after
- :param tmpdir: py.test fixture, will be injected
- :param request: py.test fixture-related, will be injected (see pytest docs)
- """
- saved_path = os.getcwd()
- tmpdir.chdir()
- # temporary folder for profiling output, if any
- tmpdir.mkdir("prof")
- def return_to_saved_path():
- if os.path.isdir(os.path.join(saved_path, "prof")):
- profdir = tmpdir.join("prof")
- files = profdir.listdir("*.prof") if profdir.isdir() else []
- for f in files:
- shutil.copy(str(f), os.path.join(saved_path, "prof", f.basename))
- os.chdir(saved_path)
- request.addfinalizer(return_to_saved_path)
- return str(tmpdir)
|