class TestLinks(unittest.TestCase): @mock_links def setUp(self): self.browser = RoboBrowser() self.browser.open('http://robobrowser.com/links/') @mock_links def test_get_link(self): link = self.browser.get_link() assert_equal(link.get('href'), '/link1/') @mock_links def test_get_links(self): links = self.browser.get_links() assert_equal(len(links), 3) @mock_links def test_follow_link_tag(self): link = self.browser.get_link(text=re.compile('sheer')) self.browser.follow_link(link) assert_equal(self.browser.url, 'http://robobrowser.com/link1/') @mock_links def test_follow_link_no_href(self): link = BeautifulSoup('<a>nohref</a>').find('a') assert_raises( exceptions.RoboError, lambda: self.browser.follow_link(link) )
class TestLinks(unittest.TestCase): @mock_links def setUp(self): self.browser = RoboBrowser() self.browser.open('http://robobrowser.com/links/') @mock_links def test_get_link(self): link = self.browser.get_link() assert_equal(link.get('href'), '/link1/') @mock_links def test_get_links(self): links = self.browser.get_links() assert_equal(len(links), 2) @mock_links def test_get_link_by_text(self): link = self.browser.get_link('opera') assert_equal(link.get('href'), '/link2/') @mock_links def test_follow_link_tag(self): link = self.browser.get_link(text=re.compile('sheer')) self.browser.follow_link(link) assert_equal(self.browser.url, 'http://robobrowser.com/link1/') @mock_links def test_follow_link_text(self): self.browser.follow_link('heart attack') assert_equal(self.browser.url, 'http://robobrowser.com/link1/') @mock_links def test_follow_link_regex(self): self.browser.follow_link(re.compile(r'opera')) assert_equal(self.browser.url, 'http://robobrowser.com/link2/') @mock_links def test_follow_link_bs_args(self): self.browser.follow_link(class_=re.compile(r'song')) assert_equal(self.browser.url, 'http://robobrowser.com/link2/')