bisect-kit: refactoring session dir
Hide session_base variable from users and unify how session_dir is
determined.
This CL also avoid touch default session folder during unit test.
BUG=None
TEST=unittest
Change-Id: If722a185681d177a646cdaf6ee3b52e299f987eb
diff --git a/bisect_kit/testing.py b/bisect_kit/testing.py
index bb60cb8..21e7832 100644
--- a/bisect_kit/testing.py
+++ b/bisect_kit/testing.py
@@ -5,10 +5,15 @@
"""Common functions for testing"""
from __future__ import print_function
-import os
import contextlib
+import os
+import shutil
+import tempfile
+
from unittest import mock
+from bisect_kit import common
+
def get_testdata_path(filename=None):
"""Gets path to test data
@@ -43,3 +48,19 @@
data = f.read()
with mock.patch.object(module, name, return_value=data):
yield
+
+
+class mock_session_base(contextlib.ContextDecorator):
+ """Context decorator to mock session base and clean up."""
+
+ def __init__(self):
+ self.session_base_bak = None
+ self.session_base = tempfile.mkdtemp()
+
+ def __enter__(self):
+ self.session_base_bak = common.DEFAULT_SESSION_BASE
+ common.DEFAULT_SESSION_BASE = self.session_base
+
+ def __exit__(self, *exc):
+ common.DEFAULT_SESSION_BASE = self.session_base_bak
+ shutil.rmtree(self.session_base)