MCPcopy Create free account
hub / github.com/clips/pattern / FollowThatTag

Class FollowThatTag

pattern/web/soup/BeautifulSoupTests.py:21–177  ·  view source on GitHub ↗

Tests the various ways of fetching tags from a soup.

Source from the content-addressed store, hash-verified

19
20
21class FollowThatTag(SoupTest):
22
23 "Tests the various ways of fetching tags from a soup."
24
25 def setUp(self):
26 ml = """
27 <a id="x">1</a>
28 <A id="a">2</a>
29 <b id="b">3</a>
30 <b href="foo" id="x">4</a>
31 <ac width=100>4</ac>"""
32 self.soup = BeautifulStoneSoup(ml)
33
34 def testFindAllByName(self):
35 matching = self.soup('a')
36 self.assertEqual(len(matching), 2)
37 self.assertEqual(matching[0].name, 'a')
38 self.assertEqual(matching, self.soup.findAll('a'))
39 self.assertEqual(matching, self.soup.findAll(SoupStrainer('a')))
40
41 def testFindAllByAttribute(self):
42 matching = self.soup.findAll(id='x')
43 self.assertEqual(len(matching), 2)
44 self.assertEqual(matching[0].name, 'a')
45 self.assertEqual(matching[1].name, 'b')
46
47 matching2 = self.soup.findAll(attrs={'id' : 'x'})
48 self.assertEqual(matching, matching2)
49
50 strainer = SoupStrainer(attrs={'id' : 'x'})
51 self.assertEqual(matching, self.soup.findAll(strainer))
52
53 self.assertEqual(len(self.soup.findAll(id=None)), 1)
54
55 self.assertEqual(len(self.soup.findAll(width=100)), 1)
56 self.assertEqual(len(self.soup.findAll(junk=None)), 5)
57 self.assertEqual(len(self.soup.findAll(junk=[1, None])), 5)
58
59 self.assertEqual(len(self.soup.findAll(junk=re.compile('.*'))), 0)
60 self.assertEqual(len(self.soup.findAll(junk=True)), 0)
61
62 self.assertEqual(len(self.soup.findAll(junk=True)), 0)
63 self.assertEqual(len(self.soup.findAll(href=True)), 1)
64
65 def testFindallByClass(self):
66 soup = BeautifulSoup('<b class="foo">Foo</b><a class="1 23 4">Bar</a>')
67 self.assertEqual(soup.find(attrs='foo').string, "Foo")
68 self.assertEqual(soup.find('a', '1').string, "Bar")
69 self.assertEqual(soup.find('a', '23').string, "Bar")
70 self.assertEqual(soup.find('a', '4').string, "Bar")
71
72 self.assertEqual(soup.find('a', '2'), None)
73
74 def testFindAllByList(self):
75 matching = self.soup(['a', 'ac'])
76 self.assertEqual(len(matching), 3)
77
78 def testFindAllByHash(self):

Callers

nothing calls this directly

Calls 1

BeautifulSoupClass · 0.90

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…