[Toaster] [PATCH 8/9] toaster-tests: fix tests for latest Selenium version

Michael Wood michael.g.wood at intel.com
Tue Jun 7 03:47:19 PDT 2016


On 06/06/16 17:01, Ed Bartosh wrote:
> From: Elliot Smith <elliot.smith at intel.com>
>
> Previously, we didn't specify a specific version of Selenium.
> When upgrading to Python 3 and installing Selenium to work with it,
> the JS unit test broke, as the report format produced by Selenium
> had changed.
>
> Modify the test so that it works with the latest Selenium report
> format.
>
> Add a note to the README that the given Selenium version should
> be used to prevent unexpected test failures.
>
> Signed-off-by: Elliot Smith <elliot.smith at intel.com>
> Signed-off-by: Ed Bartosh <ed.bartosh at linux.intel.com>
> ---
>   bitbake/lib/toaster/tests/browser/README                | 7 ++++---
>   bitbake/lib/toaster/tests/browser/test_js_unit_tests.py | 8 ++++----
>   2 files changed, 8 insertions(+), 7 deletions(-)
>
> diff --git a/bitbake/lib/toaster/tests/browser/README b/bitbake/lib/toaster/tests/browser/README
> index 63e8169..f57154e 100644
> --- a/bitbake/lib/toaster/tests/browser/README
> +++ b/bitbake/lib/toaster/tests/browser/README
> @@ -4,10 +4,11 @@ These tests require Selenium to be installed in your Python environment.
>   
>   The simplest way to install this is via pip:
>   
> -  pip install selenium
> +  pip install selenium==2.53.2
>   
> -Alternatively, if you used pip to install the libraries required by Toaster,
> -selenium will already be installed.
> +Note that if you use other versions of Selenium, some of the tests (such as
> +tests.browser.test_js_unit_tests.TestJsUnitTests) may fail, as these rely on
> +a Selenium test report with a version-specific format.
>   
>   To run tests against Chrome:
>   
> diff --git a/bitbake/lib/toaster/tests/browser/test_js_unit_tests.py b/bitbake/lib/toaster/tests/browser/test_js_unit_tests.py
> index e63da8e..3c0b962 100644
> --- a/bitbake/lib/toaster/tests/browser/test_js_unit_tests.py
> +++ b/bitbake/lib/toaster/tests/browser/test_js_unit_tests.py
> @@ -38,11 +38,11 @@ class TestJsUnitTests(SeleniumTestCase):
>       def test_that_js_unit_tests_pass(self):
>           url = reverse('js-unit-tests')
>           self.get(url)
> -        self.wait_until_present('#tests-failed')
> +        self.wait_until_present('#qunit-testresult .failed')
>   
> -        failed = self.find("#tests-failed").text
> -        passed = self.find("#tests-passed").text
> -        total = self.find("#tests-total").text

If these elements are no longer needed, can you also remove them from 
the jsunit test page (static/js/tests/tests.js) thanks

> +        failed = self.find("#qunit-testresult .failed").text
> +        passed = self.find("#qunit-testresult .passed").text
> +        total = self.find("#qunit-testresult .total").text
>   
>           logger.info("Js unit tests completed %s out of %s passed, %s failed",
>                       passed,



More information about the toaster mailing list