Skip to content

Commit

Permalink
app-admin/salt: fix unit tests with sandbox with 2015.8.2
Browse files Browse the repository at this point in the history
Package-Manager: portage-2.2.25
  • Loading branch information
chutz committed Nov 20, 2015
1 parent dd60fee commit 87fb830
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 4 deletions.
56 changes: 56 additions & 0 deletions app-admin/salt/files/salt-2015.8.2-tmpdir.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
diff --git a/tests/unit/modules/qemu_nbd_test.py b/tests/unit/modules/qemu_nbd_test.py
index 615e6b5..fbd24aa 100644
--- a/tests/unit/modules/qemu_nbd_test.py
+++ b/tests/unit/modules/qemu_nbd_test.py
@@ -77,6 +77,7 @@ class QemuNbdTestCase(TestCase):
Test if it mount the named image via qemu-nbd
and return the mounted roots
'''
+ tmpdir = os.environ.get('TMPDIR', '/tmp')
mock = MagicMock(return_value=True)
with patch.dict(qemu_nbd.__salt__, {'cmd.run': mock}):
self.assertEqual(qemu_nbd.init('/srv/image.qcow2'), '')
@@ -89,7 +90,7 @@ class QemuNbdTestCase(TestCase):
'mount.mount': mock,
'cmd.retcode': MagicMock(side_effect=[1, 0])}):
self.assertDictEqual(qemu_nbd.init('/srv/image.qcow2'),
- {'/tmp/nbd/nbd0/nbd0': '/dev/nbd0'})
+ {os.path.join(tmpdir, 'nbd/nbd0/nbd0'): '/dev/nbd0'})

# 'clear' function tests: 1

diff --git a/tests/unit/states/archive_test.py b/tests/unit/states/archive_test.py
index 63e4a53..20b196f 100644
--- a/tests/unit/states/archive_test.py
+++ b/tests/unit/states/archive_test.py
@@ -26,7 +26,7 @@ from salt.ext.six.moves import zip # pylint: disable=import-error,redefined-bui

# Globals
archive.__salt__ = {}
-archive.__opts__ = {"cachedir": "/tmp", "test": False}
+archive.__opts__ = {"cachedir": os.environ.get('TMPDIR', "/tmp"), "test": False}
archive.__env__ = 'test'


@@ -75,7 +75,7 @@ class ArchiveTestCase(TestCase):
'cmd.run_all': mock_run}):
filename = os.path.join(
tmp_dir,
- 'files/test/_tmp_test_archive_.tar'
+ 'files/test/' + tempfile.gettempdir().replace('/', '_') + '_test_archive_.tar'
)
for test_opts, ret_opts in zip(test_tar_opts, ret_tar_opts):
ret = archive.extracted(tmp_dir,
diff --git a/tests/unit/utils/context_test.py b/tests/unit/utils/context_test.py
index 71e4330..d6f3f30 100644
--- a/tests/unit/utils/context_test.py
+++ b/tests/unit/utils/context_test.py
@@ -18,7 +18,7 @@ import salt.payload
import salt.utils

__context__ = {'a': 'b'}
-__opts__ = {'cachedir': '/tmp'}
+__opts__ = {'cachedir': os.environ.get('TMPDIR', '/tmp')}


@skipIf(NO_MOCK, NO_MOCK_REASON)
22 changes: 18 additions & 4 deletions app-admin/salt/salt-2015.8.2.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ PATCHES=(
"${FILESDIR}/${PN}-2015.5.5-auth-tests.patch"
"${FILESDIR}/${PN}-2015.5.5-cron-tests.patch"
"${FILESDIR}/${PN}-2015.5.5-remove-buggy-tests.patch"
"${FILESDIR}/${PN}-2015.8.2-tmpdir.patch"
)

python_prepare() {
Expand All @@ -110,11 +111,24 @@ python_install_all() {
}

python_test() {
local tempdir
# testsuite likes lots of files
ulimit -n 3072

# using ${T} for the TMPDIR makes some tests needs paths that exceed PATH_MAX
USE_SETUPTOOLS=1 SHELL="/bin/bash" TMPDIR="/tmp" \
${EPYTHON} tests/runtests.py \
--unit-tests --no-report --verbose || die "testing failed"
# ${T} is too long a path for the tests to work
tempdir="$(mktemp -dup /tmp salt-XXX)"
mkdir "${T}/$(basename "${tempdir}")"

(
cleanup() { rm -f "${tempdir}"; }
trap cleanup EXIT

addwrite "${tempdir}"
ln -s "$(realpath --relative-to=/tmp "${T}/$(basename "${tempdir}")")" "${tempdir}"

USE_SETUPTOOLS=1 SHELL="/bin/bash" TMPDIR="${tempdir}" \
${EPYTHON} tests/runtests.py \
--unit-tests --no-report --verbose

) || die "testing failed"
}

0 comments on commit 87fb830

Please sign in to comment.