---
tests/factory/test_factory.py | 311 +++++++++++++++++++++--------------------
1 files changed, 161 insertions(+), 150 deletions(-)
diff --git a/tests/factory/test_factory.py b/tests/factory/test_factory.py
index 934277b..b05ce67 100644
--- a/tests/factory/test_factory.py
+++ b/tests/factory/test_factory.py
@@ -1,13 +1,21 @@
-import oz.TDL
-import oz.GuestFactory
import ConfigParser
import StringIO
import logging
import os
import sys
-success = 0
-fail = 0
+try:
+ import py.test
+except ImportError:
+ print 'Unable to import py.test. Is py.test installed?'
+ sys.exit(1)
+
+try:
+ import oz.TDL
+ import oz.GuestFactory
+except ImportError:
+ print 'Unable to import oz. Is oz installed?'
+ sys.exit(1)
def default_route():
route_file = "/proc/net/route"
@@ -33,7 +41,7 @@ def default_route():
# doesn't really matter; it just has to have an IP address
route = default_route()
-def test_distro(distro, version, arch, installtype):
+def runtest(distro, version, arch, installtype):
global route
tdlxml = """
@@ -63,153 +71,156 @@ def test_distro(distro, version, arch, installtype):
guest = oz.GuestFactory.guest_factory(tdl, config, None)
-def runtest(distro, version, arch, installtype, expect_success):
- global success
- global fail
-
- print "Testing %s-%s-%s-%s..." % (distro, version, arch, installtype),
- try:
- test_distro(distro, version, arch, installtype)
- if expect_success:
- success += 1
- print "OK"
- else:
- fail += 1
- print "FAIL"
- except Exception, e:
- if expect_success:
- fail += 1
- print e
- print "FAIL"
- else:
- success += 1
- print "OK"
-
-def expect_success(distro, version, arch, installtype):
- return runtest(distro, version, arch, installtype, True)
-
-def expect_fail(distro, version, arch, installtype):
- return runtest(distro, version, arch, installtype, False)
-
-# bad distro
-expect_fail("foo", "1", "i386", "url")
-# bad installtype
-expect_fail("Fedora", "14", "i386", "dong")
-# bad arch
-expect_fail("Fedora", "14", "ia64", "iso")
-
-# FedoraCore
-for version in ["1", "2", "3", "4",
"5", "6"]:
- for arch in ["i386", "x86_64"]:
- for installtype in ["url", "iso"]:
- expect_success("FedoraCore", version, arch, installtype)
-# bad FedoraCore version
-expect_fail("FedoraCore", "24", "x86_64", "iso")
-
-# Fedora
-for version in ["7", "8", "9", "10",
"11", "12", "13", "14", "15"]:
- for arch in ["i386", "x86_64"]:
- for installtype in ["url", "iso"]:
- expect_success("Fedora", version, arch, installtype)
-# bad Fedora version
-expect_fail("Fedora", "24", "x86_64", "iso")
-
-# RHL
-for version in ["7.0", "7.1", "7.2", "7.3",
"8", "9"]:
- expect_success("RHL", version, "i386", "url")
-# bad RHL version
-expect_fail("RHL", "10", "i386", "url")
-# bad RHL arch
-expect_fail("RHL", "9", "x86_64", "url")
-# bad RHL installtype
-expect_fail("RHL", "9", "x86_64", "iso")
-
-# RHEL-2.1
-for version in ["GOLD", "U2", "U3", "U4",
"U5", "U6"]:
- expect_success("RHEL-2.1", version, "i386", "url")
-# bad RHEL-2.1 version
-expect_fail("RHEL-2.1", "U7", "i386", "url")
-# bad RHEL-2.1 arch
-expect_fail("RHEL-2.1", "U6", "x86_64", "url")
-# bad RHEL-2.1 installtype
-expect_fail("RHEL-2.1", "U6", "i386", "iso")
-
-# RHEL-3
-for version in ["GOLD", "U1", "U2", "U3",
"U4", "U5", "U6", "U7", "U8",
"U9"]:
- for arch in ["i386", "x86_64"]:
- expect_success("RHEL-3", version, arch, "url")
-# bad RHEL-3 version
-expect_fail("RHEL-3", "U10", "x86_64", "url")
-# invalid RHEL-3 installtype
-expect_fail("RHEL-3", "U9", "x86_64", "iso")
-
-# RHEL-4/CentOS-4
-for distro in ["RHEL-4", "CentOS-4"]:
- for version in ["GOLD", "U1", "U2", "U3",
"U4", "U5", "U6", "U7", "U8",
"U9"]:
+def expect_success(*args):
+ runtest(*args)
+
+#def expect_fail(distro, version, arch, installtype):
+# return runtest(distro, version, arch, installtype, False)
+
+# Define a helper to expect an exception
+def exception_expected(exc, func, *args):
+ with py.test.raises(exc):
+ runtest(*args)
+
+def expect_fail(*args):
+ with py.test.raises(Exception):
+ runtest(*args)
+
+def test_all():
+
+ # bad distro
+ yield 'bad-distro', expect_fail, "foo", "1",
"i386", "url"
+ # bad installtype
+ yield 'bad-installtype', expect_fail, "Fedora", "14",
"i386", "dong"
+ # bad arch
+ yield 'bad-arch', expect_fail, "Fedora", "14",
"ia64", "iso"
+
+ # FedoraCore
+ for version in ["1", "2", "3", "4",
"5", "6"]:
for arch in ["i386", "x86_64"]:
for installtype in ["url", "iso"]:
- expect_success(distro, version, arch, installtype)
-# bad RHEL-4 version
-expect_fail("RHEL-4", "U10", "x86_64", "url")
+ yield 'FedoraCore-%s-%s-%s' % (version, arch, installtype), \
+ expect_success, "FedoraCore", version, arch, installtype
+ # bad FedoraCore version
+ yield 'bad-FedoraCore-version', expect_fail, "FedoraCore",
"24", "x86_64", "iso"
-# RHEL-5/CentOS-5
-for distro in ["RHEL-5", "CentOS-5"]:
- for version in ["GOLD", "U1", "U2", "U3",
"U4", "U5", "U6", "U7"]:
+ # Fedora
+ for version in ["7", "8", "9", "10",
"11", "12", "13", "14", "15"]:
for arch in ["i386", "x86_64"]:
for installtype in ["url", "iso"]:
- expect_success(distro, version, arch, installtype)
-# bad RHEL-5 version
-expect_fail("RHEL-5", "U10", "x86_64", "url")
-
-# RHEL-6
-for version in ["0", "1"]:
- for arch in ["i386", "x86_64"]:
- for installtype in ["url", "iso"]:
- expect_success("RHEL-6", version, arch, installtype)
-# bad RHEL-6 version
-expect_fail("RHEL-6", "U10", "x86_64", "url")
-
-# Debian
-for version in ["5", "6"]:
- for arch in ["i386", "x86_64"]:
- expect_success("Debian", version, arch, "iso")
-# bad Debian version
-expect_fail("Debian", "12", "i386", "iso")
-# invalid Debian installtype
-expect_fail("Debian", "6", "x86_64", "url")
-
-# Windows
-expect_success("Windows", "2000", "i386", "iso")
-for version in ["XP", "2003", "2008", "7"]:
- for arch in ["i386", "x86_64"]:
- expect_success("Windows", version, arch, "iso")
-# bad Windows 2000 arch
-expect_fail("Windows", "2000", "x86_64", "iso")
-# bad Windows version
-expect_fail("Windows", "1999", "x86_64", "iso")
-# invalid Windows installtype
-expect_fail("Windows", "2008", "x86_64", "url")
-
-# OpenSUSE
-for version in ["11.0", "11.1", "11.2", "11.3",
"11.4"]:
- for arch in ["i386", "x86_64"]:
- expect_success("OpenSUSE", version, arch, "iso")
-# bad OpenSUSE version
-expect_fail("OpenSUSE", "16", "x86_64", "iso")
-# invalid OpenSUSE installtype
-expect_fail("OpenSUSE", "11.4", "x86_64", "url")
-
-# Ubuntu
-for version in ["6.06", "6.06.1", "6.06.2",
"6.10", "7.04", "7.10", "8.04",
- "8.04.1", "8.04.2", "8.04.3",
"8.04.4", "8.10", "9.04", "9.10",
- "10.04", "10.04.1", "10.04.2",
"10.04.3", "10.10", "11.04"]:
- for arch in ["i386", "x86_64"]:
- expect_success("Ubuntu", version, arch, "iso")
-# bad Ubuntu version
-expect_fail("Ubuntu", "10.9", "i386", "iso")
-# bad Ubuntu installtype
-expect_fail("Ubuntu", "10.10", "i386", "url")
-
-print "SUCCESS: %d, FAIL: %d" % (success, fail)
-
-sys.exit(fail)
+ yield 'Fedora-%s-%s-%s' % (version, arch, installtype), \
+ expect_success, "Fedora", version, arch, installtype
+ # bad Fedora version
+ yield 'bad-Fedora-version', expect_fail, "Fedora", "24",
"x86_64", "iso"
+
+ # RHL
+ for version in ["7.0", "7.1", "7.2", "7.3",
"8", "9"]:
+ yield 'RHL-%s' % version, expect_success, "RHL", version,
"i386", "url"
+
+ # bad RHL version
+ yield 'bad-RHL-version', expect_fail, "RHL", "10",
"i386", "url"
+ # bad RHL arch
+ yield 'bad-RHL-arch', expect_fail, "RHL", "9",
"x86_64", "url"
+ # bad RHL installtype
+ yield 'bad-RHL-installtype', expect_fail, "RHL", "9",
"x86_64", "iso"
+
+ # RHEL-2.1
+ for version in ["GOLD", "U2", "U3", "U4",
"U5", "U6"]:
+ yield 'RHEL21-%s' % version, expect_success, "RHEL-2.1",
version, "i386", "url"
+
+ # bad RHEL-2.1 version
+ yield 'bad-RHEL21-version', expect_fail, "RHEL-2.1",
"U7", "i386", "url"
+ # bad RHEL-2.1 arch
+ yield 'bad-RHEL21-arch', expect_fail, "RHEL-2.1", "U6",
"x86_64", "url"
+ # bad RHEL-2.1 installtype
+ yield 'bad-RHEL21-installtype', expect_fail, "RHEL-2.1",
"U6", "i386", "iso"
+
+ # RHEL-3
+ for version in ["GOLD", "U1", "U2", "U3",
"U4", "U5", "U6", "U7", "U8",
"U9"]:
+ for arch in ["i386", "x86_64"]:
+ yield 'RHEL-3-%s-%s' % (version, arch), \
+ expect_success, "RHEL-3", version, arch, "url"
+
+ # bad RHEL-3 version
+ yield 'bad-RHEL3-version', expect_fail, "RHEL-3", "U10",
"x86_64", "url"
+ # invalid RHEL-3 installtype
+ yield 'bad-RHEL3-installtype', expect_fail, "RHEL-3",
"U9", "x86_64", "iso"
+
+ # RHEL-4/CentOS-4
+ for distro in ["RHEL-4", "CentOS-4"]:
+ for version in ["GOLD", "U1", "U2", "U3",
"U4", "U5", "U6", "U7", "U8",
"U9"]:
+ for arch in ["i386", "x86_64"]:
+ for installtype in ["url", "iso"]:
+ yield '%s-%s-%s-%s' % (distro, version, arch, installtype),
\
+ expect_success, distro, version, arch, installtype
+ # bad RHEL-4 version
+ yield 'bad-RHEL4-version', expect_fail, "RHEL-4", "U10",
"x86_64", "url"
+
+ # RHEL-5/CentOS-5
+ for distro in ["RHEL-5", "CentOS-5"]:
+ for version in ["GOLD", "U1", "U2", "U3",
"U4", "U5", "U6", "U7"]:
+ for arch in ["i386", "x86_64"]:
+ for installtype in ["url", "iso"]:
+ yield '%s-%s-%s-%s' % (distro, version, arch, installtype),
\
+ expect_success, distro, version, arch, installtype
+ # bad RHEL-5 version
+ yield 'bad-RHEL5-version', expect_fail, "RHEL-5", "U10",
"x86_64", "url"
+
+ # RHEL-6
+ for version in ["0", "1"]:
+ for arch in ["i386", "x86_64"]:
+ for installtype in ["url", "iso"]:
+ yield 'RHEL-6-%s-%s-%s' % (version, arch, installtype), \
+ expect_success, "RHEL-6", version, arch, installtype
+
+ # bad RHEL-6 version
+ yield 'bad-RHEL6-version', expect_fail, "RHEL-6", "U10",
"x86_64", "url"
+
+ # Debian
+ for version in ["5", "6"]:
+ for arch in ["i386", "x86_64"]:
+ yield 'Debian-%s-%s' % (version, arch), \
+ expect_success, "Debian", version, arch, "iso"
+
+ # bad Debian version
+ yield 'bad-debian-version', expect_fail, "Debian", "12",
"i386", "iso"
+ # invalid Debian installtype
+ yield 'bad-debian-installtype', expect_fail, "Debian",
"6", "x86_64", "url"
+
+ # Windows
+ yield 'Windows-2000-i386-iso', expect_success, "Windows",
"2000", "i386", "iso"
+ for version in ["XP", "2003", "2008", "7"]:
+ for arch in ["i386", "x86_64"]:
+ yield 'Windows-%s-%s' % (version, arch), \
+ expect_success, "Windows", version, arch, "iso"
+
+ # bad Windows 2000 arch
+ yield 'bad-windows-arch', expect_fail, "Windows", "2000",
"x86_64", "iso"
+ # bad Windows version
+ yield 'bad-windows-version', expect_fail, "Windows",
"1999", "x86_64", "iso"
+ # invalid Windows installtype
+ yield 'bad-windows-installtype', expect_fail, "Windows",
"2008", "x86_64", "url"
+
+ # OpenSUSE
+ for version in ["11.0", "11.1", "11.2",
"11.3", "11.4"]:
+ for arch in ["i386", "x86_64"]:
+ yield 'OpenSUSE-%s-%s' % (version, arch), \
+ expect_success, "OpenSUSE", version, arch, "iso"
+
+ # bad OpenSUSE version
+ yield 'bad-OpenSUSE-version', expect_fail, "OpenSUSE",
"16", "x86_64", "iso"
+ # invalid OpenSUSE installtype
+ yield 'bad-OpenSUSE-installtype', expect_fail, "OpenSUSE",
"11.4", "x86_64", "url"
+
+ # Ubuntu
+ for version in ["6.06", "6.06.1", "6.06.2",
"6.10", "7.04", "7.10", "8.04",
+ "8.04.1", "8.04.2", "8.04.3",
"8.04.4", "8.10", "9.04", "9.10",
+ "10.04", "10.04.1", "10.04.2",
"10.04.3", "10.10", "11.04"]:
+ for arch in ["i386", "x86_64"]:
+ yield 'Ubuntu-%s-%s' % (version, arch), \
+ expect_success, "Ubuntu", version, arch, "iso"
+
+ # bad Ubuntu version
+ yield 'bad-Ubuntu-version', expect_fail, "Ubuntu",
"10.9", "i386", "iso"
+ # bad Ubuntu installtype
+ yield 'bad-Ubuntu-installtype', expect_fail, "Ubuntu",
"10.10", "i386", "url"
--
1.7.6