def __subtest_basic(self, string): fixedString = Key.removeDuplicateSlashes(string) lastNamespace = fixedString.rsplit('/')[-1].split(':') ktype = lastNamespace[0] if len(lastNamespace) > 1 else '' name = lastNamespace[-1] path = fixedString.rsplit('/', 1)[0] + '/' + ktype instance = fixedString + ':' + 'c' self.assertEqual(Key(string)._string, fixedString) self.assertEqual(Key(string), Key(string)) self.assertEqual(str(Key(string)), fixedString) self.assertEqual(repr(Key(string)), "Key('%s')" % fixedString) self.assertEqual(Key(string).name, name) self.assertEqual(Key(string).type, ktype) self.assertEqual(Key(string).instance('c'), Key(instance)) self.assertEqual(Key(string).path, Key(path)) self.assertEqual(Key(string), eval(repr(Key(string)))) self.assertTrue(Key(string).child('a') > Key(string)) self.assertTrue(Key(string).child('a') < Key(string).child('b')) self.assertTrue(Key(string) == Key(string)) self.assertRaises(TypeError, cmp, Key(string), string) split = fixedString.split('/') if len(split) > 1: self.assertEqual(Key('/'.join(split[:-1])), Key(string).parent) else: self.assertRaises(ValueError, lambda: Key(string).parent) namespace = split[-1].split(':') if len(namespace) > 1: self.assertEqual(namespace[0], Key(string).type) else: self.assertEqual('', Key(string).type)