def test_type(self): k1 = Key('/A/B/C:c') k2 = Key('/A/B/C:c/D:d') self.assertRaises(TypeError, k1.isAncestorOf, str(k2)) self.assertTrue(k1.isAncestorOf(k2)) self.assertTrue(k2.isDescendantOf(k1)) self.assertEqual(k1.type, 'C') self.assertEqual(k2.type, 'D') self.assertEqual(k1.type, k2.parent.type)
def test_ancestry(self): k1 = Key('/A/B/C') k2 = Key('/A/B/C/D') self.assertEqual(k1._string, '/A/B/C') self.assertEqual(k2._string, '/A/B/C/D') self.assertTrue(k1.isAncestorOf(k2)) self.assertTrue(k2.isDescendantOf(k1)) self.assertTrue(Key('/A').isAncestorOf(k2)) self.assertTrue(Key('/A').isAncestorOf(k1)) self.assertFalse(Key('/A').isDescendantOf(k2)) self.assertFalse(Key('/A').isDescendantOf(k1)) self.assertTrue(k2.isDescendantOf(Key('/A'))) self.assertTrue(k1.isDescendantOf(Key('/A'))) self.assertFalse(k2.isAncestorOf(Key('/A'))) self.assertFalse(k1.isAncestorOf(Key('/A'))) self.assertFalse(k2.isAncestorOf(k2)) self.assertFalse(k1.isAncestorOf(k1)) self.assertEqual(k1.child('D'), k2) self.assertEqual(k1, k2.parent) self.assertEqual(k1.path, k2.parent.path)