From: Loic Dachary Date: Tue, 19 Jan 2016 11:33:05 +0000 (+0700) Subject: tests: workaround ceph-disk global side effects X-Git-Tag: v10.0.4~46^2~12 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c9e3e8a5dfaaf4bac3fb85806e87e4ef6599d7a8;p=ceph.git tests: workaround ceph-disk global side effects Because some variables are global in ceph-disk, tests that modify them interact with each other in non-predictable ways. This will go away eventually but requires a significant refactor. Workaround by running one py.test per test file. Signed-off-by: Loic Dachary --- diff --git a/src/ceph-disk/tests/test_main.py b/src/ceph-disk/tests/test_main.py index 2b7668fffe4..1ea643726a8 100644 --- a/src/ceph-disk/tests/test_main.py +++ b/src/ceph-disk/tests/test_main.py @@ -1,7 +1,9 @@ from mock import patch, DEFAULT import os import io +import shutil import subprocess +import tempfile import unittest from ceph_disk import main @@ -641,6 +643,8 @@ class TestCephDiskDeactivateAndDestroy(unittest.TestCase): @patch('__builtin__.open') def test_main_deactivate(self, mock_open): + data = tempfile.mkdtemp() + main.setup_statedir(data) DMCRYPT_LUKS_OSD_UUID = '4fbd7e29-9d25-41b8-afd0-35865ceff05d' part_uuid = '0ce28a16-6d5d-11e5-aec3-fa163e5c167b' disk = 'sdX' @@ -659,7 +663,6 @@ class TestCephDiskDeactivateAndDestroy(unittest.TestCase): main, list_devices=lambda: fake_device, ): - main.setup_statedir(main.STATEDIR) self.assertRaises(Exception, main.main_deactivate, args) # @@ -684,7 +687,6 @@ class TestCephDiskDeactivateAndDestroy(unittest.TestCase): _check_osd_status=lambda cluster, osd_id: 2, _mark_osd_out=lambda cluster, osd_id: True ): - main.setup_statedir(main.STATEDIR) main.main_deactivate(args) # @@ -706,7 +708,6 @@ class TestCephDiskDeactivateAndDestroy(unittest.TestCase): list_devices=lambda: fake_device, _check_osd_status=lambda cluster, osd_id: 0, ): - main.setup_statedir(main.STATEDIR) main.main_deactivate(args) # @@ -743,7 +744,6 @@ class TestCephDiskDeactivateAndDestroy(unittest.TestCase): unmount=lambda path: True, dmcrypt_unmap=lambda part_uuid: True, ): - main.setup_statedir(main.STATEDIR) main.main_deactivate(args) # @@ -778,8 +778,8 @@ class TestCephDiskDeactivateAndDestroy(unittest.TestCase): unmount=lambda path: True, dmcrypt_unmap=lambda part_uuid: True, ): - main.setup_statedir(main.STATEDIR) main.main_deactivate(args) + shutil.rmtree(data) def test_mark_out_out(self): def mark_osd_out_fail(osd_id): diff --git a/src/ceph-disk/tox.ini b/src/ceph-disk/tox.ini index 84e31689c91..4716b0e9c5e 100644 --- a/src/ceph-disk/tox.ini +++ b/src/ceph-disk/tox.ini @@ -14,7 +14,8 @@ deps = -r{toxinidir}/test-requirements.txt ../ceph-detect-init -commands = coverage run --source=ceph_disk {envbindir}/py.test -v tests +commands = coverage run --append --source=ceph_disk {envbindir}/py.test -v tests/test_main.py + coverage run --append --source=ceph_disk {envbindir}/py.test -v tests/test_prepare.py bash -x tests/ceph-disk.sh coverage report --omit=*test*,*tox* --show-missing