From 1fe4681c451e7e5faa8319929fe43d0ceca6ee6d Mon Sep 17 00:00:00 2001 From: Joshua Brummet Date: Thu, 4 Jun 2020 17:14:02 -0600 Subject: [PATCH 1/4] feat: improve regex for chrome version --- webdrivermanager/webdrivermanager.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/webdrivermanager/webdrivermanager.py b/webdrivermanager/webdrivermanager.py index 0981879..4f439d7 100644 --- a/webdrivermanager/webdrivermanager.py +++ b/webdrivermanager/webdrivermanager.py @@ -426,15 +426,16 @@ def get_download_url(self, version='latest'): else: local_bitness = self.bitness - matcher = r'{0}/.*{1}{2}.*'.format(version, self.os_name, local_bitness) + version = version + '.0' if '.' not in version else version + matcher = r'{0}.*/.*{1}{2}.*'.format(version, self.os_name, local_bitness) - entry = [obj for obj in chrome_driver_objects['items'] if re.match(matcher, obj['name'])] + entry = [obj for obj in chrome_driver_objects['items'] if re.search(matcher, obj['name'])] if not entry: raise_runtime_error('Error, unable to find appropriate download for {0}{1}.'.format(self.os_name, self.bitness)) url = entry[0]['mediaLink'] filename = os.path.basename(entry[0]['name']) - return (url, filename) + return url, filename class OperaChromiumDriverManager(WebDriverManagerBase): From 37224fafd35f77a0c8d1320f472f51ed17f3ac83 Mon Sep 17 00:00:00 2001 From: Joshua Brummet Date: Thu, 4 Jun 2020 17:18:30 -0600 Subject: [PATCH 2/4] feat: improve regex for chrome version --- webdrivermanager/webdrivermanager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webdrivermanager/webdrivermanager.py b/webdrivermanager/webdrivermanager.py index 4f439d7..b3d54d0 100644 --- a/webdrivermanager/webdrivermanager.py +++ b/webdrivermanager/webdrivermanager.py @@ -429,7 +429,7 @@ def get_download_url(self, version='latest'): version = version + '.0' if '.' not in version else version matcher = r'{0}.*/.*{1}{2}.*'.format(version, self.os_name, local_bitness) - entry = [obj for obj in chrome_driver_objects['items'] if re.search(matcher, obj['name'])] + entry = [obj for obj in chrome_driver_objects['items'] if re.match(matcher, obj['name'])] if not entry: raise_runtime_error('Error, unable to find appropriate download for {0}{1}.'.format(self.os_name, self.bitness)) From 86978a3534e96a4575558f4a65371612373d776f Mon Sep 17 00:00:00 2001 From: Joshua Brummet Date: Fri, 5 Jun 2020 10:37:18 -0600 Subject: [PATCH 3/4] Update version.py --- webdrivermanager/version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webdrivermanager/version.py b/webdrivermanager/version.py index 9f55919..4116634 100644 --- a/webdrivermanager/version.py +++ b/webdrivermanager/version.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -VERSION = '0.8.0' +VERSION = '0.8.1' def get_version(): From 4289712d054d2424f92f0a4b048d441f1eb15f9e Mon Sep 17 00:00:00 2001 From: Joshua Brummet Date: Fri, 5 Jun 2020 12:31:04 -0600 Subject: [PATCH 4/4] fix version logic & pull last entry in the entry list --- webdrivermanager/webdrivermanager.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/webdrivermanager/webdrivermanager.py b/webdrivermanager/webdrivermanager.py index b3d54d0..56fe8f9 100644 --- a/webdrivermanager/webdrivermanager.py +++ b/webdrivermanager/webdrivermanager.py @@ -414,6 +414,8 @@ def get_download_url(self, version='latest'): """ if version == 'latest': version = self._get_latest_version_number() + else: + version = version + '.0' if '.' not in version else version LOGGER.debug('Detected OS: %sbit %s', self.bitness, self.os_name) @@ -426,14 +428,13 @@ def get_download_url(self, version='latest'): else: local_bitness = self.bitness - version = version + '.0' if '.' not in version else version matcher = r'{0}.*/.*{1}{2}.*'.format(version, self.os_name, local_bitness) entry = [obj for obj in chrome_driver_objects['items'] if re.match(matcher, obj['name'])] if not entry: raise_runtime_error('Error, unable to find appropriate download for {0}{1}.'.format(self.os_name, self.bitness)) - url = entry[0]['mediaLink'] + url = entry[-1]['mediaLink'] filename = os.path.basename(entry[0]['name']) return url, filename