def testComplexMatchBad(self): ''' Test matching scopes with complex locations and errors ''' simple1 = Location('TS','a.b.c') simple2 = Location('TS','a.b.z') complex1 = Location('TC',"R-H-PS9") # Can't mix location types self.assertFalse(simple1.match(complex1)) # Can't use an invalid location component self.assertRaises(KeyError, simple1.match, simple2,'mom')
def testComplexBadDefered(self): ''' Test invalid complex locations with validation deferred ''' cbad1 = Location('TZ', 'R-H') self.assertEqual('TZ: R-H', str(cbad1)) self.assertRaises(KeyError, cbad1.get_substitution_dict) self.assertRaises(KeyError, cbad1.get_comp_value, 'dummy') self.assertRaises(KeyError, cbad1.new_location_by_scope, 'dummy') self.assertEqual('TZ', cbad1.get_id()) self.assertEqual('R-H', cbad1.get_location()) cbad2 = Location('TZ', 'R-H') cbad3 = Location('TZ', 'R-I') self.assertTrue(cbad1 == cbad2) self.assertFalse(cbad1 == cbad3) self.assertTrue(cbad1.match(cbad2, None)) self.assertRaises(KeyError, cbad1.match, cbad2, 'dummy') return
def testSimpleMatch(self): simple1 = Location('TS','a.b.c') simple2 = Location('TS','a.b.z') simple3 = Location('TS','x.y.z') self.assertTrue(simple1.match(simple1)) self.assertFalse(simple1.match(simple2)) self.assertTrue(simple1.match(simple2,'child')) self.assertTrue(simple1.match(simple2,'parent')) self.assertFalse(simple1.match(simple3)) self.assertFalse(simple1.match(simple3,'child')) self.assertFalse(simple1.match(simple3,'parent'))
def testComplexMatch(self): ''' Test matching scopes with complex locations ''' complex1 = Location('TC',"R-H-PS9") complex2 = Location('TC',"R-H-K8-S") complex3 = Location('TC',"R-H-K9-S") self.assertTrue(complex1.match(complex1)) self.assertTrue(complex1.match(complex1)) self.assertFalse(complex1.match(complex2)) self.assertTrue(complex1.match(complex2,'home')) self.assertTrue(complex1.match(complex2,'top')) self.assertFalse(complex2.match(complex3)) # Can do different length w/o problems complex2 = Location('TC','R-H') complex3 = Location('TC','R-H-K9-S') self.assertFalse(complex2.match(complex3,'kilroy')) self.assertFalse(complex3.match(complex2,'kilroy'))