From: Zack Cerza Date: Thu, 9 Apr 2015 16:33:26 +0000 (-0600) Subject: Add basic unit tests for Downburst X-Git-Tag: 1.1.0~974^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F459%2Fhead;p=teuthology.git Add basic unit tests for Downburst Signed-off-by: Zack Cerza --- diff --git a/teuthology/test/test_provision.py b/teuthology/test/test_provision.py new file mode 100644 index 000000000..3a6ff0c08 --- /dev/null +++ b/teuthology/test/test_provision.py @@ -0,0 +1,103 @@ +from mock import Mock, MagicMock, patch + +from teuthology import provision + + +class TestDownburst(object): + def setup(self): + self.ctx = Mock() + self.ctx.os_type = 'rhel' + self.ctx.os_version = '7.0' + self.ctx.config = dict() + self.name = 'vpm999' + self.status = dict( + vm_host=dict(name='host999'), + is_vm=True, + ) + + def test_create_if_vm_success(self): + name = self.name + ctx = self.ctx + status = self.status + + dbrst = provision.Downburst(name, ctx.os_type, ctx.os_version, status) + dbrst.create = MagicMock(name='create') + dbrst.create.return_value = True + dbrst._run_create = MagicMock(name='_run_create') + dbrst._run_create.return_value = True + dbrst.build_config = MagicMock(name='build_config') + dbrst.remove_config = MagicMock(name='remove_config') + + result = provision.create_if_vm(ctx, name, dbrst) + assert result is True + + dbrst.create.assert_called_once() + dbrst._run_create.assert_called_once() + dbrst.build_config.assert_called_once() + dbrst.remove_config.assert_called_once() + + def test_destroy_if_vm_success(self): + name = self.name + ctx = self.ctx + status = self.status + + dbrst = provision.Downburst(name, ctx.os_type, ctx.os_version, status) + dbrst.destroy = MagicMock(name='destroy') + dbrst.destroy.return_value = True + + result = provision.destroy_if_vm(ctx, name, _downburst=dbrst) + assert result is True + + dbrst.destroy.assert_called_once() + + def test_destroy_if_vm_wrong_owner(self): + name = self.name + ctx = self.ctx + status = self.status + status['locked_by'] = 'user@a' + + dbrst = provision.Downburst(name, ctx.os_type, ctx.os_version, status) + dbrst.destroy = MagicMock(name='destroy') + dbrst.destroy.return_value = True + + result = provision.destroy_if_vm(ctx, name, user='user@b', + _downburst=dbrst) + assert result is False + + dbrst.destroy.assert_called_once() + + def test_destroy_if_vm_wrong_description(self): + name = self.name + ctx = self.ctx + status = self.status + status['description'] = 'desc_a' + + dbrst = provision.Downburst(name, ctx.os_type, ctx.os_version, status) + dbrst.destroy = MagicMock(name='destroy') + dbrst.destroy.return_value = True + + result = provision.destroy_if_vm(ctx, name, description='desc_b', + _downburst=dbrst) + assert result is False + + dbrst.destroy.assert_called_once() + + @patch('teuthology.provision.downburst_executable') + def test_create_fails_without_executable(self, m_exec): + name = self.name + ctx = self.ctx + status = self.status + m_exec.return_value = '' + dbrst = provision.Downburst(name, ctx.os_type, ctx.os_version, status) + result = dbrst.create() + assert result is False + + @patch('teuthology.provision.downburst_executable') + def test_destroy_fails_without_executable(self, m_exec): + name = self.name + ctx = self.ctx + status = self.status + m_exec.return_value = '' + dbrst = provision.Downburst(name, ctx.os_type, ctx.os_version, status) + result = dbrst.destroy() + assert result is False