Example #1
0
class SubclassOf(MatcherTestCase):

    def test_invalid_type(self):
        with self.assertRaises(TypeError):
            __unit__.SubclassOf(object())

    def test_non_types(self):
        self.assert_no_match(None, object)
        self.assert_no_match(0, object)
        self.assert_no_match("Alice has a cat", object)
        self.assert_no_match((), object)
        self.assert_no_match([], object)

    def test_non_types__strict(self):
        self.assert_no_match(None, object, strict=True)
        self.assert_no_match(0, object, strict=True)
        self.assert_no_match("Alice has a cat", object, strict=True)
        self.assert_no_match((), object, strict=True)
        self.assert_no_match([], object, strict=True)

    def test_types(self):
        self.assert_match(self.Class, object)
        self.assert_match(self.Class, self.Class)
        self.assert_no_match(object, self.Class)
        self.assert_match(object, object)

    def test_types__strict(self):
        self.assert_match(self.Class, object, strict=True)
        self.assert_no_match(self.Class, self.Class, strict=True)
        self.assert_no_match(object, self.Class, strict=True)
        self.assert_no_match(object, object, strict=True)

    test_repr = lambda self: self.assert_repr(__unit__.SubclassOf(object))

    # Utility code

    class Class(object):
        pass

    def assert_match(self, value, type_, strict=False):
        return super(SubclassOf, self) \
            .assert_match(__unit__.SubclassOf(type_, strict), value)

    def assert_no_match(self, value, type_, strict=False):
        return super(SubclassOf, self) \
            .assert_no_match(__unit__.SubclassOf(type_, strict), value)
Example #2
0
 def assert_no_match(self, value, type_):
     return super(SubclassOf, self) \
         .assert_no_match(__unit__.SubclassOf(type_), value)
Example #3
0
 def test_invalid_type(self):
     with self.assertRaises(TypeError):
         __unit__.SubclassOf(object())
Example #4
0
 def assert_no_match(self, value, type_, strict=False):
     return super(SubclassOf, self) \
         .assert_no_match(__unit__.SubclassOf(type_, strict), value)