def test_safari_find_downloads_stp_20220707(mocked_get): safari = browser.Safari(logger) page_path = os.path.join(os.path.dirname(__file__), "safari-downloads", "2022-07-07.html") # Setup mock response = requests.models.Response() response.status_code = 200 response.encoding = "utf-8" with open(page_path, "rb") as fp: response._content = fp.read() mocked_get.return_value = response downloads = safari._find_downloads() assert len(downloads) == 2 assert downloads[0][0] == SpecifierSet("==13.*") assert "12.4" not in downloads[0][0] assert "13.0" in downloads[0][0] assert "13.5" in downloads[0][0] assert "14.0" not in downloads[0][0] assert downloads[1][0] == SpecifierSet("~=12.3") assert "11.5" not in downloads[1][0] assert "12.2" not in downloads[1][0] assert "12.3" in downloads[1][0] assert "12.5" in downloads[1][0] assert "13.0" not in downloads[1][0]
def test_safari_version(mocked_check_output): safari = browser.Safari(logger) # Safari mocked_check_output.return_value = b'Included with Safari 12.1 (14607.1.11)' assert safari.version(webdriver_binary="safaridriver") == '12.1 (14607.1.11)' # Safari Technology Preview mocked_check_output.return_value = b'Included with Safari Technology Preview (Release 67, 13607.1.9.0.1)' assert safari.version(webdriver_binary="safaridriver") == 'Technology Preview (Release 67, 13607.1.9.0.1)'
def test_safari_version_errors(mocked_check_output): safari = browser.Safari(logger) # No webdriver_binary assert safari.version() is None # `safaridriver --version` return gibberish mocked_check_output.return_value = b'gibberish' assert safari.version(webdriver_binary="safaridriver") is None # `safaridriver --version` fails (as it does for Safari <=12.0) mocked_check_output.return_value = b'dummy' mocked_check_output.side_effect = subprocess.CalledProcessError(1, 'cmd') assert safari.version(webdriver_binary="safaridriver") is None
def test_safari_find_downloads_stp(mocked_get, page_path): safari = browser.Safari(logger) # Setup mock response = requests.models.Response() response.status_code = 200 response.encoding = "utf-8" with open(page_path, "rb") as fp: response._content = fp.read() mocked_get.return_value = response downloads = safari._find_downloads() if page_path.endswith( ( "2022-07-05.html", ) ): # occasionally STP is only shipped for a single OS version assert len(downloads) == 1 else: assert len(downloads) == 2