def test_update_no_args(self, dir_function, test_utils): """Latest version of config.DEFAULT_DRIVERS are downloaded to current dir """ tempdir = dir_function['path'] os.chdir(tempdir) result = test_utils.run_command('webdriver-manager update') platform = helpers.get_platform() chromedriver = Chromedriver(tempdir, platform['os_name'], platform['os_bits']) latest_version_chrome = chromedriver.get_latest_remote_version() geckodriver = Geckodriver(tempdir, platform['os_name'], platform['os_bits']) latest_version_gecko = geckodriver.get_latest_remote_version() files = os.listdir() expected_file_chrome = 'chromedriver_{}'.format(latest_version_chrome) if platform['os_name'] == 'windows': expected_file_chrome += '.exe' expected_file_gecko = 'geckodriver_{}'.format(latest_version_gecko) if platform['os_name'] == 'windows': expected_file_gecko += '.exe' assert len(files) == 2 assert expected_file_chrome in files assert expected_file_gecko in files assert 'INFO updating chromedriver' in result assert 'INFO got {}'.format(expected_file_chrome) in result assert 'INFO updating geckodriver' in result assert 'INFO got {}'.format(expected_file_gecko) in result
def test_get_latest_local_no_files_exist(self, dir_function): os.chdir(dir_function['path']) outputdir = helpers.normalize_outputdir() platform = helpers.get_platform() driver = Chromedriver(outputdir, 'linux', platform['os_bits']) latest_version = driver.get_latest_local_version() assert latest_version == '0.0'
def test_get_latest_local_version_chrome(self, dir_function, test_utils): os.chdir(dir_function['path']) outputdir = helpers.normalize_outputdir() platform = helpers.get_platform() test_utils.create_test_files(outputdir) driver = Chromedriver(outputdir, 'linux', platform['os_bits']) latest_version = driver.get_latest_local_version() assert latest_version == '2.3'
def test_update_drivers_dir_exists(self, dir_function, test_utils): """Verify when ./drivers exists it is used as output dir""" tempdir = dir_function['path'] os.chdir(tempdir) os.mkdir('./drivers') result = test_utils.run_command('webdriver-manager update -d chrome') platform = helpers.get_platform() chromedriver = Chromedriver(tempdir, platform['os_name'], platform['os_bits']) latest_version_chrome = chromedriver.get_latest_remote_version() files = os.listdir('./drivers') expected_file_chrome = 'chromedriver_{}'.format(latest_version_chrome) if platform['os_name'] == 'windows': expected_file_chrome += '.exe' assert files == [expected_file_chrome]
def test_update_chrome_local_is_up_to_date(self, dir_function, caplog): os.chdir(dir_function['path']) outputdir = helpers.normalize_outputdir() platform = helpers.get_platform() driver = Chromedriver(outputdir, platform['os_name'], platform['os_bits']) latest_version = driver.get_latest_remote_version() dummy_file = 'chromedriver_{}'.format(latest_version) if platform['os_name'] == 'windows': dummy_file += '.exe' open(os.path.join(outputdir, dummy_file), 'w+').close() update('chrome', outputdir) record = caplog.records[0] assert record.levelname == 'INFO' assert record.message == 'chromedriver is up to date'
def test_update_chrome_version_does_not_exist(self, dir_function, caplog): os.chdir(dir_function['path']) outputdir = helpers.normalize_outputdir() platform = helpers.get_platform() driver = Chromedriver(outputdir, platform['os_name'], platform['os_bits']) version = '99.99' with pytest.raises(SystemExit): update('chrome', outputdir, version=version) log_records = caplog.records assert log_records[0].levelname == 'INFO' assert log_records[0].message == 'updating chromedriver' assert log_records[1].levelname == 'ERROR' url = driver._get_chromedriver_download_url(version) msg = ('there was a 404 error trying to reach {} \nThis probably ' 'means the requested version does not exist.'.format(url)) assert log_records[1].message == msg
def test_update_chrome_to_latest(self, dir_function, caplog): os.chdir(dir_function['path']) outputdir = helpers.normalize_outputdir() platform = helpers.get_platform() driver = Chromedriver(outputdir, platform['os_name'], platform['os_bits']) latest_version = driver.get_latest_remote_version() update('chrome', outputdir) files = os.listdir() expected_file = 'chromedriver_{}'.format(latest_version) if platform['os_name'] == 'windows': expected_file += '.exe' assert files == [expected_file] log_records = caplog.records assert log_records[0].levelname == 'INFO' assert log_records[0].message == 'updating chromedriver' assert log_records[1].levelname == 'INFO' assert log_records[1].message == 'got {}'.format(expected_file)
def test_get_driver_full_filename_chrome_windows(self): platform = helpers.get_platform() driver = Chromedriver('', 'windows', platform['os_bits']) full_name = driver.get_driver_full_filename('2.2') assert full_name == 'chromedriver_2.2.exe'