示例#1
0
 def test_works(self):
     document = '''
         <form id="test1" class="form"></form>
         <form id="test2" class="form"></form>
     '''
     skeleton = '<form class="form"></form>'
     ankle.find_all(skeleton, document)
示例#2
0
文件: tests.py 项目: tumregels/ankle
 def test(self):
     document = '''
         <form id="test1" class="form"></form>
         <form id="test2" class="form"></form>
     '''
     skeleton = '<form class="form"></form>'
     elements = ankle.find_all(skeleton, document)
     self.assertTrue(True)
示例#3
0
文件: tests.py 项目: tumregels/ankle
 def test_match_by_tag_name(self):
     document = '''
         <form id="test"></form>
     '''
     skeleton = '<form></form>'
     matches = ankle.find_all(skeleton, document)
     self.assertEqual(len(matches), 1)
     self.assertEqual(matches[0].attrib['id'], 'test')
示例#4
0
 def test_match_by_tag_name(self):
     document = '''
         <form id="test"></form>
     '''
     skeleton = '<form></form>'
     matches = ankle.find_all(skeleton, document)
     self.assertEqual(len(matches), 1)
     self.assertEqual(matches[0].attrib['id'], 'test')
示例#5
0
 def test_match_by_child(self):
     document = '''
         <form id="test1"><input name="match"></form>
         <form id="test2"><input name="no-match"></form>
     '''
     skeleton = '<form><input name="match"></form>'
     matches = ankle.find_all(skeleton, document)
     self.assertEqual(len(matches), 1)
     self.assertEqual(matches[0].attrib['id'], 'test1')
示例#6
0
文件: tests.py 项目: tumregels/ankle
 def test_match_by_child(self):
     document = '''
         <form id="test1"><input name="match"></form>
         <form id="test2"><input name="no-match"></form>
     '''
     skeleton = '<form><input name="match"></form>'
     matches = ankle.find_all(skeleton, document)
     self.assertEqual(len(matches), 1)
     self.assertEqual(matches[0].attrib['id'], 'test1')
示例#7
0
文件: tests.py 项目: tumregels/ankle
 def test_multiple_matches(self):
     document = '''
         <form id="test1"></form>
         <form id="test2"></form>
     '''
     skeleton = '<form></form>'
     matches = ankle.find_all(skeleton, document)
     self.assertEqual(len(matches), 2)
     self.assertEqual(matches[0].attrib['id'], 'test1')
     self.assertEqual(matches[1].attrib['id'], 'test2')
示例#8
0
 def test_multiple_matches(self):
     document = '''
         <form id="test1"></form>
         <form id="test2"></form>
     '''
     skeleton = '<form></form>'
     matches = ankle.find_all(skeleton, document)
     self.assertEqual(len(matches), 2)
     self.assertEqual(matches[0].attrib['id'], 'test1')
     self.assertEqual(matches[1].attrib['id'], 'test2')
示例#9
0
 def test_matches_skeleton_with_just_text(self):
     document = '''
         <h1 id="test1">Correct title</h1>
         <h2 id="test2">Different title</h1>
     '''
     skeleton = '''
         <h1>Correct title</h1>
     '''
     matches = ankle.find_all(skeleton, document)
     self.assertEqual(len(matches), 1)
     self.assertEqual(matches[0].attrib['id'], 'test1')
示例#10
0
文件: tests.py 项目: tumregels/ankle
 def test_matches_skeleton_with_just_text(self):
     document = '''
         <h1 id="test1">Correct title</h1>
         <h2 id="test2">Different title</h1>
     '''
     skeleton = '''
         <h1>Correct title</h1>
     '''
     matches = ankle.find_all(skeleton, document)
     self.assertEqual(len(matches), 1)
     self.assertEqual(matches[0].attrib['id'], 'test1')
示例#11
0
 def test_match_by_descendant(self):
     document = '''
         <form id="test1">
             <div><span><input name="match"></span></div>
             <button>Submit</button>
         </form>
         <form id="test2">
             <input name="whatever">
             <div><button>Go</button></div>
         </form>
     '''
     skeleton = '<form><input name="match"></form>'
     matches = ankle.find_all(skeleton, document)
     self.assertEqual(len(matches), 1)
     self.assertEqual(matches[0].attrib['id'], 'test1')
示例#12
0
 def test_match_by_multiple_children(self):
     document = '''
         <form id="login">
             <input name="name">
             <input name="password">
         </form>
         <form id="some-other-form">
             <input name="no-match">
             <input name="different-input">
         </form>
     '''
     skeleton = '<form><input name="name"><input name="password"></form>'
     matches = ankle.find_all(skeleton, document)
     self.assertEqual(len(matches), 1)
     self.assertEqual(matches[0].attrib['id'], 'login')
示例#13
0
文件: tests.py 项目: tumregels/ankle
 def test_match_by_multiple_children(self):
     document = '''
         <form id="login">
             <input name="name">
             <input name="password">
         </form>
         <form id="some-other-form">
             <input name="no-match">
             <input name="different-input">
         </form>
     '''
     skeleton = '<form><input name="name"><input name="password"></form>'
     matches = ankle.find_all(skeleton, document)
     self.assertEqual(len(matches), 1)
     self.assertEqual(matches[0].attrib['id'], 'login')
