summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbst-marge-bot <marge-bot@buildstream.build>2019-08-30 08:15:28 +0000
committerbst-marge-bot <marge-bot@buildstream.build>2019-08-30 08:15:28 +0000
commit67f1dff40ca96d983fee631c59594797d20366d1 (patch)
tree2bcc69b230cc16793175e727e0071e90ca015178
parent8adb55af7871b8e058ad52fe75a4bc2c6fa01d9c (diff)
parent23e79a03d06fdf2aca55ba6f800cced8b400dfbe (diff)
downloadbuildstream-67f1dff40ca96d983fee631c59594797d20366d1.tar.gz
Merge branch 'juerg/tox-home' into 'master'
tests: Set HOME environment variable and work around bzr race condition See merge request BuildStream/buildstream!1571
-rw-r--r--setup.cfg1
-rw-r--r--tests/testutils/repo/bzr.py18
-rw-r--r--tests/testutils/repo/git.py5
-rw-r--r--tox.ini1
4 files changed, 19 insertions, 6 deletions
diff --git a/setup.cfg b/setup.cfg
index cd798bc03..06dcd8fd4 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -16,6 +16,7 @@ norecursedirs = tests/integration/project integration-cache tmp __pycache__ .egg
python_files = tests/*/*.py
env =
D:BST_TEST_SUITE=True
+ D:HOME=./tmp
D:XDG_CACHE_HOME=./tmp/cache
D:XDG_CONFIG_HOME=./tmp/config
D:XDG_DATA_HOME=./tmp/share
diff --git a/tests/testutils/repo/bzr.py b/tests/testutils/repo/bzr.py
index 5b64ba042..074712af1 100644
--- a/tests/testutils/repo/bzr.py
+++ b/tests/testutils/repo/bzr.py
@@ -14,15 +14,23 @@ class Bzr(Repo):
super().__init__(directory, subdir)
self.bzr = BZR
+ self.env = os.environ.copy()
+ self.env.update(BZR_ENV)
+
def create(self, directory):
+ # Work around race condition in bzr's creation of ~/.bazaar in
+ # ensure_config_dir_exists() when running tests in parallel.
+ bazaar_config_dir = os.path.expanduser('~/.bazaar')
+ os.makedirs(bazaar_config_dir, exist_ok=True)
+
branch_dir = os.path.join(self.repo, 'trunk')
- subprocess.call([self.bzr, 'init-repo', self.repo], env=BZR_ENV)
- subprocess.call([self.bzr, 'init', branch_dir], env=BZR_ENV)
+ subprocess.call([self.bzr, 'init-repo', self.repo], env=self.env)
+ subprocess.call([self.bzr, 'init', branch_dir], env=self.env)
self.copy_directory(directory, branch_dir)
- subprocess.call([self.bzr, 'add', '.'], env=BZR_ENV, cwd=branch_dir)
+ subprocess.call([self.bzr, 'add', '.'], env=self.env, cwd=branch_dir)
subprocess.call([self.bzr, 'commit', '--message="Initial commit"'],
- env=BZR_ENV, cwd=branch_dir)
+ env=self.env, cwd=branch_dir)
return self.latest_commit()
@@ -42,4 +50,4 @@ class Bzr(Repo):
self.bzr, 'version-info',
'--custom', '--template={revno}',
os.path.join(self.repo, 'trunk')
- ], env=BZR_ENV, universal_newlines=True).strip()
+ ], env=self.env, universal_newlines=True).strip()
diff --git a/tests/testutils/repo/git.py b/tests/testutils/repo/git.py
index ba1590273..46694fcf2 100644
--- a/tests/testutils/repo/git.py
+++ b/tests/testutils/repo/git.py
@@ -18,11 +18,14 @@ class Git(Repo):
super().__init__(directory, subdir)
+ self.env = os.environ.copy()
+ self.env.update(GIT_ENV)
+
def _run_git(self, *args, **kwargs):
argv = [GIT]
argv.extend(args)
if 'env' not in kwargs:
- kwargs['env'] = dict(GIT_ENV, PWD=self.repo)
+ kwargs['env'] = dict(self.env, PWD=self.repo)
kwargs.setdefault('cwd', self.repo)
kwargs.setdefault('check', True)
return subprocess.run(argv, **kwargs)
diff --git a/tox.ini b/tox.ini
index c6bcd78ad..39381dc02 100644
--- a/tox.ini
+++ b/tox.ini
@@ -55,6 +55,7 @@ passenv =
#
setenv =
py{35,36,37}: COVERAGE_FILE = {envtmpdir}/.coverage
+ py{35,36,37}: HOME = {envtmpdir}
py{35,36,37}: XDG_CACHE_HOME = {envtmpdir}/cache
py{35,36,37}: XDG_CONFIG_HOME = {envtmpdir}/config
py{35,36,37}: XDG_DATA_HOME = {envtmpdir}/share