From 85fdee280651b14d0ceadbe889eb571118c126f2 Mon Sep 17 00:00:00 2001 From: Leonard Richardson Date: Wed, 8 May 2013 09:38:16 -0400 Subject: We're getting there. --- bs4/tests/test_tree.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'bs4/tests/test_tree.py') diff --git a/bs4/tests/test_tree.py b/bs4/tests/test_tree.py index ac60aa1..4c78bf4 100644 --- a/bs4/tests/test_tree.py +++ b/bs4/tests/test_tree.py @@ -1585,7 +1585,7 @@ class TestSoupSelector(TreeTest): self.assertEqual(len(self.soup.select('del')), 0) def test_invalid_tag(self): - self.assertEqual(len(self.soup.select('tag%t')), 0) + self.assertRaises(ValueError, self.soup.select, 'tag%t') def test_header_tags(self): self.assertSelectMultiple( -- cgit v1.2.3 From b700be0bdac97627028240a742b3b922463122e7 Mon Sep 17 00:00:00 2001 From: Leonard Richardson Date: Wed, 8 May 2013 10:00:41 -0400 Subject: OK, the tests pass. --- bs4/tests/test_tree.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'bs4/tests/test_tree.py') diff --git a/bs4/tests/test_tree.py b/bs4/tests/test_tree.py index 4c78bf4..47afb81 100644 --- a/bs4/tests/test_tree.py +++ b/bs4/tests/test_tree.py @@ -1637,7 +1637,7 @@ class TestSoupSelector(TreeTest): def test_child_selector(self): self.assertSelects('.s1 > a', ['s1a1', 's1a2']) self.assertSelects('.s1 > a span', ['s1a2s1']) - + def test_child_selector_id(self): self.assertSelects('.s1 > a#s1a2 span', ['s1a2s1']) -- cgit v1.2.3 From b225c0cedf7e17b9780df7cab99dd6cd0c0a88e7 Mon Sep 17 00:00:00 2001 From: Leonard Richardson Date: Wed, 8 May 2013 12:06:35 -0400 Subject: Aaand... it's now trivial to implement sibling selectors. --- bs4/tests/test_tree.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'bs4/tests/test_tree.py') diff --git a/bs4/tests/test_tree.py b/bs4/tests/test_tree.py index 47afb81..db5d602 100644 --- a/bs4/tests/test_tree.py +++ b/bs4/tests/test_tree.py @@ -1786,3 +1786,16 @@ class TestSoupSelector(TreeTest): def test_overspecified_child_id(self): self.assertSelects(".fancy #inner", ['inner']) self.assertSelects(".normal #inner", []) + + def test_adjacent_sibling_selector(self): + self.assertSelects('#p1 + h2', ['header2']) + self.assertSelects('#p1 + h2 + p', ['pmulti']) + self.assertSelects('#p1 + #header2 + .class1', ['pmulti']) + self.assertEqual([], self.soup.select('#p1 + p')) + + def test_general_sibling_selector(self): + self.assertSelects('#p1 ~ h2', ['header2', 'header3']) + self.assertSelects('#p1 ~ #header2', ['header2']) + self.assertSelects('#p1 ~ h2 + a', ['me']) + self.assertSelects('#p1 ~ h2 + [rel="me"]', ['me']) + self.assertEqual([], self.soup.select('#inner ~ h2')) -- cgit v1.2.3 From 98e695a43fe54a6956f2214908dbea8947bf694c Mon Sep 17 00:00:00 2001 From: Leonard Richardson Date: Wed, 8 May 2013 12:28:52 -0400 Subject: Added tests. --- bs4/tests/test_tree.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'bs4/tests/test_tree.py') diff --git a/bs4/tests/test_tree.py b/bs4/tests/test_tree.py index db5d602..77d4199 100644 --- a/bs4/tests/test_tree.py +++ b/bs4/tests/test_tree.py @@ -1799,3 +1799,6 @@ class TestSoupSelector(TreeTest): self.assertSelects('#p1 ~ h2 + a', ['me']) self.assertSelects('#p1 ~ h2 + [rel="me"]', ['me']) self.assertEqual([], self.soup.select('#inner ~ h2')) + + def test_dangling_combinator(self): + self.assertRaises(ValueError, self.soup.select, 'h1 >') -- cgit v1.2.3