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)
def assert_no_match(self, value, type_): return super(SubclassOf, self) \ .assert_no_match(__unit__.SubclassOf(type_), value)
def test_invalid_type(self): with self.assertRaises(TypeError): __unit__.SubclassOf(object())
def assert_no_match(self, value, type_, strict=False): return super(SubclassOf, self) \ .assert_no_match(__unit__.SubclassOf(type_, strict), value)