Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
s.pirohov committed Jul 27, 2023
2 parents 7f7a66d + 05ffbe9 commit a54d70f
Show file tree
Hide file tree
Showing 13 changed files with 47 additions and 62 deletions.
48 changes: 18 additions & 30 deletions Pipfile.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 3.9.1
current_version = 4.0.0
commit = True
tag = True

Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
long_description_content_type="text/markdown",
packages=setuptools.find_packages(include=['webdriver_manager*']),
include_package_data=True,
version='3.9.1',
version='4.0.0',
description='Library provides the way to automatically manage drivers for different browsers',
author='Sergey Pirogov',
author_email='[email protected]',
Expand Down
2 changes: 1 addition & 1 deletion webdriver_manager/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = "3.9.1"
__version__ = "4.0.0"
3 changes: 1 addition & 2 deletions webdriver_manager/chrome.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,7 @@ def __init__(

def install(self) -> str:
driver_path = self._get_driver_binary_path(self.driver)
if all(test_os not in driver_path for test_os in ["mac_arm64", "mac_x64"]):
os.chmod(driver_path, 0o755)
os.chmod(driver_path, 0o755)
return driver_path

def get_os_type(self):
Expand Down
2 changes: 0 additions & 2 deletions webdriver_manager/core/archive.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
import os
import tarfile
import zipfile
import typing


class LinuxZipFileWithPermissions(zipfile.ZipFile):
Expand Down
13 changes: 6 additions & 7 deletions webdriver_manager/core/driver.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,17 @@ class Driver(object):
def __init__(
self,
name,
driver_version,
driver_version_to_download,
url,
latest_release_url,
http_client,
os_system_manager):
self._name = name
self._url = url
self._driver_version = driver_version
self._latest_release_url = latest_release_url
self._http_client = http_client
self._browser_version = None
self._driver_to_download_version = None
self._driver_version_to_download = driver_version_to_download
self._os_system_manager = os_system_manager
if not self._os_system_manager:
self._os_system_manager = OperationSystemManager()
Expand All @@ -43,10 +42,10 @@ def get_driver_version_to_download(self):
Downloads latest, if version is "latest" or browser could not been determined.
Downloads determined browser version driver in all other ways as a bonus fallback for lazy users.
"""
if not self._driver_to_download_version:
self._driver_to_download_version = self._driver_version if self._driver_version not in (None, "latest") \
else self.get_latest_release_version()
return self._driver_to_download_version
if self._driver_version_to_download:
return self._driver_version_to_download

return self.get_latest_release_version()

def get_latest_release_version(self):
# type: () -> str
Expand Down
25 changes: 14 additions & 11 deletions webdriver_manager/core/driver_cache.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,9 @@ def find_driver(self, driver: Driver):
driver_name = driver.get_name()
browser_type = driver.get_browser_type()
browser_version = self._os_system_manager.get_browser_version_from_os(browser_type)
if not browser_version:
return None

driver_version = self.get_cache_key_driver_version(driver)
metadata = self.load_metadata_content()

Expand Down Expand Up @@ -133,19 +136,19 @@ def load_metadata_content(self):
return {}

def __get_metadata_key(self, driver: Driver):
if self._metadata_key is None:
driver_version = self.get_cache_key_driver_version(driver)
browser_version = driver.get_browser_version_from_os()
browser_version = browser_version if browser_version else ""
self._metadata_key = f"{self.get_os_type()}_{driver.get_name()}_{driver_version}" \
f"_for_{browser_version}"
return self._metadata_key
if self._metadata_key:
return self._metadata_key

driver_version = self.get_cache_key_driver_version(driver)
browser_version = driver.get_browser_version_from_os()
browser_version = browser_version if browser_version else ""
self._metadata_key = f"{self.get_os_type()}_{driver.get_name()}_{driver_version}" \
f"_for_{browser_version}"

def get_cache_key_driver_version(self, driver: Driver):
if self._cache_key_driver_version is None:
self._cache_key_driver_version = "latest" if driver._driver_version in (
None, "latest") else driver._driver_version
return self._cache_key_driver_version
if self._cache_key_driver_version:
return self._cache_key_driver_version
return driver.get_driver_version_to_download()

def __get_path(self, driver: Driver):
if self._driver_binary_path is None:
Expand Down
2 changes: 1 addition & 1 deletion webdriver_manager/core/file_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ def __extract_zip(self, archive_file, to_directory):
full_file_path = os.path.join(to_directory, file_path)
source = os.path.join(full_file_path, file_name)
destination = os.path.join(to_directory, file_name)
os.rename(source, destination)
os.replace(source, destination)
file_names.append(file_name)
return sorted(file_names, key=lambda x: x.lower())
return archive.namelist()
Expand Down
3 changes: 2 additions & 1 deletion webdriver_manager/core/os_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,4 +159,5 @@ def get_browser_version_from_os(self, browser_type=None):
version = read_version_from_cmd(cmd_mapping, pattern)
return version
except Exception:
raise Exception("Can not get browser version from OS")
return None
# raise Exception("Can not get browser version from OS")
3 changes: 0 additions & 3 deletions webdriver_manager/core/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@
import subprocess





def get_date_diff(date1, date2, date_format):
a = datetime.datetime.strptime(date1, date_format)
b = datetime.datetime.strptime(
Expand Down
2 changes: 1 addition & 1 deletion webdriver_manager/drivers/chrome.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ def get_latest_release_version(self):

latest_release_url = (
self._latest_release_url
if (self._driver_version == "latest" or determined_browser_version is None)
if (determined_browser_version is None)
else f"{self._latest_release_url}_{determined_browser_version}"
)
resp = self._http_client.get(url=latest_release_url)
Expand Down
2 changes: 1 addition & 1 deletion webdriver_manager/drivers/edge.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ def get_latest_release_version(self) -> str:

edge_driver_version_to_download = (
self.get_stable_release_version()
if (self._driver_version == "latest" or determined_browser_version is None)
if (determined_browser_version is None)
else determined_browser_version
)
major_edge_version = edge_driver_version_to_download.split(".")[0]
Expand Down

0 comments on commit a54d70f

Please sign in to comment.