diff options
author | bst-marge-bot <marge-bot@buildstream.build> | 2019-08-30 08:15:28 +0000 |
---|---|---|
committer | bst-marge-bot <marge-bot@buildstream.build> | 2019-08-30 08:15:28 +0000 |
commit | 67f1dff40ca96d983fee631c59594797d20366d1 (patch) | |
tree | 2bcc69b230cc16793175e727e0071e90ca015178 | |
parent | 8adb55af7871b8e058ad52fe75a4bc2c6fa01d9c (diff) | |
parent | 23e79a03d06fdf2aca55ba6f800cced8b400dfbe (diff) | |
download | buildstream-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.cfg | 1 | ||||
-rw-r--r-- | tests/testutils/repo/bzr.py | 18 | ||||
-rw-r--r-- | tests/testutils/repo/git.py | 5 | ||||
-rw-r--r-- | tox.ini | 1 |
4 files changed, 19 insertions, 6 deletions
@@ -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) @@ -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 |