diff options
-rw-r--r-- | CHANGELOG | 9 | ||||
-rw-r--r-- | beautifulsoup/element.py | 52 | ||||
-rw-r--r-- | tests/test_tree.py | 32 |
3 files changed, 54 insertions, 39 deletions
@@ -6,9 +6,16 @@ Methods have been renamed to comply with PEP 8. The old names still work. Here are the renames: * findAll -> find_all - * findNext -> find_next * findAllNext -> find_all_next * findAllPrevious -> find_all_previous + * findNext -> find_next + * findNextSibling -> find_next_sibling + * findNextSiblings -> find_next_siblings + * findParent -> find_parent + * findParents -> find_parents + * findPrevious -> find_previous + * findPreviousSibling -> find_previous_sibling + * findPreviousSiblings -> find_previous_siblings == Generators are now properties == diff --git a/beautifulsoup/element.py b/beautifulsoup/element.py index 00b72b6..31e8fce 100644 --- a/beautifulsoup/element.py +++ b/beautifulsoup/element.py @@ -165,7 +165,7 @@ class PageElement: """Returns the first item that matches the given criteria and appears after this Tag in the document.""" return self._findOne(self.find_all_next, name, attrs, text, **kwargs) - findNext = find_next # Compatibility with BS3. + findNext = find_next # BS3 def find_all_next(self, name=None, attrs={}, text=None, limit=None, **kwargs): @@ -173,26 +173,30 @@ class PageElement: after this Tag in the document.""" return self._find_all(name, attrs, text, limit, self.next_elements, **kwargs) - findAllNext = find_all_next # Compatibility with BS3. + findAllNext = find_all_next # BS3 - def find_nextSibling(self, name=None, attrs={}, text=None, **kwargs): + def find_next_sibling(self, name=None, attrs={}, text=None, **kwargs): """Returns the closest sibling to this Tag that matches the given criteria and appears after this Tag in the document.""" - return self._findOne(self.find_nextSiblings, name, attrs, text, + return self._findOne(self.find_next_siblings, name, attrs, text, **kwargs) + findNextSibling = find_next_sibling # BS3 - def find_nextSiblings(self, name=None, attrs={}, text=None, limit=None, - **kwargs): + def find_next_siblings(self, name=None, attrs={}, text=None, limit=None, + **kwargs): """Returns the siblings of this Tag that match the given criteria and appear after this Tag in the document.""" return self._find_all(name, attrs, text, limit, - self.next_siblings, **kwargs) - fetchNextSiblings = find_nextSiblings # Compatibility with BS2 + self.next_siblings, **kwargs) + findNextSiblings = find_next_siblings # BS3 + fetchNextSiblings = find_next_siblings # BS2 - def findPrevious(self, name=None, attrs={}, text=None, **kwargs): + def find_previous(self, name=None, attrs={}, text=None, **kwargs): """Returns the first item that matches the given criteria and appears before this Tag in the document.""" - return self._findOne(self.find_all_previous, name, attrs, text, **kwargs) + return self._findOne( + self.find_all_previous, name, attrs, text, **kwargs) + findPrevious = find_previous # BS3 def find_all_previous(self, name=None, attrs={}, text=None, limit=None, **kwargs): @@ -200,41 +204,45 @@ class PageElement: before this Tag in the document.""" return self._find_all(name, attrs, text, limit, self.previous_elements, **kwargs) - findAllPrevious = find_all_previous # Compatibility with BS3 - fetchPrevious = find_all_previous # Compatibility with BS2 + findAllPrevious = find_all_previous # BS3 + fetchPrevious = find_all_previous # BS2 - def findPreviousSibling(self, name=None, attrs={}, text=None, **kwargs): + def find_previous_sibling(self, name=None, attrs={}, text=None, **kwargs): """Returns the closest sibling to this Tag that matches the given criteria and appears before this Tag in the document.""" - return self._findOne(self.findPreviousSiblings, name, attrs, text, + return self._findOne(self.find_previous_siblings, name, attrs, text, **kwargs) + findPreviousSibling = find_previous_sibling # BS3 - def findPreviousSiblings(self, name=None, attrs={}, text=None, - limit=None, **kwargs): + def find_previous_siblings(self, name=None, attrs={}, text=None, + limit=None, **kwargs): """Returns the siblings of this Tag that match the given criteria and appear before this Tag in the document.""" return self._find_all(name, attrs, text, limit, - self.previous_siblings, **kwargs) - fetchPreviousSiblings = findPreviousSiblings # Compatibility with pre-3.x + self.previous_siblings, **kwargs) + findPreviousSiblings = find_previous_siblings # BS3 + fetchPreviousSiblings = find_previous_siblings # BS2 - def findParent(self, name=None, attrs={}, **kwargs): + def find_parent(self, name=None, attrs={}, **kwargs): """Returns the closest parent of this Tag that matches the given criteria.""" # NOTE: We can't use _findOne because findParents takes a different # set of arguments. r = None - l = self.findParents(name, attrs, 1) + l = self.find_parents(name, attrs, 1) if l: r = l[0] return r + findParent = find_parent # BS3 - def findParents(self, name=None, attrs={}, limit=None, **kwargs): + def find_parents(self, name=None, attrs={}, limit=None, **kwargs): """Returns the parents of this Tag that match the given criteria.""" return self._find_all(name, attrs, None, limit, self.parents, **kwargs) - fetchParents = findParents # Compatibility with pre-3.x + findParents = find_parents # BS3 + fetchParents = find_parents # BS2 #These methods do the real heavy lifting. diff --git a/tests/test_tree.py b/tests/test_tree.py index d2361cb..09bdb87 100644 --- a/tests/test_tree.py +++ b/tests/test_tree.py @@ -270,12 +270,12 @@ class TestParentOperations(TreeTest): def test_find_parents(self): self.assertSelectsIDs( - self.start.findParents('ul'), ['bottom', 'middle', 'top']) + self.start.find_parents('ul'), ['bottom', 'middle', 'top']) self.assertSelectsIDs( - self.start.findParents('ul', id="middle"), ['middle']) + self.start.find_parents('ul', id="middle"), ['middle']) def test_find_parent(self): - self.assertEquals(self.start.findParent('ul')['id'], 'bottom') + self.assertEquals(self.start.find_parent('ul')['id'], 'bottom') def test_parent_of_text_element(self): text = self.tree.find(text="Start here") @@ -283,7 +283,7 @@ class TestParentOperations(TreeTest): def test_text_element_find_parent(self): text = self.tree.find(text="Start here") - self.assertEquals(text.findParent('ul')['id'], 'bottom') + self.assertEquals(text.find_parent('ul')['id'], 'bottom') def test_parent_generator(self): parents = [parent['id'] for parent in self.start.parentGenerator() @@ -447,13 +447,13 @@ class TestNextSibling(SiblingTest): self.assertEquals(last_span.nextSibling, None) def test_find_next_sibling(self): - self.assertEquals(self.start.find_nextSibling('span')['id'], '2') + self.assertEquals(self.start.find_next_sibling('span')['id'], '2') def test_next_siblings(self): - self.assertSelectsIDs(self.start.find_nextSiblings("span"), + self.assertSelectsIDs(self.start.find_next_siblings("span"), ['2', '3', '4']) - self.assertSelectsIDs(self.start.find_nextSiblings(id='3'), ['3']) + self.assertSelectsIDs(self.start.find_next_siblings(id='3'), ['3']) def test_next_sibling_for_text_element(self): soup = self.soup("Foo<b>bar</b>baz") @@ -461,9 +461,9 @@ class TestNextSibling(SiblingTest): self.assertEquals(start.nextSibling.name, 'b') self.assertEquals(start.nextSibling.nextSibling, 'baz') - self.assertSelects(start.find_nextSiblings('b'), ['bar']) - self.assertEquals(start.find_nextSibling(text="baz"), "baz") - self.assertEquals(start.find_nextSibling(text="nonesuch"), None) + self.assertSelects(start.find_next_siblings('b'), ['bar']) + self.assertEquals(start.find_next_sibling(text="baz"), "baz") + self.assertEquals(start.find_next_sibling(text="nonesuch"), None) class TestPreviousSibling(SiblingTest): @@ -492,13 +492,13 @@ class TestPreviousSibling(SiblingTest): self.assertEquals(first_span.previousSibling, None) def test_find_previous_sibling(self): - self.assertEquals(self.end.findPreviousSibling('span')['id'], '3') + self.assertEquals(self.end.find_previous_sibling('span')['id'], '3') def test_previous_siblings(self): - self.assertSelectsIDs(self.end.findPreviousSiblings("span"), + self.assertSelectsIDs(self.end.find_previous_siblings("span"), ['3', '2', '1']) - self.assertSelectsIDs(self.end.findPreviousSiblings(id='1'), ['1']) + self.assertSelectsIDs(self.end.find_previous_siblings(id='1'), ['1']) def test_previous_sibling_for_text_element(self): soup = self.soup("Foo<b>bar</b>baz") @@ -506,9 +506,9 @@ class TestPreviousSibling(SiblingTest): self.assertEquals(start.previousSibling.name, 'b') self.assertEquals(start.previousSibling.previousSibling, 'Foo') - self.assertSelects(start.findPreviousSiblings('b'), ['bar']) - self.assertEquals(start.findPreviousSibling(text="Foo"), "Foo") - self.assertEquals(start.findPreviousSibling(text="nonesuch"), None) + self.assertSelects(start.find_previous_siblings('b'), ['bar']) + self.assertEquals(start.find_previous_sibling(text="Foo"), "Foo") + self.assertEquals(start.find_previous_sibling(text="nonesuch"), None) class TestTreeModification(SoupTest): |