Andriy Kornatskyy avatar Andriy Kornatskyy committed 3f40b47

Added test case for checker model.

Comments (0)

Files changed (2)

src/wheezy/validation/checker.py

 # region: internal details
 
 class Model(dict):
+    """ Simulate plain python class, read-only dictionary access
+        through attributes.
+    """
     __slots__ = ()
 
-    def __setattr__(self, key, value):
-        return super(Model, self).__setitem__(key, value)
-
     def __getattr__(self, name):
         try:
             return super(Model, self).__getitem__(name)

src/wheezy/validation/tests/test_checker.py

                 'Required to be a minimum of 6 characters in length.',
                 'Required to be a valid email address.'
                 ] == self.c.errors(email='')
+
+
+class ModelTestCase(unittest.TestCase):
+
+    def test_items(self):
+        from wheezy.validation.checker import Model
+        m = Model(a=1, b=2)
+        assert [('a', 1), ('b', 2)] == sorted(m.items())
+        assert 1 == m.a
+        assert 2 == m.b
+        self.assertRaises(AttributeError, lambda: m.c)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.