From 48bb95377e313108a429016bb6ee96cd0c3c9606 Mon Sep 17 00:00:00 2001 From: Aleksandr Kotlyar Date: Mon, 21 Feb 2022 22:22:11 +0300 Subject: [PATCH] gh #311 reduce arguments in find_driver,save_file_to_cache --- webdriver_manager/driver.py | 2 +- webdriver_manager/driver_cache.py | 21 ++++++++++++++++----- webdriver_manager/manager.py | 12 ++---------- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/webdriver_manager/driver.py b/webdriver_manager/driver.py index 0fa7ab5e..8b5b860c 100644 --- a/webdriver_manager/driver.py +++ b/webdriver_manager/driver.py @@ -37,7 +37,7 @@ def get_url(self): def get_version(self): driver_version = self._version if driver_version == "latest": - return self.get_latest_release_version() + self._version = self.get_latest_release_version() return self._version def get_latest_release_version(self): diff --git a/webdriver_manager/driver_cache.py b/webdriver_manager/driver_cache.py index df9ba167..83c28180 100644 --- a/webdriver_manager/driver_cache.py +++ b/webdriver_manager/driver_cache.py @@ -22,7 +22,12 @@ def __init__(self, root_dir=None, valid_range=1): self._drivers_directory = f"{self._root_dir}{os.sep}{self._drivers_root}" self.valid_range = valid_range - def save_file_to_cache(self, file: File, browser_version, driver_name, os_type, driver_version): + def save_file_to_cache(self, driver, file: File): + driver_name = driver.get_name() + os_type = driver.get_os_type() + driver_version = driver.get_version() + browser_version = driver.browser_version + path = os.path.join(self._drivers_directory, driver_name, os_type, driver_version) archive = save_file(file, path) files = archive.unpack(path) @@ -62,7 +67,13 @@ def __save_metadata(self, browser_version, driver_name, os_type, driver_version, with open(self._drivers_json_path, 'w+') as outfile: json.dump(metadata, outfile, indent=4) - def find_driver(self, browser_version, driver_name, os_type, driver_version): + def find_driver(self, driver): + """Find driver by '{os_type}_{driver_name}_{driver_version}_{browser_version}'.""" + os_type = driver.get_os_type() + driver_name = driver.get_name() + driver_version = driver.get_version() + browser_version = driver.browser_version + metadata = self.get_metadata() key = f"{os_type}_{driver_name}_{driver_version}_for_{browser_version}" @@ -71,9 +82,9 @@ def find_driver(self, browser_version, driver_name, os_type, driver_version): return None path = os.path.join(self._drivers_directory, driver_name, os_type, driver_version) - driver_name = 'msedgedriver' if driver_name == 'edgedriver' else driver_name - driver_name = f'{driver_name}.exe' if 'win' in os_type else driver_name - binary_path = os.path.join(path, driver_name) + driver_binary_name = 'msedgedriver' if driver_name == 'edgedriver' else driver_name + driver_binary_name = f'{driver_binary_name}.exe' if 'win' in os_type else driver_name + binary_path = os.path.join(path, driver_binary_name) if not os.path.exists(binary_path): return None diff --git a/webdriver_manager/manager.py b/webdriver_manager/manager.py index 946c7d30..08c8f412 100644 --- a/webdriver_manager/manager.py +++ b/webdriver_manager/manager.py @@ -16,18 +16,10 @@ def install(self): raise NotImplementedError("Please Implement this method") def _get_driver_path(self, driver): - browser_version = driver.browser_version - - driver_name = driver.get_name() - os_type = driver.get_os_type() - driver_version = driver.get_version() - - binary_path = self.driver_cache.find_driver(browser_version, driver_name, os_type, - driver_version) + binary_path = self.driver_cache.find_driver(driver) if binary_path: return binary_path file = download_file(driver.get_url(), driver.ssl_verify) - binary_path = self.driver_cache.save_file_to_cache(file, browser_version, - driver_name, os_type, driver_version) + binary_path = self.driver_cache.save_file_to_cache(driver, file) return binary_path