diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index faff91f..52e212a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -76,7 +76,14 @@ jobs: - name: run unit tests run: | - pdm run test + case "${{ matrix.os }}" in + ubuntu-*) + sudo apt-get install -o Acquire::Retries=3 --no-install-recommends -y xvfb + xvfb-run pdm run test + ;; + *) pdm run test + ;; + esac - name: run kleinanzeigen_bot run: | diff --git a/tests/test_selenium_mixin.py b/tests/test_selenium_mixin.py new file mode 100644 index 0000000..a65677d --- /dev/null +++ b/tests/test_selenium_mixin.py @@ -0,0 +1,19 @@ +""" +Copyright (C) 2022 Sebastian Thomschke and contributors +SPDX-License-Identifier: AGPL-3.0-or-later +""" +from kleinanzeigen_bot.selenium_mixin import SeleniumMixin +from kleinanzeigen_bot import utils + + +def test_webdriver_auto_init(): + selenium_mixin = SeleniumMixin() + + chrome_type, chrome_version = selenium_mixin.get_browser_version_from_os() + utils.ensure(chrome_type is not None, "Chrome type not auto-detected") + utils.ensure(chrome_version is not None, "Chrome version not auto-detected") + + utils.ensure(selenium_mixin.webdriver is None, "Web driver must not be set before create_webdriver_session()") + selenium_mixin.create_webdriver_session() + utils.ensure(selenium_mixin.webdriver is not None, "Web driver must be set after create_webdriver_session()") + selenium_mixin.webdriver.quit()