From 4a221e8774b44120adbdc2ec100023cc8c99739b Mon Sep 17 00:00:00 2001 From: Marcel Wilson Date: Mon, 9 Oct 2023 16:45:20 -0500 Subject: [PATCH 1/3] os_type should not be confused with os name. Fixing #592 --- tests/test_chrome_driver.py | 38 +++++++++++++++++++++++++++++++++++-- webdriver_manager/chrome.py | 4 ++-- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/tests/test_chrome_driver.py b/tests/test_chrome_driver.py index f465d6fe..500b2f99 100644 --- a/tests/test_chrome_driver.py +++ b/tests/test_chrome_driver.py @@ -1,10 +1,11 @@ import json import os - +import platform +from random import random import pytest import browsers from selenium import webdriver -from mock import patch +from mock import patch, create_autospec from webdriver_manager.chrome import ChromeDriverManager from webdriver_manager.core.constants import ROOT_FOLDER_NAME @@ -105,3 +106,36 @@ def test_chrome_manager_cached_driver_with_selenium(): def test_can_get_chrome_for_os(os_type): path = ChromeDriverManager(os_system_manager=OperationSystemManager(os_type)).install() assert os.path.exists(path) + + +def test_can_get_chrome_for_win64(): + os_sys_manager = OperationSystemManager("win64") + # using random folder to avoid using any possible cache + cache_manager = DriverCacheManager(os.path.join(".test", f"win64_{random()}")) + path = ChromeDriverManager(os_system_manager=os_sys_manager, cache_manager=cache_manager).install() + assert os.path.basename(os.path.dirname(path)) == "chromedriver-win64" + + +def test_can_get_chrome_for_win32(): + os_sys_manager = OperationSystemManager("win32") + # using random folder to avoid using any possible cache + cache_manager = DriverCacheManager(os.path.join(".test", f"win32_{random()}")) + path = ChromeDriverManager(os_system_manager=os_sys_manager, cache_manager=cache_manager).install() + assert os.path.basename(os.path.dirname(path)) == "chromedriver-win32" + +@patch("webdriver_manager.core.os_manager.platform") +def test_can_get_chrome_for_mac64(mock_platform): + mock_platform.processor = create_autospec(platform.processor, return_value="i386") + os_sys_manager = OperationSystemManager("mac64") + # using random folder to avoid using any possible cache + cache_manager = DriverCacheManager(os.path.join(".test", f"mac64_{random()}")) + path = ChromeDriverManager(os_system_manager=os_sys_manager, cache_manager=cache_manager).install() + assert os.path.basename(os.path.dirname(path)) == "chromedriver-mac-x64" + + +def test_can_get_chrome_for_mac64_m1(): + os_sys_manager = OperationSystemManager("mac64_m1") + # using random folder to avoid using any possible cache + cache_manager = DriverCacheManager(os.path.join(".test", f"mac64_m1_{random()}")) + path = ChromeDriverManager(os_system_manager=os_sys_manager, cache_manager=cache_manager).install() + assert os.path.basename(os.path.dirname(path)) == "chromedriver-mac-arm64" diff --git a/webdriver_manager/chrome.py b/webdriver_manager/chrome.py index d8a91bf0..f2e6b71a 100644 --- a/webdriver_manager/chrome.py +++ b/webdriver_manager/chrome.py @@ -43,8 +43,8 @@ def install(self) -> str: def get_os_type(self): os_type = super().get_os_type() - if "win" in os_type: - return "win32" + if os_type in ["win32", "win64"]: + return os_type if not self._os_system_manager.is_mac_os(os_type): return os_type From b43ca1054a7db9f235f1380124b5261d5fc8b026 Mon Sep 17 00:00:00 2001 From: Marcel Wilson Date: Mon, 9 Oct 2023 18:15:19 -0500 Subject: [PATCH 2/3] satisfying pep8speaks --- tests/test_chrome_driver.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/tests/test_chrome_driver.py b/tests/test_chrome_driver.py index 500b2f99..611719d3 100644 --- a/tests/test_chrome_driver.py +++ b/tests/test_chrome_driver.py @@ -112,7 +112,9 @@ def test_can_get_chrome_for_win64(): os_sys_manager = OperationSystemManager("win64") # using random folder to avoid using any possible cache cache_manager = DriverCacheManager(os.path.join(".test", f"win64_{random()}")) - path = ChromeDriverManager(os_system_manager=os_sys_manager, cache_manager=cache_manager).install() + path = ChromeDriverManager( + os_system_manager=os_sys_manager, cache_manager=cache_manager + ).install() assert os.path.basename(os.path.dirname(path)) == "chromedriver-win64" @@ -120,16 +122,21 @@ def test_can_get_chrome_for_win32(): os_sys_manager = OperationSystemManager("win32") # using random folder to avoid using any possible cache cache_manager = DriverCacheManager(os.path.join(".test", f"win32_{random()}")) - path = ChromeDriverManager(os_system_manager=os_sys_manager, cache_manager=cache_manager).install() + path = ChromeDriverManager( + os_system_manager=os_sys_manager, cache_manager=cache_manager + ).install() assert os.path.basename(os.path.dirname(path)) == "chromedriver-win32" + @patch("webdriver_manager.core.os_manager.platform") def test_can_get_chrome_for_mac64(mock_platform): mock_platform.processor = create_autospec(platform.processor, return_value="i386") os_sys_manager = OperationSystemManager("mac64") # using random folder to avoid using any possible cache cache_manager = DriverCacheManager(os.path.join(".test", f"mac64_{random()}")) - path = ChromeDriverManager(os_system_manager=os_sys_manager, cache_manager=cache_manager).install() + path = ChromeDriverManager( + os_system_manager=os_sys_manager, cache_manager=cache_manager + ).install() assert os.path.basename(os.path.dirname(path)) == "chromedriver-mac-x64" @@ -137,5 +144,7 @@ def test_can_get_chrome_for_mac64_m1(): os_sys_manager = OperationSystemManager("mac64_m1") # using random folder to avoid using any possible cache cache_manager = DriverCacheManager(os.path.join(".test", f"mac64_m1_{random()}")) - path = ChromeDriverManager(os_system_manager=os_sys_manager, cache_manager=cache_manager).install() + path = ChromeDriverManager( + os_system_manager=os_sys_manager, cache_manager=cache_manager + ).install() assert os.path.basename(os.path.dirname(path)) == "chromedriver-mac-arm64" From eaca9e09a1bf914a307c0581a50b49078023f252 Mon Sep 17 00:00:00 2001 From: Marcel Wilson Date: Fri, 13 Oct 2023 11:52:14 -0500 Subject: [PATCH 3/3] using the handy fixture to delete the cache folder --- tests/test_chrome_driver.py | 32 ++++++++------------------------ 1 file changed, 8 insertions(+), 24 deletions(-) diff --git a/tests/test_chrome_driver.py b/tests/test_chrome_driver.py index 611719d3..fa2096bf 100644 --- a/tests/test_chrome_driver.py +++ b/tests/test_chrome_driver.py @@ -108,43 +108,27 @@ def test_can_get_chrome_for_os(os_type): assert os.path.exists(path) -def test_can_get_chrome_for_win64(): +def test_can_get_chrome_for_win64(delete_drivers_dir): os_sys_manager = OperationSystemManager("win64") - # using random folder to avoid using any possible cache - cache_manager = DriverCacheManager(os.path.join(".test", f"win64_{random()}")) - path = ChromeDriverManager( - os_system_manager=os_sys_manager, cache_manager=cache_manager - ).install() + path = ChromeDriverManager(os_system_manager=os_sys_manager).install() assert os.path.basename(os.path.dirname(path)) == "chromedriver-win64" -def test_can_get_chrome_for_win32(): +def test_can_get_chrome_for_win32(delete_drivers_dir): os_sys_manager = OperationSystemManager("win32") - # using random folder to avoid using any possible cache - cache_manager = DriverCacheManager(os.path.join(".test", f"win32_{random()}")) - path = ChromeDriverManager( - os_system_manager=os_sys_manager, cache_manager=cache_manager - ).install() + path = ChromeDriverManager(os_system_manager=os_sys_manager).install() assert os.path.basename(os.path.dirname(path)) == "chromedriver-win32" @patch("webdriver_manager.core.os_manager.platform") -def test_can_get_chrome_for_mac64(mock_platform): +def test_can_get_chrome_for_mac64(mock_platform, delete_drivers_dir): mock_platform.processor = create_autospec(platform.processor, return_value="i386") os_sys_manager = OperationSystemManager("mac64") - # using random folder to avoid using any possible cache - cache_manager = DriverCacheManager(os.path.join(".test", f"mac64_{random()}")) - path = ChromeDriverManager( - os_system_manager=os_sys_manager, cache_manager=cache_manager - ).install() + path = ChromeDriverManager(os_system_manager=os_sys_manager).install() assert os.path.basename(os.path.dirname(path)) == "chromedriver-mac-x64" -def test_can_get_chrome_for_mac64_m1(): +def test_can_get_chrome_for_mac64_m1(delete_drivers_dir): os_sys_manager = OperationSystemManager("mac64_m1") - # using random folder to avoid using any possible cache - cache_manager = DriverCacheManager(os.path.join(".test", f"mac64_m1_{random()}")) - path = ChromeDriverManager( - os_system_manager=os_sys_manager, cache_manager=cache_manager - ).install() + path = ChromeDriverManager(os_system_manager=os_sys_manager).install() assert os.path.basename(os.path.dirname(path)) == "chromedriver-mac-arm64"