Пример #1
0
 def itinerary(self):
   yield vpath2regexp('//japan>')
   self.down = True
   yield vpath2regexp('//tokyo')
   self.tokyo = True
   yield vpath2regexp('//osaka')
   self.osaka = True
   yield vpath2regexp('//japan<')
   self.up = True
   raise StopIteration
Пример #2
0
 def test_OrParent(self):
   query = '''//A|B/node'''
   m = vpath2regexp(query)
   self.assert_(m)
   print m, m.pattern
   self.assert_(not m.match('''/root/node>'''))
   self.assert_(m.match('''/root/A/node>'''))
   self.assert_(m.match('''/root/B/node>'''))
Пример #3
0
 def test_AnyInParent(self):
   query = '''/*/node'''
   m = vpath2regexp(query)
   self.assert_(m)
   print m, m.pattern
   self.assert_(m.match('''/A/node>'''))
   self.assert_(m.match('''/B/node>'''))
   self.assert_(m.match('''/C/node>'''))
Пример #4
0
 def test_Any(self):
   query = '''/*'''
   m = vpath2regexp(query)
   self.assert_(m)
   print m, m.pattern
   self.assert_(m.match('''/A>'''))
   self.assert_(m.match('''/B>'''))
   self.assert_(m.match('''/C>'''))
Пример #5
0
 def test_Or3(self):
   query = '''//A|B|C'''
   m = vpath2regexp(query)
   self.assert_(m)
   print m, m.pattern
   self.assert_(not m.match('''/root/node>'''))
   self.assert_(m.match('''/root/A>'''))
   self.assert_(m.match('''/root/B>'''))
   self.assert_(m.match('''/root/C>'''))
Пример #6
0
 def test_descendant_with_ancester(self):
   query = '''//ancester//node'''
   m = vpath2regexp(query)
   self.assert_(m)
   print m, m.pattern
   self.assert_(not m.match('''/root/node>'''))
   self.assert_(m.match('''/root/ancester/node>'''))
   self.assert_(not m.match('''/root/ancester/node<'''))
   self.assert_(m.match('''/root/ancester/parent/node>'''))
   self.assert_(not m.match('''/root/ancester/parent/node<'''))
Пример #7
0
 def test_TwoAnys(self):
   query = '''/*/*'''
   m = vpath2regexp(query)
   self.assert_(m)
   print m, m.pattern
   self.assert_(not m.match('''/A'''))
   self.assert_(m.match('''/A/a>'''))
   self.assert_(m.match('''/B/b>'''))
   self.assert_(m.match('''/C/c>'''))
   self.assert_(not m.match('''/C/c/D>'''))
Пример #8
0
 def test_descendant(self):
   query = '''//node'''
   m = vpath2regexp(query)
   self.assert_(m)
   print m, m.pattern
   self.assert_(not m.match('''/root>'''))
   self.assert_(m.match('''/root/node>'''))
   self.assert_(not m.match('''/root/node<'''))
   self.assert_(m.match('''/root/parent/node>'''))
   self.assert_(not m.match('''/root/parent/node<'''))
   self.assert_(m.match('''/root/grandparent/parent/node>'''))
Пример #9
0
 def test_OrAncester(self):
   query = '''//A|B//node'''
   m = vpath2regexp(query)
   self.assert_(m)
   print m, m.pattern
   self.assert_(not m.match('''/root/node>'''))
   self.assert_(m.match('''/A/node>'''))
   self.assert_(m.match('''/root/A/node>'''))
   self.assert_(m.match('''/root/B/node>'''))
   self.assert_(not m.match('''/root/C/node>'''))
   self.assert_(m.match('''/A/hoge/node>'''))
   self.assert_(m.match('''/root/A/hoge/node>'''))
   self.assert_(m.match('''/root/B/hoge/node>'''))
   self.assert_(m.match('''/root/B/hoge/bar/node>'''))
   self.assert_(not m.match('''/root/C/hoge/node>'''))
Пример #10
0
 def itinerary(self):
   yield vpath2regexp('//osaka')
   self.osaka= True
   raise StopIteration
Пример #11
0
 def test_absrootup(self):
   query = '''/root<'''
   m = vpath2regexp(query)
   self.assert_(m)
   self.assert_(m.match('/root<'))
Пример #12
0
 def itinerary(self):
   yield vpath2regexp('//tokyo')
   self.tokyo = True
   raise StopIteration
Пример #13
0
 def itinerary(self):
   yield vpath2regexp('//tokyo>')
   self.down = True
   yield vpath2regexp('//tokyo<')
   self.up= True
   raise StopIteration
Пример #14
0
 def itinerary(self):
   yield vpath2regexp('/node')
   raise StopIteration