Decorator for required variables
Added decorator to check that required class variables are present. Change-Id: I6b90a7fccd4dca5675322ea2b9457c0fd0dcc658
This commit is contained in:
@@ -70,3 +70,29 @@ class UtilsTestCase(test.TestCase):
|
||||
|
||||
thread_1.join.assert_called_once()
|
||||
thread_2.join.assert_called_once()
|
||||
|
||||
|
||||
class MyClass(object):
|
||||
FOO = 10
|
||||
|
||||
@utils.require_variables('FOO')
|
||||
def method(self, a, b):
|
||||
return self.FOO + a + b
|
||||
|
||||
@utils.require_variables('BAR', 'BAZ')
|
||||
def method_that_miss_variables(self):
|
||||
return self.BAR, self.BAZ
|
||||
|
||||
|
||||
class RequiredVariablesTestCase(test.TestCase):
|
||||
|
||||
def test_require_variables(self):
|
||||
inst = MyClass()
|
||||
self.assertEqual(inst.method(1, b=2), 13)
|
||||
|
||||
def test_require_variables_not_implemented(self):
|
||||
inst = MyClass()
|
||||
err = self.assertRaises(NotImplementedError,
|
||||
inst.method_that_miss_variables)
|
||||
msg = 'BAR, BAZ required for MyClass.method_that_miss_variables'
|
||||
self.assertEqual(str(err), msg)
|
||||
|
||||
Reference in New Issue
Block a user