class TestHistory(unittest.TestCase): @mock_urls def setUp(self): self.browser = RoboBrowser(history=True) self.browser.open('http://robobrowser.com/page1/') self.browser.open('http://robobrowser.com/page2/') self.browser.open('http://robobrowser.com/page3/') def test_back(self): self.browser.back() assert_equal(self.browser.url, 'http://robobrowser.com/page2/') def test_back_n(self): self.browser.back(n=2) assert_equal(self.browser.url, 'http://robobrowser.com/page1/') def test_forward(self): self.browser.back() self.browser.forward() assert_equal(self.browser.url, 'http://robobrowser.com/page3/') def test_forward_n(self): self.browser.back(n=2) self.browser.forward(n=2) assert_equal(self.browser.url, 'http://robobrowser.com/page3/') @mock_urls def test_open_clears_forward(self): self.browser.back(n=2) self.browser.open('http://robobrowser.com/page4/') assert_equal(self.browser._cursor, len(self.browser._states) - 1) assert_raises(exceptions.RoboError, self.browser.forward) def test_back_error(self): assert_raises(exceptions.RoboError, self.browser.back, 5)
class TestHistory(unittest.TestCase): @mock_urls def setUp(self): self.browser = RoboBrowser(history=True) self.browser.open('http://robobrowser.com/page1/') self.browser.open('http://robobrowser.com/page2/') self.browser.open('http://robobrowser.com/page3/') def test_back(self): self.browser.back() assert_equal( self.browser.url, 'http://robobrowser.com/page2/' ) def test_back_n(self): self.browser.back(n=2) assert_equal( self.browser.url, 'http://robobrowser.com/page1/' ) def test_forward(self): self.browser.back() self.browser.forward() assert_equal( self.browser.url, 'http://robobrowser.com/page3/' ) def test_forward_n(self): self.browser.back(n=2) self.browser.forward(n=2) assert_equal( self.browser.url, 'http://robobrowser.com/page3/' ) @mock_urls def test_open_clears_forward(self): self.browser.back(n=2) self.browser.open('http://robobrowser.com/page4/') assert_equal( self.browser._cursor, len(self.browser._states) - 1 ) assert_raises( exceptions.RoboError, self.browser.forward ) def test_back_error(self): assert_raises( exceptions.RoboError, self.browser.back, 5 )
class TestHistoryInternals(unittest.TestCase): def setUp(self): self.browser = RoboBrowser(history=True) @mock_urls def test_open_appends_to_history(self): assert_equal(len(self.browser._states), 0) assert_equal(self.browser._cursor, -1) self.browser.open('http://robobrowser.com/page1/') assert_equal(len(self.browser._states), 1) assert_equal(self.browser._cursor, 0) @mock_forms def test_submit_appends_to_history(self): self.browser.open('http://robobrowser.com/get_form/') form = self.browser.get_form() self.browser.submit_form(form) assert_equal(len(self.browser._states), 2) assert_equal(self.browser._cursor, 1) @mock_urls def test_open_clears_history_after_back(self): self.browser.open('http://robobrowser.com/page1/') self.browser.open('http://robobrowser.com/page2/') self.browser.back() self.browser.open('http://robobrowser.com/page3/') assert_equal(len(self.browser._states), 2) assert_equal(self.browser._cursor, 1) @mock_urls def test_state_deque_max_length(self): browser = RoboBrowser(history=5) for _ in range(5): browser.open('http://robobrowser.com/page1/') assert_equal(len(browser._states), 5) browser.open('http://robobrowser.com/page2/') assert_equal(len(browser._states), 5) @mock_urls def test_state_deque_no_history(self): browser = RoboBrowser(history=False) for _ in range(5): browser.open('http://robobrowser.com/page1/') assert_equal(len(browser._states), 1) assert_equal(browser._cursor, 0)