summaryrefslogtreecommitdiffstats
path: root/tests/tests.py
diff options
context:
space:
mode:
authorMichael DeHaan <mdehaan@redhat.com>2006-05-08 18:34:42 -0400
committerJim Meyering <jim@meyering.net>2006-05-08 18:34:42 -0400
commit804a564ac24ff22cd46583fa98d8140a8b10f476 (patch)
treefadba99af49b4da97be1a5b7ab7af42cb780db39 /tests/tests.py
parentd4f71b4318fedf374844030095c6c8dd544f0e92 (diff)
downloadthird_party-cobbler-804a564ac24ff22cd46583fa98d8140a8b10f476.tar.gz
third_party-cobbler-804a564ac24ff22cd46583fa98d8140a8b10f476.tar.xz
third_party-cobbler-804a564ac24ff22cd46583fa98d8140a8b10f476.zip
Adding exception handling to remove the problem of propogating error codes all the way up the stack. Still not quite super-consistant, but getting there. Util functions still return true/false since they just ask questions, but API functions will throw errors to ensure they are being dealt with. Main CLI class needs to take advantage of this fact and become simpler. Tests are already modified to detect new exceptions with one exception :)
Diffstat (limited to 'tests/tests.py')
-rw-r--r--tests/tests.py56
1 files changed, 30 insertions, 26 deletions
diff --git a/tests/tests.py b/tests/tests.py
index 231c7f0..4df9d94 100644
--- a/tests/tests.py
+++ b/tests/tests.py
@@ -16,6 +16,7 @@ sys.path.append('./cobbler')
import api
import config
import utils
+from cexceptions import CobblerException
FAKE_INITRD="initrd-2.6.15-1.2054_FAKE.img"
FAKE_INITRD2="initrd-2.5.16-2.2055_FAKE.img"
@@ -42,7 +43,7 @@ class BootTest(unittest.TestCase):
self.fk_kernel2 = os.path.join(self.topdir, FAKE_KERNEL2)
self.fk_kernel3 = os.path.join(self.topdir, FAKE_KERNEL3)
- self.api = api.BootAPI()
+ self.api = api.BootAPI(True) # contain_exceptions
self.hostname = os.uname()[1]
create = [ self.fk_initrd, self.fk_initrd2, self.fk_initrd3,
self.fk_kernel, self.fk_kernel2, self.fk_kernel3 ]
@@ -79,8 +80,11 @@ class BootTest(unittest.TestCase):
class Utilities(BootTest):
def _expeq(self, expected, actual):
- self.failUnlessEqual(expected, actual,
- "Expected: %s; actual: %s" % (expected, actual))
+ try:
+ self.failUnlessEqual(expected, actual,
+ "Expected: %s; actual: %s" % (expected, actual))
+ except:
+ self.fail("exception during failUnlessEqual")
def test_kernel_scan(self):
self.assertTrue(utils.find_kernel(self.fk_kernel))
@@ -123,32 +127,32 @@ class Additions(BootTest):
def test_invalid_distro_non_referenced_kernel(self):
distro = self.api.new_distro()
self.assertTrue(distro.set_name("testdistro2"))
- self.assertFalse(distro.set_kernel("filedoesntexist"))
+ self.failUnlessRaises(CobblerException,distro.set_kernel,"filedoesntexist")
self.assertTrue(distro.set_initrd(self.fk_initrd))
- self.assertFalse(self.api.distros().add(distro))
+ self.failUnlessRaises(CobblerException, self.api.distros().add, distro)
self.assertFalse(self.api.distros().find("testdistro2"))
def test_invalid_distro_non_referenced_initrd(self):
distro = self.api.new_distro()
self.assertTrue(distro.set_name("testdistro3"))
self.assertTrue(distro.set_kernel(self.fk_kernel))
- self.assertFalse(distro.set_initrd("filedoesntexist"))
- self.assertFalse(self.api.distros().add(distro))
+ self.failUnlessRaises(CobblerException, distro.set_initrd, "filedoesntexist")
+ self.failUnlessRaises(CobblerException, self.api.distros().add, distro)
self.assertFalse(self.api.distros().find("testdistro3"))
def test_invalid_profile_non_referenced_distro(self):
profile = self.api.new_profile()
self.assertTrue(profile.set_name("testprofile11"))
- self.assertFalse(profile.set_distro("distrodoesntexist"))
+ self.failUnlessRaises(CobblerException, profile.set_distro, "distrodoesntexist")
self.assertTrue(profile.set_kickstart(FAKE_KICKSTART))
- self.assertFalse(self.api.profiles().add(profile))
+ self.failUnlessRaises(CobblerException, self.api.profiles().add, profile)
self.assertFalse(self.api.profiles().find("testprofile2"))
def test_invalid_profile_kickstart_not_url(self):
profile = self.api.new_profile()
self.assertTrue(profile.set_name("testprofile12"))
self.assertTrue(profile.set_distro("testdistro0"))
- self.assertFalse(profile.set_kickstart("kickstartdoesntexist"))
+ self.failUnlessRaises(CobblerException, profile.set_kickstart, "kickstartdoesntexist")
# since kickstarts are optional, you can still add it
self.assertTrue(self.api.profiles().add(profile))
self.assertTrue(self.api.profiles().find("testprofile12"))
@@ -165,21 +169,21 @@ class Additions(BootTest):
# no slashes or wildcards in name
self.assertTrue(profile.set_xen_name("xen"))
self.assertTrue(profile.set_xen_name("xen"))
- self.assertFalse(profile.set_xen_name("xen/foo"))
- self.assertFalse(profile.set_xen_name("xen*foo"))
- self.assertFalse(profile.set_xen_name("xen?foo"))
+ self.failUnlessRaises(CobblerException, profile.set_xen_name, "xen/foo")
+ self.failUnlessRaises(CobblerException, profile.set_xen_name, "xen*foo")
+ self.failUnlessRaises(CobblerException, profile.set_xen_name, "xen?foo")
# sizes must be integers
self.assertTrue(profile.set_xen_file_size("54321"))
- self.assertFalse(profile.set_xen_file_size("huge"))
- self.assertFalse(profile.set_xen_file_size("54321.23"))
+ self.failUnlessRaises(CobblerException, profile.set_xen_file_size, "huge")
+ self.failUnlessRaises(CobblerException, profile.set_xen_file_size, "54321.23")
# macs must be properly formatted
self.assertTrue(profile.set_xen_mac("AA:BB:CC:DD:EE:FF"))
- self.assertFalse(profile.set_xen_mac("AA-BB-CC-DD-EE-FF"))
+ self.failUnlessRaises(CobblerException, profile.set_xen_mac, "AA-BB-CC-DD-EE-FF")
# paravirt must be 'true' or 'false'
self.assertFalse(profile.set_xen_mac("cowbell"))
self.assertTrue(profile.set_xen_paravirt('true'))
self.assertTrue(profile.set_xen_paravirt('fALsE'))
- self.assertFalse(profile.set_xen_paravirt('sputnik'))
+ self.failUnlessRaises(CobblerException, profile.set_xen_paravirt, 'sputnik')
self.assertFalse(profile.set_xen_paravirt(11))
# each item should be 'true' now, so we can add it
# since the failed items don't affect status
@@ -188,9 +192,9 @@ class Additions(BootTest):
def test_invalid_system_bad_name_host(self):
system = self.api.new_system()
name = "hostnamewontresolveanyway"
- self.assertFalse(system.set_name(name))
+ self.failUnlessRaises(CobblerException, system.set_name, name)
self.assertTrue(system.set_profile("testprofile0"))
- self.assertFalse(self.api.systems().add(system))
+ self.failUnlessRaises(CobblerException, self.api.systems().add, system)
self.assertFalse(self.api.systems().find(name))
def test_system_name_is_a_MAC(self):
@@ -212,27 +216,27 @@ class Additions(BootTest):
def test_invalid_system_non_referenced_profile(self):
system = self.api.new_system()
self.assertTrue(system.set_name(self.hostname))
- self.assertFalse(system.set_profile("profiledoesntexist"))
- self.assertFalse(self.api.systems().add(system))
+ self.failUnlessRaises(CobblerException, system.set_profile, "profiledoesntexist")
+ self.failUnlessRaises(CobblerException, self.api.systems().add, system)
class Deletions(BootTest):
def test_invalid_delete_profile_doesnt_exist(self):
- self.assertFalse(self.api.profiles().remove("doesnotexist"))
+ self.failUnlessRaises(CobblerException, self.api.profiles().remove, "doesnotexist")
def test_invalid_delete_profile_would_orphan_systems(self):
self.make_basic_config()
- self.assertFalse(self.api.profiles().remove("testprofile0"))
+ self.failUnlessRaises(CobblerException, self.api.profiles().remove, "testprofile0")
def test_invalid_delete_system_doesnt_exist(self):
- self.assertFalse(self.api.systems().remove("doesnotexist"))
+ self.failUnlessRaises(CobblerException, self.api.systems().remove, "doesnotexist")
def test_invalid_delete_distro_doesnt_exist(self):
- self.assertFalse(self.api.distros().remove("doesnotexist"))
+ self.failUnlessRaises(CobblerException, self.api.distros().remove, "doesnotexist")
def test_invalid_delete_distro_would_orphan_profile(self):
self.make_basic_config()
- self.assertFalse(self.api.distros().remove("testdistro0"))
+ self.failUnlessRaises(CobblerException, self.api.distros().remove, "testdistro0")
def test_working_deletes(self):
self.api.clear()