From 4ff5d3d4c3dade3932523d9ad6e6a84ff9ad172c Mon Sep 17 00:00:00 2001 From: Matthew Sherborne Date: Thu, 18 Apr 2013 15:32:47 +1000 Subject: Adds tests to xenapi.vm_utils's 'lookup' method Change-Id: I140f091b50c3e4076d3f4812cae00e37f120a277 --- nova/tests/virt/xenapi/test_vm_utils.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/nova/tests/virt/xenapi/test_vm_utils.py b/nova/tests/virt/xenapi/test_vm_utils.py index d42ed7629..a021bc734 100644 --- a/nova/tests/virt/xenapi/test_vm_utils.py +++ b/nova/tests/virt/xenapi/test_vm_utils.py @@ -20,6 +20,7 @@ import contextlib import fixtures import mox +from nova import exception from nova import test from nova import utils from nova.virt.xenapi import vm_utils @@ -34,6 +35,35 @@ def _fake_noop(*args, **kwargs): return +class LookupTestCase(test.TestCase): + + def setUp(self): + super(LookupTestCase, self).setUp() + self.session = self.mox.CreateMockAnything('Fake Session') + self.name_label = 'my_vm' + + def _do_mock(self, result): + self.session.call_xenapi( + "VM.get_by_name_label", self.name_label).AndReturn(result) + self.mox.ReplayAll() + + def test_normal(self): + self._do_mock(['x']) + result = vm_utils.lookup(self.session, self.name_label) + self.assertEqual('x', result) + + def test_no_result(self): + self._do_mock([]) + result = vm_utils.lookup(self.session, self.name_label) + self.assertEqual(None, result) + + def test_too_many(self): + self._do_mock(['a', 'b']) + self.assertRaises(exception.InstanceExists, + vm_utils.lookup, + self.session, self.name_label) + + class GenerateConfigDriveTestCase(test.TestCase): def test_no_admin_pass(self): # This is here to avoid masking errors, it shouldn't be used normally -- cgit