示例#14
0
文件: tests.py 项目: tumregels/ankle
 def test_match_by_descendant(self):
     document = '''
         <form id="test1">
             <div><span><input name="match"></span></div>
             <button>Submit</button>
         </form>
         <form id="test2">
             <input name="whatever">
             <div><button>Go</button></div>
         </form>
     '''
     skeleton = '<form><input name="match"></form>'
     matches = ankle.find_all(skeleton, document)
     self.assertEqual(len(matches), 1)
     self.assertEqual(matches[0].attrib['id'], 'test1')
示例#15
0
 def test_match_deep_descendants(self):
     document = '''
         <form id="test1">
             <div class="red">
                 <input name="wonderful">
             </div>
         </form>
         <form id="test2">
             <div class="red">
                 <input name="different">
             </div>
         </form>
     '''
     skeleton = (
         '<form><div class="red"><input name="wonderful"></form></div>'
     )
     matches = ankle.find_all(skeleton, document)
     self.assertEqual(len(matches), 1)
     self.assertEqual(matches[0].attrib['id'], 'test1')
示例#16
0
文件: tests.py 项目: tumregels/ankle
 def test_match_deep_descendants(self):
     document = '''
         <form id="test1">
             <div class="red">
                 <input name="wonderful">
             </div>
         </form>
         <form id="test2">
             <div class="red">
                 <input name="different">
             </div>
         </form>
     '''
     skeleton = (
         '<form><div class="red"><input name="wonderful"></form></div>'
     )
     matches = ankle.find_all(skeleton, document)
     self.assertEqual(len(matches), 1)
     self.assertEqual(matches[0].attrib['id'], 'test1')
示例#17
0
文件: tests.py 项目: tumregels/ankle
 def test_match_by_order(self):
     document = '''
         <form id="test1">
             <label for="name">Label</label>
             <input name="name">
         </form>
         <form id="test2">
             <input name="name">
             <label for="name">Label</label>
         </form>
     '''
     skeleton = '''
         <form>
             <label for="name">Label</label>
             <input name="name">
         </form>
     '''
     matches = ankle.find_all(skeleton, document)
     self.assertEqual(len(matches), 1)
     self.assertEqual(matches[0].attrib['id'], 'test1')
示例#18
0
 def test_match_by_order(self):
     document = '''
         <form id="test1">
             <label for="name">Label</label>
             <input name="name">
         </form>
         <form id="test2">
             <input name="name">
             <label for="name">Label</label>
         </form>
     '''
     skeleton = '''
         <form>
             <label for="name">Label</label>
             <input name="name">
         </form>
     '''
     matches = ankle.find_all(skeleton, document)
     self.assertEqual(len(matches), 1)
     self.assertEqual(matches[0].attrib['id'], 'test1')
示例#19
0
文件: tests.py 项目: tumregels/ankle
 def test_match_text_in_the_beginning_of_element(self):
     document = '''
         <form id="test1">
             Correct text
             <label for="name">Label</label>
             <input name="name">
         </form>
         <form id="test2">
             Incorrect text
             <label for="name">Label</label>
             <input name="name">
         </form>
     '''
     skeleton = '''
         <form>
             Correct text
             <label for="name">Label</label>
             <input name="name">
         </form>
     '''
     matches = ankle.find_all(skeleton, document)
     self.assertEqual(len(matches), 1)
     self.assertEqual(matches[0].attrib['id'], 'test1')
示例#20
0
 def test_match_text_in_the_beginning_of_element(self):
     document = '''
         <form id="test1">
             Correct text
             <label for="name">Label</label>
             <input name="name">
         </form>
         <form id="test2">
             Incorrect text
             <label for="name">Label</label>
             <input name="name">
         </form>
     '''
     skeleton = '''
         <form>
             Correct text
             <label for="name">Label</label>
             <input name="name">
         </form>
     '''
     matches = ankle.find_all(skeleton, document)
     self.assertEqual(len(matches), 1)
     self.assertEqual(matches[0].attrib['id'], 'test1')
示例#21
0
 def test_disallows_skeleton_with_multiple_elements(self):
     document = '<html></html>'
     skeleton = '<p></p><p></p>'
     with self.assertRaises(ValueError):
         ankle.find_all(skeleton, document)
示例#22
0
 def test_attribute_order_doesnt_matter(self):
     document = '<form method="POST" action="." id="test1"></form>'
     skeleton = '<form id="test1" action="." method="POST"></form>'
     matches = ankle.find_all(skeleton, document)
     self.assertEqual(len(matches), 1)
     self.assertEqual(matches[0].attrib['id'], 'test1')
示例#23
0
文件: tests.py 项目: tumregels/ankle
 def test_attribute_order_doesnt_matter(self):
     document = '<form method="POST" action="." id="test1"></form>'
     skeleton = '<form id="test1" action="." method="POST"></form>'
     matches = ankle.find_all(skeleton, document)
     self.assertEqual(len(matches), 1)
     self.assertEqual(matches[0].attrib['id'], 'test1')