From 3d46ecb7773c89d66a83d9ec7a4e5b2fcf3b9176 Mon Sep 17 00:00:00 2001 From: Zack Cerza Date: Thu, 9 Apr 2015 10:33:26 -0600 Subject: [PATCH] Add basic unit tests for Downburst Signed-off-by: Zack Cerza --- teuthology/test/test_provision.py | 103 ++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 teuthology/test/test_provision.py diff --git a/teuthology/test/test_provision.py b/teuthology/test/test_provision.py new file mode 100644 index 0000000000..3a6ff0c08f --- /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 -- 2.39.5