summaryrefslogtreecommitdiff
path: root/selftest
diff options
context:
space:
mode:
Diffstat (limited to 'selftest')
-rw-r--r--selftest/target/__init__.py17
-rw-r--r--selftest/tests/test_target.py13
2 files changed, 30 insertions, 0 deletions
diff --git a/selftest/target/__init__.py b/selftest/target/__init__.py
index b6a297ce02..4c95c74895 100644
--- a/selftest/target/__init__.py
+++ b/selftest/target/__init__.py
@@ -29,6 +29,14 @@ class EnvironmentDown(Exception):
super(EnvironmentDown, self).__init__("environment went down: %s" % msg)
+class UnsupportedEnvironment(Exception):
+ """Indicates a particular environment is not supported."""
+
+ def __init__(self, target, envname):
+ super(UnsupportedEnvironment, self).__init__(
+ "Target %s does not support environment %s" % (target, envname))
+
+
class Target(object):
"""A target for Samba tests."""
@@ -93,6 +101,15 @@ class NoneEnvironment(Environment):
return {}
+class NoneTarget(Target):
+ """Target that can only provide the 'none' environment."""
+
+ name = "none"
+
+ def setup_env(self, envname, prefix):
+ raise UnsupportedEnvironment(self.name, envname)
+
+
class EnvironmentManager(object):
"""Manager of environments."""
diff --git a/selftest/tests/test_target.py b/selftest/tests/test_target.py
index 0a5d1c4310..139ed741d0 100644
--- a/selftest/tests/test_target.py
+++ b/selftest/tests/test_target.py
@@ -24,7 +24,9 @@ from selftest.target import (
EnvironmentDown,
EnvironmentManager,
NoneEnvironment,
+ NoneTarget,
Target,
+ UnsupportedEnvironment,
)
import unittest
@@ -67,6 +69,17 @@ class NoneEnvironmentTests(unittest.TestCase):
self.assertEquals("", self.env.get_log())
+class NoneTargetTests(unittest.TestCase):
+
+ def setUp(self):
+ super(NoneTargetTests, self).setUp()
+ self.target = NoneTarget()
+
+ def test_setup_env(self):
+ self.assertRaises(UnsupportedEnvironment, self.target.setup_env,
+ "something", "prefx")
+
+
class EnvironmentManagerTests(unittest.TestCase):
def setUp(self):