Decorator for required variables

Added decorator to check that required class variables are present.

Change-Id: I6b90a7fccd4dca5675322ea2b9457c0fd0dcc658
This commit is contained in:
Anton Studenov
2016-10-13 17:30:54 +03:00
parent dc64ad38c2
commit 80a82024ea
4 changed files with 57 additions and 4 deletions

View File

@@ -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)