Skip to content

Commit

Permalink
gh SergeyPirogov#311 reduce arguments in find_driver,save_file_to_cache
Browse files Browse the repository at this point in the history
  • Loading branch information
aleksandr-kotlyar committed Feb 21, 2022
1 parent 15e0d65 commit 48bb953
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 16 deletions.
2 changes: 1 addition & 1 deletion webdriver_manager/driver.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
21 changes: 16 additions & 5 deletions webdriver_manager/driver_cache.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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}"
Expand All @@ -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

Expand Down
12 changes: 2 additions & 10 deletions webdriver_manager/manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit 48bb953

Please sign in to comment.