def test_refresh_open(): url = 'mock://example.com' initial_page = BeautifulSoup('<p>Fake empty page</p>', 'lxml') reload_page = BeautifulSoup('<p>Fake reloaded page</p>', 'lxml') browser, adapter = prepare_mock_browser() mock_get(adapter, url=url, reply=str(initial_page)) browser.open(url) mock_get(adapter, url=url, reply=str(reload_page), additional_matcher=lambda r: 'Referer' not in r.headers) browser.refresh() assert browser.get_url() == url assert browser.get_current_page() == reload_page
def test_refresh_open(): url = 'mock://example.com' initial_page = BeautifulSoup('<p>Fake empty page</p>', 'lxml') reload_page = BeautifulSoup('<p>Fake reloaded page</p>', 'lxml') browser, adapter = prepare_mock_browser() mock_get(adapter, url=url, reply=str(initial_page)) browser.open(url) mock_get(adapter, url=url, reply=str(reload_page), additional_matcher=lambda r: 'Referer' not in r.headers) browser.refresh() assert browser.url == url assert browser.page == reload_page
def test_refresh_form_not_retained(): url = 'mock://example.com' initial_content = '<form>Here comes the form</form>' initial_page = BeautifulSoup(initial_content, 'lxml') reload_page = BeautifulSoup('<p>Fake reloaded page</p>', 'lxml') browser, adapter = prepare_mock_browser() mock_get(adapter, url=url, reply=str(initial_page)) browser.open(url) browser.select_form() mock_get(adapter, url=url, reply=str(reload_page), additional_matcher=lambda r: 'Referer' not in r.headers) browser.refresh() assert browser.get_url() == url assert browser.get_current_page() == reload_page assert browser.get_current_form() is None
def test_refresh_form_not_retained(): url = 'mock://example.com' initial_content = '<form>Here comes the form</form>' initial_page = BeautifulSoup(initial_content, 'lxml') reload_page = BeautifulSoup('<p>Fake reloaded page</p>', 'lxml') browser, adapter = prepare_mock_browser() mock_get(adapter, url=url, reply=str(initial_page)) browser.open(url) browser.select_form() mock_get(adapter, url=url, reply=str(reload_page), additional_matcher=lambda r: 'Referer' not in r.headers) browser.refresh() assert browser.url == url assert browser.page == reload_page with pytest.raises(AttributeError, match="No form has been selected yet."): browser.form
def test_encoding(httpbin, http_html_expected_encoding): http_encoding = http_html_expected_encoding[0] html_encoding = http_html_expected_encoding[1] expected_encoding = http_html_expected_encoding[2] url = 'mock://encoding' text = ('<!doctype html>' + '<html lang="fr">' + (('<head><meta charset="' + html_encoding + '"><title>Titleéàè</title></head>') if html_encoding else '') + '<body></body>' + '</html>') browser, adapter = prepare_mock_browser() mock_get( adapter, url=url, reply=(text.encode(http_encoding) if http_encoding else text.encode("utf-8")), content_type=('text/html' + (';charset=' + http_encoding if http_encoding else ''))) browser.open(url) assert browser.page.original_encoding == expected_encoding
def test_refresh_follow_link(): url = 'mock://example.com' follow_url = 'mock://example.com/followed' initial_content = '<a href="{url}">Link</a>'.format(url=follow_url) initial_page = BeautifulSoup(initial_content, 'lxml') reload_page = BeautifulSoup('<p>Fake reloaded page</p>', 'lxml') browser, adapter = prepare_mock_browser() mock_get(adapter, url=url, reply=str(initial_page)) mock_get(adapter, url=follow_url, reply=str(initial_page)) browser.open(url) browser.follow_link() refer_header = {'Referer': url} mock_get(adapter, url=follow_url, reply=str(reload_page), request_headers=refer_header) browser.refresh() assert browser.get_url() == follow_url assert browser.get_current_page() == reload_page
def test_refresh_follow_link(): url = 'mock://example.com' follow_url = 'mock://example.com/followed' initial_content = f'<a href="{follow_url}">Link</a>' initial_page = BeautifulSoup(initial_content, 'lxml') reload_page = BeautifulSoup('<p>Fake reloaded page</p>', 'lxml') browser, adapter = prepare_mock_browser() mock_get(adapter, url=url, reply=str(initial_page)) mock_get(adapter, url=follow_url, reply=str(initial_page)) browser.open(url) browser.follow_link() refer_header = {'Referer': url} mock_get(adapter, url=follow_url, reply=str(reload_page), request_headers=refer_header) browser.refresh() assert browser.url == follow_url assert browser.page == reload_page