Skip to content

Instantly share code, notes, and snippets.

@stephendonner
Created September 28, 2016 17:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stephendonner/943d45d0f1c1a6279e4ff94184b15c32 to your computer and use it in GitHub Desktop.
Save stephendonner/943d45d0f1c1a6279e4ff94184b15c32 to your computer and use it in GitHub Desktop.
sdonners-MacBook-Pro:Addon-Tests sdonner$ git branch
master
* switch-to-tox
sdonners-MacBook-Pro:Addon-Tests sdonner$ tox -e tests -- --variables=/Users/sdonner/Desktop/AMO.json --driver Firefox
tests installed: apipkg==1.4,axl==0.5.1,cffi==1.8.3,cryptography==1.5,enum34==1.1.6,execnet==1.4.1,fxapom==1.9.0,hawkauthlib==0.1.1,idna==2.1,ipaddress==1.0.17,ndg-httpsclient==0.4.2,numpy==1.11.1,py==1.4.31,pyasn1==0.1.9,PyBrowserID==0.11.0,pycparser==2.14,PyFxA==0.2.0,PyJWT==1.4.2,pyOpenSSL==16.1.0,pytest==3.0.2,pytest-base-url==1.1.0,pytest-html==1.10.0,pytest-selenium==1.3.1,pytest-variables==1.4,pytest-xdist==1.15.0,pytz==2016.6.1,requests==2.11.1,scipy==0.18.1,selenium==2.53.6,six==1.10.0,WebOb==1.6.1
tests runtests: PYTHONHASHSEED='4196361723'
tests runtests: commands[0] | pytest --variables=/Users/sdonner/Desktop/AMO.json --driver Firefox
============================= test session starts ==============================
platform darwin -- Python 2.7.11, pytest-3.0.2, py-1.4.31, pluggy-0.3.1 -- /Users/sdonner/Addon-Tests/.tox/tests/bin/python
cachedir: .cache
baseurl: https://addons-dev.allizom.org
driver: Firefox
sensitiveurl: mozilla\.org
rootdir: /Users/sdonner/Addon-Tests, inifile: setup.cfg
plugins: base-url-1.1.0, html-1.10.0, selenium-1.3.1, variables-1.4, xdist-1.15.0
[gw0] darwin Python 2.7.11 cwd: /Users/sdonner/Addon-Tests
[gw1] darwin Python 2.7.11 cwd: /Users/sdonner/Addon-Tests
[gw2] darwin Python 2.7.11 cwd: /Users/sdonner/Addon-Tests
[gw3] darwin Python 2.7.11 cwd: /Users/sdonner/Addon-Tests
[gw4] darwin Python 2.7.11 cwd: /Users/sdonner/Addon-Tests
[gw5] darwin Python 2.7.11 cwd: /Users/sdonner/Addon-Tests
[gw6] darwin Python 2.7.11 cwd: /Users/sdonner/Addon-Tests
[gw7] darwin Python 2.7.11 cwd: /Users/sdonner/Addon-Tests
[gw0] Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 12:54:16) -- [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
[gw1] Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 12:54:16) -- [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
[gw2] Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 12:54:16) -- [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
[gw3] Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 12:54:16) -- [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
[gw4] Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 12:54:16) -- [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
[gw5] Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 12:54:16) -- [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
[gw6] Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 12:54:16) -- [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
[gw7] Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 12:54:16) -- [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
gw0 [163] / gw1 [163] / gw2 [163] / gw3 [163] / gw4 ok / gw5 ok / gw6 ok / gw7 ogw0 [163] / gw1 [163] / gw2 [163] / gw3 [163] / gw4 [163] / gw5 ok / gw6 ok / gwgw0 [163] / gw1 [163] / gw2 [163] / gw3 [163] / gw4 [163] / gw5 [163] / gw6 ok /gw0 [163] / gw1 [163] / gw2 [163] / gw3 [163] / gw4 [163] / gw5 [163] / gw6 [163gw0 [163] / gw1 [163] / gw2 [163] / gw3 [163] / gw4 [163] / gw5 [163] / gw6 [163] / gw7 [163]
scheduling tests via LoadScheduling
tests/desktop/test_collections.py::TestCollections::test_user_my_collections_page
tests/desktop/test_collections.py::TestCollections::test_create_and_delete_collection
tests/desktop/test_api_only.py::TestAPIOnlyTests::test_that_firebug_status_id_is_4_and_fully_reviewed
tests/desktop/test_api_only.py::TestAPIOnlyTests::test_that_firebug_is_listed_first_in_addons_search_for_firebug
tests/desktop/test_api_only.py::TestAPIOnlyTests::test_that_firebug_has_install_link
tests/desktop/test_api_only.py::TestAPIOnlyTests::test_that_firebug_addon_type_id_is_1
tests/desktop/test_api_only.py::TestAPIOnlyTests::test_that_firebug_addon_type_name_is_extension
tests/desktop/test_collections.py::TestCollections::test_featured_tab_is_highlighted_by_default
[gw6] PASSED tests/desktop/test_api_only.py::TestAPIOnlyTests::test_that_firebug_addon_type_name_is_extension
tests/desktop/test_complete_themes.py::TestCompleteThemes::test_that_complete_themes_can_be_sorted_by_name
[gw1] PASSED tests/desktop/test_api_only.py::TestAPIOnlyTests::test_that_firebug_status_id_is_4_and_fully_reviewed
tests/desktop/test_complete_themes.py::TestCompleteThemes::test_that_complete_themes_can_be_sorted_by_created_date
[gw4] PASSED tests/desktop/test_api_only.py::TestAPIOnlyTests::test_that_firebug_has_install_link
tests/desktop/test_complete_themes.py::TestCompleteThemes::test_that_complete_themes_can_be_sorted_by_popularity
[gw3] PASSED tests/desktop/test_api_only.py::TestAPIOnlyTests::test_that_firebug_is_listed_first_in_addons_search_for_firebug
[gw5] PASSED tests/desktop/test_api_only.py::TestAPIOnlyTests::test_that_firebug_addon_type_id_is_1
tests/desktop/test_collections.py::TestCollections::test_user_my_favorites_page
tests/desktop/test_complete_themes.py::TestCompleteThemes::test_that_complete_themes_can_be_sorted_by_updated_date
[gw0] PASSED tests/desktop/test_collections.py::TestCollections::test_user_my_collections_page
tests/desktop/test_complete_themes.py::TestCompleteThemes::test_that_complete_themes_page_has_correct_title
[gw7] PASSED tests/desktop/test_collections.py::TestCollections::test_featured_tab_is_highlighted_by_default
tests/desktop/test_complete_themes.py::TestCompleteThemes::test_that_complete_themes_loads_landing_page_correctly
[gw1] PASSED tests/desktop/test_complete_themes.py::TestCompleteThemes::test_that_complete_themes_can_be_sorted_by_created_date
tests/desktop/test_complete_themes.py::TestCompleteThemes::test_that_last_complete_themes_page_is_not_empty
[gw4] PASSED tests/desktop/test_complete_themes.py::TestCompleteThemes::test_that_complete_themes_can_be_sorted_by_popularity
tests/desktop/test_complete_themes.py::TestCompleteThemes::test_the_displayed_message_for_incompatible_complete_themes
[gw6] PASSED tests/desktop/test_complete_themes.py::TestCompleteThemes::test_that_complete_themes_can_be_sorted_by_name
tests/desktop/test_complete_themes.py::TestCompleteThemes::test_that_complete_themes_categories_are_listed_on_left_hand_side
[gw2] PASSED tests/desktop/test_collections.py::TestCollections::test_create_and_delete_collection
tests/desktop/test_complete_themes.py::TestCompleteThemes::test_that_clicking_on_complete_theme_name_loads_its_detail_page
[gw7] PASSED tests/desktop/test_complete_themes.py::TestCompleteThemes::test_that_complete_themes_loads_landing_page_correctly
tests/desktop/test_complete_themes.py::TestCompleteThemes::test_that_most_popular_link_is_default
[gw2] PASSED tests/desktop/test_complete_themes.py::TestCompleteThemes::test_that_clicking_on_complete_theme_name_loads_its_detail_page
tests/desktop/test_complete_themes.py::TestCompleteThemes::test_sorted_by_most_users_is_default
[gw0] PASSED tests/desktop/test_complete_themes.py::TestCompleteThemes::test_that_complete_themes_page_has_correct_title
tests/desktop/test_details_page.py::TestDetails::test_that_register_login_link_is_present_in_addon_details_page
[gw4] PASSED tests/desktop/test_complete_themes.py::TestCompleteThemes::test_the_displayed_message_for_incompatible_complete_themes
tests/desktop/test_details_page.py::TestDetails::test_that_version_information_is_displayed
[gw5] PASSED tests/desktop/test_complete_themes.py::TestCompleteThemes::test_that_complete_themes_can_be_sorted_by_updated_date
tests/desktop/test_complete_themes.py::TestCompleteThemes::test_that_complete_themes_categories_are_not_extensions_categories
[gw6] PASSED tests/desktop/test_complete_themes.py::TestCompleteThemes::test_that_complete_themes_categories_are_listed_on_left_hand_side
tests/desktop/test_details_page.py::TestDetails::test_that_addon_name_is_displayed
[gw7] PASSED tests/desktop/test_complete_themes.py::TestCompleteThemes::test_that_most_popular_link_is_default
tests/desktop/test_details_page.py::TestDetails::test_that_reviews_are_displayed
[gw1] PASSED tests/desktop/test_complete_themes.py::TestCompleteThemes::test_that_last_complete_themes_page_is_not_empty
tests/desktop/test_details_page.py::TestDetails::test_that_about_this_addon_is_displayed
[gw3] PASSED tests/desktop/test_collections.py::TestCollections::test_user_my_favorites_page
tests/desktop/test_complete_themes.py::TestCompleteThemes::test_that_clicking_on_a_subcategory_loads_expected_page
[gw6] PASSED tests/desktop/test_details_page.py::TestDetails::test_that_addon_name_is_displayed
tests/desktop/test_details_page.py::TestDetails::test_that_whats_this_link_for_source_license_links_to_an_answer_in_faq
[gw2] PASSED tests/desktop/test_complete_themes.py::TestCompleteThemes::test_sorted_by_most_users_is_default
tests/desktop/test_details_page.py::TestDetails::test_that_tags_are_displayed
[gw1] PASSED tests/desktop/test_details_page.py::TestDetails::test_that_about_this_addon_is_displayed
tests/desktop/test_details_page.py::TestDetails::test_author_addons_when_there_is_only_one_author
[gw0] PASSED tests/desktop/test_details_page.py::TestDetails::test_that_register_login_link_is_present_in_addon_details_page
tests/desktop/test_details_page.py::TestDetails::test_part_of_collections_are_displayed
[gw7] PASSED tests/desktop/test_details_page.py::TestDetails::test_that_reviews_are_displayed
tests/desktop/test_details_page.py::TestDetails::test_open_close_functionality_for_image_viewer
[gw5] PASSED tests/desktop/test_complete_themes.py::TestCompleteThemes::test_that_complete_themes_categories_are_not_extensions_categories
tests/desktop/test_details_page.py::TestDetails::test_that_summary_is_displayed
[gw6] PASSED tests/desktop/test_details_page.py::TestDetails::test_that_whats_this_link_for_source_license_links_to_an_answer_in_faq
tests/desktop/test_details_page.py::TestDetails::test_that_clicking_info_link_slides_down_page_to_version_info
[gw4] PASSED tests/desktop/test_details_page.py::TestDetails::test_that_version_information_is_displayed
[gw0] PASSED tests/desktop/test_details_page.py::TestDetails::test_part_of_collections_are_displayed
tests/desktop/test_details_page.py::TestDetails::test_navigating_to_author_addons
tests/desktop/test_details_page.py::TestDetails::test_that_review_usernames_are_clickable
[gw1] PASSED tests/desktop/test_details_page.py::TestDetails::test_author_addons_when_there_is_only_one_author
tests/desktop/test_details_page.py::TestDetails::test_that_license_link_works
[gw2] PASSED tests/desktop/test_details_page.py::TestDetails::test_that_tags_are_displayed
tests/desktop/test_details_page.py::TestDetails::test_image_viewer_navigation
[gw7] PASSED tests/desktop/test_details_page.py::TestDetails::test_open_close_functionality_for_image_viewer
tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_firebug_version_number_is_correct
[gw5] PASSED tests/desktop/test_details_page.py::TestDetails::test_that_summary_is_displayed
tests/desktop/test_details_page.py::TestDetails::test_author_addons_when_there_are_multiple_authors
[gw1] PASSED tests/desktop/test_details_page.py::TestDetails::test_that_license_link_works
tests/desktop/test_details_page.py::TestDetails::test_that_clicking_user_reviews_slides_down_page_to_reviews_section
[gw6] PASSED tests/desktop/test_details_page.py::TestDetails::test_that_clicking_info_link_slides_down_page_to_version_info
tests/desktop/test_details_page.py::TestDetails::test_that_add_a_review_button_works
[gw3] PASSED tests/desktop/test_complete_themes.py::TestCompleteThemes::test_that_clicking_on_a_subcategory_loads_expected_page
tests/desktop/test_details_page.py::TestDetails::test_that_dropdown_menu_is_present_after_click_on_other_apps
[gw7] PASSED tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_firebug_version_number_is_correct
tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_firebug_authors_is_correct
[gw0] PASSED tests/desktop/test_details_page.py::TestDetails::test_that_review_usernames_are_clickable
tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_addon_number_of_total_downloads_is_correct
[gw2] PASSED tests/desktop/test_details_page.py::TestDetails::test_image_viewer_navigation
tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_daily_users_in_api_equals_daily_users_in_details_page
[gw5] PASSED tests/desktop/test_details_page.py::TestDetails::test_author_addons_when_there_are_multiple_authors
tests/desktop/test_extensions.py::TestExtensions::test_next_button_is_disabled_on_the_last_page
[gw1] PASSED tests/desktop/test_details_page.py::TestDetails::test_that_clicking_user_reviews_slides_down_page_to_reviews_section
tests/desktop/test_details_page.py::TestDetails::test_that_install_button_is_clickable
[gw3] PASSED tests/desktop/test_details_page.py::TestDetails::test_that_dropdown_menu_is_present_after_click_on_other_apps
tests/desktop/test_details_page.py::TestDetails::test_that_external_link_leads_to_addon_website
[gw6] PASSED tests/desktop/test_details_page.py::TestDetails::test_that_add_a_review_button_works
tests/desktop/test_details_page.py::TestDetails::test_the_developers_comments_section
[gw2] PASSED tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_daily_users_in_api_equals_daily_users_in_details_page
tests/desktop/test_extensions.py::TestExtensions::test_web_extension_submission
[gw1] PASSED tests/desktop/test_details_page.py::TestDetails::test_that_install_button_is_clickable
tests/desktop/test_details_page.py::TestDetails::test_what_is_this_in_the_version_information
[gw3] PASSED tests/desktop/test_details_page.py::TestDetails::test_that_external_link_leads_to_addon_website
tests/desktop/test_extensions.py::TestExtensions::test_that_checks_if_the_extensions_are_sorted_by_recently_updated
[gw0] PASSED tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_addon_number_of_total_downloads_is_correct
tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_learn_more_link_is_correct
[gw5] PASSED tests/desktop/test_extensions.py::TestExtensions::test_next_button_is_disabled_on_the_last_page
tests/desktop/test_extensions.py::TestExtensions::test_that_checks_if_the_extensions_are_sorted_by_top_rated
[gw7] PASSED tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_firebug_authors_is_correct
tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_firebug_images_is_correct
[gw4] PASSED tests/desktop/test_details_page.py::TestDetails::test_navigating_to_author_addons
[gw1] PASSED tests/desktop/test_details_page.py::TestDetails::test_what_is_this_in_the_version_information
tests/desktop/test_details_page.py::TestDetails::test_view_the_source_in_the_version_information
tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_description_text_is_correct
[gw6] PASSED tests/desktop/test_details_page.py::TestDetails::test_the_developers_comments_section
tests/desktop/test_details_page.py::TestDetails::test_that_the_development_channel_expands
[gw5] PASSED tests/desktop/test_extensions.py::TestExtensions::test_that_checks_if_the_extensions_are_sorted_by_top_rated
tests/desktop/test_extensions.py::TestExtensions::test_that_checks_if_the_extensions_are_sorted_by_most_user
[gw3] FAILED tests/desktop/test_extensions.py::TestExtensions::test_that_checks_if_the_extensions_are_sorted_by_recently_updated
tests/desktop/test_extensions.py::TestExtensions::test_that_extensions_are_sorted_by_up_and_coming
[gw6] PASSED tests/desktop/test_details_page.py::TestDetails::test_that_the_development_channel_expands
tests/desktop/test_details_page.py::TestDetails::test_click_on_other_collections
[gw7] PASSED tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_firebug_images_is_correct
tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_firebug_summary_is_correct
[gw4] PASSED tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_description_text_is_correct
tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_icon_is_correct
[gw0] PASSED tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_learn_more_link_is_correct
tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_firebug_devs_comments_is_correct
[gw5] PASSED tests/desktop/test_extensions.py::TestExtensions::test_that_checks_if_the_extensions_are_sorted_by_most_user
tests/desktop/test_extensions.py::TestExtensions::test_that_checks_if_the_extensions_are_sorted_by_newest
[gw7] PASSED tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_firebug_summary_is_correct
tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_firebug_rating_is_correct
[gw4] PASSED tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_icon_is_correct
tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_support_url_is_correct
[gw7] PASSED tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_firebug_rating_is_correct
tests/desktop/test_homepage.py::TestHome::test_that_featured_themes_exist_on_the_home
[gw6] PASSED tests/desktop/test_details_page.py::TestDetails::test_click_on_other_collections
tests/desktop/test_details_page.py::TestDetails::test_the_development_channel_section
[gw4] PASSED tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_support_url_is_correct
tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_rating_in_api_equals_rating_in_details_page
[gw2] PASSED tests/desktop/test_extensions.py::TestExtensions::test_web_extension_submission
tests/desktop/test_extensions.py::TestExtensions::test_featured_tab_is_highlighted_by_default
[gw3] PASSED tests/desktop/test_extensions.py::TestExtensions::test_that_extensions_are_sorted_by_up_and_coming
tests/desktop/test_extensions.py::TestExtensions::test_that_extensions_page_contains_addons_and_the_pagination_works
[gw0] PASSED tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_firebug_devs_comments_is_correct
tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_home_page_in_api_equals_home_page_in_details_page
[gw5] PASSED tests/desktop/test_extensions.py::TestExtensions::test_that_checks_if_the_extensions_are_sorted_by_newest
tests/desktop/test_extensions.py::TestExtensions::test_that_checks_featured_extensions_header
[gw7] PASSED tests/desktop/test_homepage.py::TestHome::test_that_featured_themes_exist_on_the_home
tests/desktop/test_homepage.py::TestHome::test_that_clicking_see_all_themes_link_works
[gw4] PASSED tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_rating_in_api_equals_rating_in_details_page
tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_compatible_applications_equal
[gw2] PASSED tests/desktop/test_extensions.py::TestExtensions::test_featured_tab_is_highlighted_by_default
tests/desktop/test_extensions.py::TestExtensions::test_pagination
[gw0] PASSED tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_home_page_in_api_equals_home_page_in_details_page
tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_reviews_in_api_equals_reviews_in_details_page
[gw6] PASSED tests/desktop/test_details_page.py::TestDetails::test_the_development_channel_section
tests/desktop/test_homepage.py::TestHome::test_that_most_popular_section_is_ordered_by_users
[gw3] PASSED tests/desktop/test_extensions.py::TestExtensions::test_that_extensions_page_contains_addons_and_the_pagination_works
tests/desktop/test_extensions.py::TestExtensions::test_that_checks_if_the_subscribe_link_exists
[gw1] PASSED tests/desktop/test_details_page.py::TestDetails::test_view_the_source_in_the_version_information
tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_firebug_page_title_is_correct
[gw5] PASSED tests/desktop/test_extensions.py::TestExtensions::test_that_checks_featured_extensions_header
tests/desktop/test_homepage.py::TestHome::test_that_checks_the_most_popular_section_exists
[gw4] PASSED tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_compatible_applications_equal
tests/desktop/test_homepage.py::TestHome::test_that_clicking_see_all_collections_link_works
[gw7] PASSED tests/desktop/test_homepage.py::TestHome::test_that_clicking_see_all_themes_link_works
tests/desktop/test_homepage.py::TestHome::test_that_extensions_link_loads_extensions_page
[gw6] PASSED tests/desktop/test_homepage.py::TestHome::test_that_most_popular_section_is_ordered_by_users
tests/desktop/test_homepage.py::TestHome::test_that_featured_collections_exist_on_the_home
[gw0] PASSED tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_reviews_in_api_equals_reviews_in_details_page
tests/desktop/test_homepage.py::TestHome::test_that_clicking_most_popular_shows_addons_sorted_by_users
[gw3] PASSED tests/desktop/test_extensions.py::TestExtensions::test_that_checks_if_the_subscribe_link_exists
tests/desktop/test_homepage.py::TestHome::test_the_name_of_each_site_navigation_menu_in_the_header
[gw5] PASSED tests/desktop/test_homepage.py::TestHome::test_that_checks_the_most_popular_section_exists
tests/desktop/test_homepage.py::TestHome::test_that_checks_the_promo_box_exists
[gw1] PASSED tests/desktop/test_details_page_against_xml.py::TestDetailsAgainstXML::test_that_firebug_page_title_is_correct
tests/desktop/test_homepage.py::TestHome::test_addons_author_link
[gw5] PASSED tests/desktop/test_homepage.py::TestHome::test_that_checks_the_promo_box_exists
tests/desktop/test_homepage.py::TestHome::test_that_clicking_on_addon_name_loads_details_page
[gw7] PASSED tests/desktop/test_homepage.py::TestHome::test_that_extensions_link_loads_extensions_page
tests/desktop/test_homepage.py::TestHome::test_that_checks_all_categories_side_navigation
[gw4] PASSED tests/desktop/test_homepage.py::TestHome::test_that_clicking_see_all_collections_link_works
tests/desktop/test_homepage.py::TestHome::test_that_items_menu_fly_out_while_hovering
[gw3] PASSED tests/desktop/test_homepage.py::TestHome::test_the_name_of_each_site_navigation_menu_in_the_header
tests/desktop/test_homepage.py::TestHome::test_top_three_items_in_each_site_navigation_menu_are_featured
[gw6] PASSED tests/desktop/test_homepage.py::TestHome::test_that_featured_collections_exist_on_the_home
tests/desktop/test_homepage.py::TestHome::test_that_featured_extensions_exist_on_the_home
[gw1] PASSED tests/desktop/test_homepage.py::TestHome::test_addons_author_link
tests/desktop/test_homepage.py::TestHome::test_that_checks_explore_side_navigation
[gw0] PASSED tests/desktop/test_homepage.py::TestHome::test_that_clicking_most_popular_shows_addons_sorted_by_users
tests/desktop/test_homepage.py::TestHome::test_that_clicking_featured_shows_addons_sorted_by_featured
[gw6] PASSED tests/desktop/test_homepage.py::TestHome::test_that_featured_extensions_exist_on_the_home
tests/desktop/test_layout.py::TestAmoLayout::test_other_applications_thunderbird
[gw7] PASSED tests/desktop/test_homepage.py::TestHome::test_that_checks_all_categories_side_navigation
tests/desktop/test_homepage.py::TestHome::test_that_checks_other_applications_menu
[gw3] PASSED tests/desktop/test_homepage.py::TestHome::test_top_three_items_in_each_site_navigation_menu_are_featured
tests/desktop/test_homepage.py::TestHome::test_up_and_coming_extensions
[gw4] PASSED tests/desktop/test_homepage.py::TestHome::test_that_items_menu_fly_out_while_hovering
tests/desktop/test_homepage.py::TestHome::test_that_clicking_top_rated_shows_addons_sorted_by_rating
[gw5] PASSED tests/desktop/test_homepage.py::TestHome::test_that_clicking_on_addon_name_loads_details_page
tests/desktop/test_installs.py::TestInstalls::test_could_install_theme
[gw2] PASSED tests/desktop/test_extensions.py::TestExtensions::test_pagination
[gw0] PASSED tests/desktop/test_homepage.py::TestHome::test_that_clicking_featured_shows_addons_sorted_by_featured
tests/desktop/test_extensions.py::TestExtensions::test_previous_button_is_disabled_on_the_first_page
tests/desktop/test_homepage.py::TestHome::test_header_site_navigation_menus_are_correct
[gw4] PASSED tests/desktop/test_homepage.py::TestHome::test_that_clicking_top_rated_shows_addons_sorted_by_rating
tests/desktop/test_layout.py::TestAmoLayout::test_the_applications_listed_in_other_applications[SeaMonkey]
[gw1] PASSED tests/desktop/test_homepage.py::TestHome::test_that_checks_explore_side_navigation
tests/desktop/test_homepage.py::TestHome::test_that_clicking_see_all_extensions_link_works
[gw6] PASSED tests/desktop/test_layout.py::TestAmoLayout::test_other_applications_thunderbird
tests/desktop/test_layout.py::TestAmoLayout::test_that_checks_amo_logo_text_layout_and_title
[gw7] PASSED tests/desktop/test_homepage.py::TestHome::test_that_checks_other_applications_menu
tests/desktop/test_layout.py::TestAmoLayout::test_that_clicking_the_amo_logo_loads_home_page
[gw5] PASSED tests/desktop/test_installs.py::TestInstalls::test_could_install_theme
tests/desktop/test_installs.py::TestInstalls::test_could_install_jetpack
[gw1] PASSED tests/desktop/test_homepage.py::TestHome::test_that_clicking_see_all_extensions_link_works
tests/desktop/test_paypal.py::TestPaypal::test_that_make_contribution_button_is_clickable_and_loads_paypal_frame_while_user_is_logged_out
[gw0] PASSED tests/desktop/test_homepage.py::TestHome::test_header_site_navigation_menus_are_correct
tests/desktop/test_paypal.py::TestPaypal::test_that_user_can_make_a_contribution_without_logging_into_amo
[gw6] PASSED tests/desktop/test_layout.py::TestAmoLayout::test_that_checks_amo_logo_text_layout_and_title
tests/desktop/test_paypal.py::TestPaypal::test_that_make_contribution_button_is_clickable_and_loads_paypal_frame_while_user_is_logged_in
[gw3] PASSED tests/desktop/test_homepage.py::TestHome::test_up_and_coming_extensions
tests/desktop/test_layout.py::TestAmoLayout::test_the_applications_listed_in_other_applications[Thunderbird]
[gw4] PASSED tests/desktop/test_layout.py::TestAmoLayout::test_the_applications_listed_in_other_applications[SeaMonkey]
tests/desktop/test_layout.py::TestAmoLayout::test_the_search_field_placeholder_and_search_button
[gw7] PASSED tests/desktop/test_layout.py::TestAmoLayout::test_that_clicking_the_amo_logo_loads_home_page
tests/desktop/test_layout.py::TestAmoLayout::test_that_other_applications_link_has_tooltip
[gw2] PASSED tests/desktop/test_extensions.py::TestExtensions::test_previous_button_is_disabled_on_the_first_page
tests/desktop/test_layout.py::TestAmoLayout::test_the_search_box_exist
[gw4] PASSED tests/desktop/test_layout.py::TestAmoLayout::test_the_search_field_placeholder_and_search_button
tests/desktop/test_search.py::TestSearch::test_that_various_search_terms_return_results[fox]
[gw5] PASSED tests/desktop/test_installs.py::TestInstalls::test_could_install_jetpack
[gw3] PASSED tests/desktop/test_layout.py::TestAmoLayout::test_the_applications_listed_in_other_applications[Thunderbird]
tests/desktop/test_layout.py::TestAmoLayout::test_the_applications_listed_in_other_applications[Android]
tests/desktop/test_reviews.py::TestReviews::test_that_all_reviews_hyperlink_works
[gw7] PASSED tests/desktop/test_layout.py::TestAmoLayout::test_that_other_applications_link_has_tooltip
tests/desktop/test_search.py::TestSearch::test_that_various_search_terms_return_results[]
[gw4] PASSED tests/desktop/test_search.py::TestSearch::test_that_various_search_terms_return_results[fox]
tests/desktop/test_search.py::TestSearch::test_that_various_search_terms_return_results[1]
[gw1] PASSED tests/desktop/test_paypal.py::TestPaypal::test_that_make_contribution_button_is_clickable_and_loads_paypal_frame_while_user_is_logged_out
tests/desktop/test_reviews.py::TestReviews::test_that_new_review_is_saved
[gw7] PASSED tests/desktop/test_search.py::TestSearch::test_that_various_search_terms_return_results[]
tests/desktop/test_search.py::TestSearch::test_sorting_by_downloads
[gw3] PASSED tests/desktop/test_layout.py::TestAmoLayout::test_the_applications_listed_in_other_applications[Android]
tests/desktop/test_search.py::TestSearch::test_that_searching_for_firebug_returns_firebug_as_first_result
[gw2] PASSED tests/desktop/test_layout.py::TestAmoLayout::test_the_search_box_exist
tests/desktop/test_paypal.py::TestPaypal::test_that_user_can_contribute_to_an_addon
[gw5] PASSED tests/desktop/test_reviews.py::TestReviews::test_that_all_reviews_hyperlink_works
tests/desktop/test_search.py::TestSearch::test_that_page_with_search_results_has_correct_title
[gw6] PASSED tests/desktop/test_paypal.py::TestPaypal::test_that_make_contribution_button_is_clickable_and_loads_paypal_frame_while_user_is_logged_in
tests/desktop/test_search.py::TestSearch::test_that_various_search_terms_return_results[\u0421\u043b\u043e\u0432\u0430\u0440\u0438 \u042f\u043d\u0434\u0435\u043a\u0441]
[gw3] PASSED tests/desktop/test_search.py::TestSearch::test_that_searching_for_firebug_returns_firebug_as_first_result
tests/desktop/test_search.py::TestSearch::test_that_searching_for_a_tag_returns_results
[gw0] PASSED tests/desktop/test_paypal.py::TestPaypal::test_that_user_can_make_a_contribution_without_logging_into_amo
tests/desktop/test_search.py::TestSearch::test_that_search_all_add_ons_results_have_pagination_that_moves_through_results
[gw7] PASSED tests/desktop/test_search.py::TestSearch::test_sorting_by_downloads
tests/desktop/test_search.py::TestSearch::test_sorting_by_number_of_most_users
[gw4] PASSED tests/desktop/test_search.py::TestSearch::test_that_various_search_terms_return_results[1]
tests/desktop/test_search.py::TestSearch::test_sorting_by_newest
[gw6] PASSED tests/desktop/test_search.py::TestSearch::test_that_various_search_terms_return_results[\u0421\u043b\u043e\u0432\u0430\u0440\u0438 \u042f\u043d\u0434\u0435\u043a\u0441]
tests/desktop/test_search.py::TestSearch::test_searching_for_themes
[gw1] PASSED tests/desktop/test_reviews.py::TestReviews::test_that_new_review_is_saved
tests/desktop/test_search.py::TestSearch::test_sorting_by_most_recently_updated
[gw3] PASSED tests/desktop/test_search.py::TestSearch::test_that_searching_for_a_tag_returns_results
tests/desktop/test_search.py::TestSearch::test_searching_for_complete_themes
[gw5] PASSED tests/desktop/test_search.py::TestSearch::test_that_page_with_search_results_has_correct_title
tests/desktop/test_search.py::TestSearch::test_searching_for_extensions
[gw7] PASSED tests/desktop/test_search.py::TestSearch::test_sorting_by_number_of_most_users
tests/desktop/test_statistics.py::TestStatistics::test_that_verifies_the_url_of_the_statistics_page
[gw6] PASSED tests/desktop/test_search.py::TestSearch::test_searching_for_themes
tests/desktop/test_themes.py::TestThemes::test_page_title_for_themes_landing_page
[gw2] PASSED tests/desktop/test_paypal.py::TestPaypal::test_that_user_can_contribute_to_an_addon
tests/desktop/test_search.py::TestSearch::test_that_search_results_return_20_results_per_page
[gw5] PASSED tests/desktop/test_search.py::TestSearch::test_searching_for_extensions
tests/desktop/test_themes.py::TestThemes::test_the_most_popular_section
[gw0] PASSED tests/desktop/test_search.py::TestSearch::test_that_search_all_add_ons_results_have_pagination_that_moves_through_results
tests/desktop/test_search.py::TestSearch::test_searching_for_collections
[gw7] PASSED tests/desktop/test_statistics.py::TestStatistics::test_that_verifies_the_url_of_the_statistics_page
tests/desktop/test_themes.py::TestThemes::test_the_top_rated_section
[gw4] PASSED tests/desktop/test_search.py::TestSearch::test_sorting_by_newest
tests/desktop/test_statistics.py::TestStatistics::test_that_checks_content_in_json_endpoints_from_statistics_urls
[gw6] PASSED tests/desktop/test_themes.py::TestThemes::test_page_title_for_themes_landing_page
tests/desktop/test_users_account.py::TestAccounts::test_user_can_login_and_logout
[gw4] PASSED tests/desktop/test_statistics.py::TestStatistics::test_that_checks_content_in_json_endpoints_from_statistics_urls
tests/mobile/test_extensions.py::TestExtensions::test_sort_by_region
[gw5] PASSED tests/desktop/test_themes.py::TestThemes::test_the_most_popular_section
tests/desktop/test_users_account.py::TestAccounts::test_user_can_access_the_view_profile_page
[gw1] PASSED tests/desktop/test_search.py::TestSearch::test_sorting_by_most_recently_updated
tests/desktop/test_themes.py::TestThemes::test_the_featured_themes_section
[gw0] PASSED tests/desktop/test_search.py::TestSearch::test_searching_for_collections
tests/desktop/test_users_account.py::TestAccounts::test_user_can_update_profile_information_in_account_settings_page
[gw7] PASSED tests/desktop/test_themes.py::TestThemes::test_the_top_rated_section
tests/mobile/test_details.py::TestDetails::test_that_contribute_button_is_not_present_on_the_mobile_page
[gw3] PASSED tests/desktop/test_search.py::TestSearch::test_searching_for_complete_themes
tests/desktop/test_themes.py::TestThemes::test_the_recently_added_section
[gw1] PASSED tests/desktop/test_themes.py::TestThemes::test_the_featured_themes_section
tests/mobile/test_home.py::TestHome::test_that_checks_the_firefox_logo
[gw4] FAILED tests/mobile/test_extensions.py::TestExtensions::test_sort_by_region
tests/mobile/test_home.py::TestHome::test_that_checks_header_text_and_page_title
[gw1] PASSED tests/mobile/test_home.py::TestHome::test_that_checks_the_firefox_logo
tests/mobile/test_home.py::TestHome::test_expandable_header
[gw2] PASSED tests/desktop/test_search.py::TestSearch::test_that_search_results_return_20_results_per_page
tests/desktop/test_users_account.py::TestAccounts::test_user_can_access_the_edit_profile_page
[gw4] FAILED tests/mobile/test_home.py::TestHome::test_that_checks_header_text_and_page_title
tests/mobile/test_home.py::TestHome::test_that_checks_the_tabs
[gw5] PASSED tests/desktop/test_users_account.py::TestAccounts::test_user_can_access_the_view_profile_page
[gw7] FAILED tests/mobile/test_details.py::TestDetails::test_that_contribute_button_is_not_present_on_the_mobile_page
[gw3] PASSED tests/desktop/test_themes.py::TestThemes::test_the_recently_added_section
[gw2] PASSED tests/desktop/test_users_account.py::TestAccounts::test_user_can_access_the_edit_profile_page
[gw1] FAILED tests/mobile/test_home.py::TestHome::test_expandable_header
[gw6] PASSED tests/desktop/test_users_account.py::TestAccounts::test_user_can_login_and_logout
[gw4] FAILED tests/mobile/test_home.py::TestHome::test_that_checks_the_tabs
[gw0] PASSED tests/desktop/test_users_account.py::TestAccounts::test_user_can_update_profile_information_in_account_settings_page
tests/mobile/test_home.py::TestHome::test_the_amo_logo_text_and_title
tests/mobile/test_home.py::TestHome::test_that_checks_learn_more_link
tests/mobile/test_home.py::TestHome::test_that_checks_the_desktop_version_link
tests/mobile/test_home.py::TestHome::test_that_checks_the_search_box_and_button
tests/mobile/test_home.py::TestHome::test_all_featured_extensions_link
tests/mobile/test_home.py::TestHome::test_category_items
tests/mobile/test_search.py::TestSearch::test_that_search_returns_results
tests/mobile/test_home.py::TestHome::test_that_checks_the_footer_items
[gw0] PASSED tests/mobile/test_home.py::TestHome::test_that_checks_the_footer_items
[gw1] FAILED tests/mobile/test_home.py::TestHome::test_the_amo_logo_text_and_title
[gw3] PASSED tests/mobile/test_home.py::TestHome::test_that_checks_the_search_box_and_button
[gw5] FAILED tests/mobile/test_home.py::TestHome::test_that_checks_learn_more_link
[gw2] FAILED tests/mobile/test_home.py::TestHome::test_category_items
[gw7] FAILED tests/mobile/test_home.py::TestHome::test_all_featured_extensions_link
[gw4] FAILED tests/mobile/test_search.py::TestSearch::test_that_search_returns_results
[gw6] FAILED tests/mobile/test_home.py::TestHome::test_that_checks_the_desktop_version_link
------- generated xml file: /Users/sdonner/Addon-Tests/results/junit.xml -------
------ generated html file: /Users/sdonner/Addon-Tests/results/index.html ------
=========================== short test summary info ============================
FAIL tests/desktop/test_extensions.py::TestExtensions::()::test_that_checks_if_the_extensions_are_sorted_by_recently_updated
FAIL tests/mobile/test_extensions.py::TestExtensions::()::test_sort_by_region
FAIL tests/mobile/test_home.py::TestHome::()::test_that_checks_header_text_and_page_title
FAIL tests/mobile/test_details.py::TestDetails::()::test_that_contribute_button_is_not_present_on_the_mobile_page
FAIL tests/mobile/test_home.py::TestHome::()::test_expandable_header
FAIL tests/mobile/test_home.py::TestHome::()::test_that_checks_the_tabs
FAIL tests/mobile/test_home.py::TestHome::()::test_the_amo_logo_text_and_title
FAIL tests/mobile/test_home.py::TestHome::()::test_that_checks_learn_more_link
FAIL tests/mobile/test_home.py::TestHome::()::test_category_items
FAIL tests/mobile/test_home.py::TestHome::()::test_all_featured_extensions_link
FAIL tests/mobile/test_search.py::TestSearch::()::test_that_search_returns_results
FAIL tests/mobile/test_home.py::TestHome::()::test_that_checks_the_desktop_version_link
=================================== FAILURES ===================================
TestExtensions.test_that_checks_if_the_extensions_are_sorted_by_recently_updated
[gw3] darwin -- Python 2.7.11 /Users/sdonner/Addon-Tests/.tox/tests/bin/python
[XPASS(strict)] https://github.com/mozilla/addons-server/issues/1986
------------------------------- pytest-selenium --------------------------------
URL: https://addons-dev.allizom.org/en-US/firefox/extensions/?sort=updated&page=2
______________________ TestExtensions.test_sort_by_region ______________________
[gw4] darwin -- Python 2.7.11 /Users/sdonner/Addon-Tests/.tox/tests/bin/python
self = <tests.mobile.test_extensions.TestExtensions instance at 0x1096d92d8>
base_url = 'https://addons-dev.allizom.org'
selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="81b323db-e445-244a-9b06-41a25dd655bf")>
@pytest.mark.nondestructive
def test_sort_by_region(self, base_url, selenium):
home = Home(base_url, selenium)
> extensions_page = home.click_all_featured_addons_link()
tests/mobile/test_extensions.py:17:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/mobile/home.py:86: in click_all_featured_addons_link
self.scroll_to_element(*self._all_featured_addons_locator)
pages/mobile/base.py:13: in scroll_to_element
el = self.selenium.find_element(*locator)
.tox/tests/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py:752: in find_element
'value': value})['value']
.tox/tests/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py:236: in execute
self.error_handler.check_response(response)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x102341110>
response = {'status': 500, 'value': '{"name":"findElement","sessionId":"81b323db-e445-244a-9b06-41a25dd655bf","status":7,"value":.../T/tmpZrlwwb/extensions/fxdriver@googlecode.com/components/driver-component.js","lineNumber":625,"columnNumber":5}]}}'}
def check_response(self, response):
"""
Checks that a JSON response from the WebDriver does not have an error.
:Args:
- response - The JSON response from the WebDriver server as a dictionary
object.
:Raises: If the response contains an error message.
"""
status = response.get('status', None)
if status is None or status == ErrorCode.SUCCESS:
return
value = None
message = response.get("message", "")
screen = response.get("screen", "")
stacktrace = None
if isinstance(status, int):
value_json = response.get('value', None)
if value_json and isinstance(value_json, basestring):
import json
try:
value = json.loads(value_json)
status = value.get('error', None)
if status is None:
status = value["status"]
message = value["value"]
if not isinstance(message, basestring):
value = message
try:
message = message['message']
except TypeError:
message = None
else:
message = value.get('message', None)
except ValueError:
pass
exception_class = ErrorInResponseException
if status in ErrorCode.NO_SUCH_ELEMENT:
exception_class = NoSuchElementException
elif status in ErrorCode.NO_SUCH_FRAME:
exception_class = NoSuchFrameException
elif status in ErrorCode.NO_SUCH_WINDOW:
exception_class = NoSuchWindowException
elif status in ErrorCode.STALE_ELEMENT_REFERENCE:
exception_class = StaleElementReferenceException
elif status in ErrorCode.ELEMENT_NOT_VISIBLE:
exception_class = ElementNotVisibleException
elif status in ErrorCode.INVALID_ELEMENT_STATE:
exception_class = InvalidElementStateException
elif status in ErrorCode.INVALID_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR_RETURN_TYPER:
exception_class = InvalidSelectorException
elif status in ErrorCode.ELEMENT_IS_NOT_SELECTABLE:
exception_class = ElementNotSelectableException
elif status in ErrorCode.INVALID_COOKIE_DOMAIN:
exception_class = WebDriverException
elif status in ErrorCode.UNABLE_TO_SET_COOKIE:
exception_class = WebDriverException
elif status in ErrorCode.TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.SCRIPT_TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.UNKNOWN_ERROR:
exception_class = WebDriverException
elif status in ErrorCode.UNEXPECTED_ALERT_OPEN:
exception_class = UnexpectedAlertPresentException
elif status in ErrorCode.NO_ALERT_OPEN:
exception_class = NoAlertPresentException
elif status in ErrorCode.IME_NOT_AVAILABLE:
exception_class = ImeNotAvailableException
elif status in ErrorCode.IME_ENGINE_ACTIVATION_FAILED:
exception_class = ImeActivationFailedException
elif status in ErrorCode.MOVE_TARGET_OUT_OF_BOUNDS:
exception_class = MoveTargetOutOfBoundsException
else:
exception_class = WebDriverException
if value == '' or value is None:
value = response['value']
if isinstance(value, basestring):
if exception_class == ErrorInResponseException:
raise exception_class(response, value)
raise exception_class(value)
if message == "" and 'message' in value:
message = value['message']
screen = None
if 'screen' in value:
screen = value['screen']
stacktrace = None
if 'stackTrace' in value and value['stackTrace']:
stacktrace = []
try:
for frame in value['stackTrace']:
line = self._value_or_default(frame, 'lineNumber', '')
file = self._value_or_default(frame, 'fileName', '<anonymous>')
if line:
file = "%s:%s" % (file, line)
meth = self._value_or_default(frame, 'methodName', '<anonymous>')
if 'className' in frame:
meth = "%s.%s" % (frame['className'], meth)
msg = " at %s (%s)"
msg = msg % (meth, file)
stacktrace.append(msg)
except TypeError:
pass
if exception_class == ErrorInResponseException:
raise exception_class(response, message)
elif exception_class == UnexpectedAlertPresentException and 'alert' in value:
raise exception_class(message, screen, stacktrace, value['alert'].get('text'))
> raise exception_class(message, screen, stacktrace)
E NoSuchElementException: Message: Unable to locate element: {"method":"css selector","selector":"#list-featured > li > a"}
E Stacktrace:
E at FirefoxDriver.prototype.findElementInternal_ (file:///var/folders/71/xwvgn8dn2lb92t1vqhf1tpb80000gn/T/tmpZrlwwb/extensions/fxdriver@googlecode.com/components/driver-component.js:10770)
E at fxdriver.Timer.prototype.setTimeout/<.notify (file:///var/folders/71/xwvgn8dn2lb92t1vqhf1tpb80000gn/T/tmpZrlwwb/extensions/fxdriver@googlecode.com/components/driver-component.js:625)
.tox/tests/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py:192: NoSuchElementException
------------------------------- pytest-selenium --------------------------------
URL: https://addons-dev.allizom.org/en-US/firefox/
_____________ TestHome.test_that_checks_header_text_and_page_title _____________
[gw4] darwin -- Python 2.7.11 /Users/sdonner/Addon-Tests/.tox/tests/bin/python
self = <tests.mobile.test_home.TestHome instance at 0x1097ca290>
base_url = 'https://addons-dev.allizom.org'
selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="1f9b3784-c68b-a14d-b1ec-bf8fb788bc8c")>
@pytest.mark.nondestructive
def test_that_checks_header_text_and_page_title(self, base_url, selenium):
home = Home(base_url, selenium)
assert home.is_the_current_page
> assert 'ADD-ONS' == home.header_text
E assert 'ADD-ONS' == 'Add-ons'
E - ADD-ONS
E + Add-ons
tests/mobile/test_home.py:34: AssertionError
------------------------------- pytest-selenium --------------------------------
URL: https://addons-dev.allizom.org/en-US/firefox/
__ TestDetails.test_that_contribute_button_is_not_present_on_the_mobile_page ___
[gw7] darwin -- Python 2.7.11 /Users/sdonner/Addon-Tests/.tox/tests/bin/python
self = <tests.mobile.test_details.TestDetails instance at 0x106748290>
base_url = 'https://addons-dev.allizom.org'
selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="b806df66-f9cd-1647-99ee-0acd38ae67f8")>
@pytest.mark.nondestructive
def test_that_contribute_button_is_not_present_on_the_mobile_page(self, base_url, selenium):
details_page = Details(base_url, selenium, 'MemChaser')
> assert details_page.is_the_current_page
tests/mobile/test_details.py:15:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/page.py:50: in is_the_current_page
"Expected page title: %s. Actual page title: %s" % (self._page_title, self.selenium.title))
pages/mobile/details.py:28: in _page_title
return "%s :: Add-ons for Firefox" % self.title
pages/mobile/details.py:32: in title
return self.selenium.find_element(*self._title_locator).text
.tox/tests/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py:752: in find_element
'value': value})['value']
.tox/tests/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py:236: in execute
self.error_handler.check_response(response)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x10673d950>
response = {'status': 500, 'value': '{"name":"findElement","sessionId":"b806df66-f9cd-1647-99ee-0acd38ae67f8","status":7,"value":.../T/tmpUDsG_B/extensions/fxdriver@googlecode.com/components/driver-component.js","lineNumber":625,"columnNumber":5}]}}'}
def check_response(self, response):
"""
Checks that a JSON response from the WebDriver does not have an error.
:Args:
- response - The JSON response from the WebDriver server as a dictionary
object.
:Raises: If the response contains an error message.
"""
status = response.get('status', None)
if status is None or status == ErrorCode.SUCCESS:
return
value = None
message = response.get("message", "")
screen = response.get("screen", "")
stacktrace = None
if isinstance(status, int):
value_json = response.get('value', None)
if value_json and isinstance(value_json, basestring):
import json
try:
value = json.loads(value_json)
status = value.get('error', None)
if status is None:
status = value["status"]
message = value["value"]
if not isinstance(message, basestring):
value = message
try:
message = message['message']
except TypeError:
message = None
else:
message = value.get('message', None)
except ValueError:
pass
exception_class = ErrorInResponseException
if status in ErrorCode.NO_SUCH_ELEMENT:
exception_class = NoSuchElementException
elif status in ErrorCode.NO_SUCH_FRAME:
exception_class = NoSuchFrameException
elif status in ErrorCode.NO_SUCH_WINDOW:
exception_class = NoSuchWindowException
elif status in ErrorCode.STALE_ELEMENT_REFERENCE:
exception_class = StaleElementReferenceException
elif status in ErrorCode.ELEMENT_NOT_VISIBLE:
exception_class = ElementNotVisibleException
elif status in ErrorCode.INVALID_ELEMENT_STATE:
exception_class = InvalidElementStateException
elif status in ErrorCode.INVALID_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR_RETURN_TYPER:
exception_class = InvalidSelectorException
elif status in ErrorCode.ELEMENT_IS_NOT_SELECTABLE:
exception_class = ElementNotSelectableException
elif status in ErrorCode.INVALID_COOKIE_DOMAIN:
exception_class = WebDriverException
elif status in ErrorCode.UNABLE_TO_SET_COOKIE:
exception_class = WebDriverException
elif status in ErrorCode.TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.SCRIPT_TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.UNKNOWN_ERROR:
exception_class = WebDriverException
elif status in ErrorCode.UNEXPECTED_ALERT_OPEN:
exception_class = UnexpectedAlertPresentException
elif status in ErrorCode.NO_ALERT_OPEN:
exception_class = NoAlertPresentException
elif status in ErrorCode.IME_NOT_AVAILABLE:
exception_class = ImeNotAvailableException
elif status in ErrorCode.IME_ENGINE_ACTIVATION_FAILED:
exception_class = ImeActivationFailedException
elif status in ErrorCode.MOVE_TARGET_OUT_OF_BOUNDS:
exception_class = MoveTargetOutOfBoundsException
else:
exception_class = WebDriverException
if value == '' or value is None:
value = response['value']
if isinstance(value, basestring):
if exception_class == ErrorInResponseException:
raise exception_class(response, value)
raise exception_class(value)
if message == "" and 'message' in value:
message = value['message']
screen = None
if 'screen' in value:
screen = value['screen']
stacktrace = None
if 'stackTrace' in value and value['stackTrace']:
stacktrace = []
try:
for frame in value['stackTrace']:
line = self._value_or_default(frame, 'lineNumber', '')
file = self._value_or_default(frame, 'fileName', '<anonymous>')
if line:
file = "%s:%s" % (file, line)
meth = self._value_or_default(frame, 'methodName', '<anonymous>')
if 'className' in frame:
meth = "%s.%s" % (frame['className'], meth)
msg = " at %s (%s)"
msg = msg % (meth, file)
stacktrace.append(msg)
except TypeError:
pass
if exception_class == ErrorInResponseException:
raise exception_class(response, message)
elif exception_class == UnexpectedAlertPresentException and 'alert' in value:
raise exception_class(message, screen, stacktrace, value['alert'].get('text'))
> raise exception_class(message, screen, stacktrace)
E NoSuchElementException: Message: Unable to locate element: {"method":"css selector","selector":"div.infobox > h3"}
E Stacktrace:
E at FirefoxDriver.prototype.findElementInternal_ (file:///var/folders/71/xwvgn8dn2lb92t1vqhf1tpb80000gn/T/tmpUDsG_B/extensions/fxdriver@googlecode.com/components/driver-component.js:10770)
E at fxdriver.Timer.prototype.setTimeout/<.notify (file:///var/folders/71/xwvgn8dn2lb92t1vqhf1tpb80000gn/T/tmpUDsG_B/extensions/fxdriver@googlecode.com/components/driver-component.js:625)
.tox/tests/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py:192: NoSuchElementException
------------------------------- pytest-selenium --------------------------------
URL: https://addons-dev.allizom.org/en-US/firefox/addon/memchaser/
_______________________ TestHome.test_expandable_header ________________________
[gw1] darwin -- Python 2.7.11 /Users/sdonner/Addon-Tests/.tox/tests/bin/python
self = <tests.mobile.test_home.TestHome instance at 0x102d25950>
base_url = 'https://addons-dev.allizom.org'
selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="855e0e75-decd-3e47-b800-e974ecb9b068")>
@pytest.mark.nondestructive
def test_expandable_header(self, base_url, selenium):
home = Home(base_url, selenium)
> home.header.click_header_menu()
tests/mobile/test_home.py:89:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/mobile/base.py:63: in click_header_menu
self.selenium.find_element(*self._menu_button_locator).click()
.tox/tests/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py:752: in find_element
'value': value})['value']
.tox/tests/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py:236: in execute
self.error_handler.check_response(response)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x102d247d0>
response = {'status': 500, 'value': '{"name":"findElement","sessionId":"855e0e75-decd-3e47-b800-e974ecb9b068","status":7,"value":.../T/tmpmgOwmO/extensions/fxdriver@googlecode.com/components/driver-component.js","lineNumber":625,"columnNumber":5}]}}'}
def check_response(self, response):
"""
Checks that a JSON response from the WebDriver does not have an error.
:Args:
- response - The JSON response from the WebDriver server as a dictionary
object.
:Raises: If the response contains an error message.
"""
status = response.get('status', None)
if status is None or status == ErrorCode.SUCCESS:
return
value = None
message = response.get("message", "")
screen = response.get("screen", "")
stacktrace = None
if isinstance(status, int):
value_json = response.get('value', None)
if value_json and isinstance(value_json, basestring):
import json
try:
value = json.loads(value_json)
status = value.get('error', None)
if status is None:
status = value["status"]
message = value["value"]
if not isinstance(message, basestring):
value = message
try:
message = message['message']
except TypeError:
message = None
else:
message = value.get('message', None)
except ValueError:
pass
exception_class = ErrorInResponseException
if status in ErrorCode.NO_SUCH_ELEMENT:
exception_class = NoSuchElementException
elif status in ErrorCode.NO_SUCH_FRAME:
exception_class = NoSuchFrameException
elif status in ErrorCode.NO_SUCH_WINDOW:
exception_class = NoSuchWindowException
elif status in ErrorCode.STALE_ELEMENT_REFERENCE:
exception_class = StaleElementReferenceException
elif status in ErrorCode.ELEMENT_NOT_VISIBLE:
exception_class = ElementNotVisibleException
elif status in ErrorCode.INVALID_ELEMENT_STATE:
exception_class = InvalidElementStateException
elif status in ErrorCode.INVALID_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR_RETURN_TYPER:
exception_class = InvalidSelectorException
elif status in ErrorCode.ELEMENT_IS_NOT_SELECTABLE:
exception_class = ElementNotSelectableException
elif status in ErrorCode.INVALID_COOKIE_DOMAIN:
exception_class = WebDriverException
elif status in ErrorCode.UNABLE_TO_SET_COOKIE:
exception_class = WebDriverException
elif status in ErrorCode.TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.SCRIPT_TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.UNKNOWN_ERROR:
exception_class = WebDriverException
elif status in ErrorCode.UNEXPECTED_ALERT_OPEN:
exception_class = UnexpectedAlertPresentException
elif status in ErrorCode.NO_ALERT_OPEN:
exception_class = NoAlertPresentException
elif status in ErrorCode.IME_NOT_AVAILABLE:
exception_class = ImeNotAvailableException
elif status in ErrorCode.IME_ENGINE_ACTIVATION_FAILED:
exception_class = ImeActivationFailedException
elif status in ErrorCode.MOVE_TARGET_OUT_OF_BOUNDS:
exception_class = MoveTargetOutOfBoundsException
else:
exception_class = WebDriverException
if value == '' or value is None:
value = response['value']
if isinstance(value, basestring):
if exception_class == ErrorInResponseException:
raise exception_class(response, value)
raise exception_class(value)
if message == "" and 'message' in value:
message = value['message']
screen = None
if 'screen' in value:
screen = value['screen']
stacktrace = None
if 'stackTrace' in value and value['stackTrace']:
stacktrace = []
try:
for frame in value['stackTrace']:
line = self._value_or_default(frame, 'lineNumber', '')
file = self._value_or_default(frame, 'fileName', '<anonymous>')
if line:
file = "%s:%s" % (file, line)
meth = self._value_or_default(frame, 'methodName', '<anonymous>')
if 'className' in frame:
meth = "%s.%s" % (frame['className'], meth)
msg = " at %s (%s)"
msg = msg % (meth, file)
stacktrace.append(msg)
except TypeError:
pass
if exception_class == ErrorInResponseException:
raise exception_class(response, message)
elif exception_class == UnexpectedAlertPresentException and 'alert' in value:
raise exception_class(message, screen, stacktrace, value['alert'].get('text'))
> raise exception_class(message, screen, stacktrace)
E NoSuchElementException: Message: Unable to locate element: {"method":"css selector","selector":".tab > a"}
E Stacktrace:
E at FirefoxDriver.prototype.findElementInternal_ (file:///var/folders/71/xwvgn8dn2lb92t1vqhf1tpb80000gn/T/tmpmgOwmO/extensions/fxdriver@googlecode.com/components/driver-component.js:10770)
E at fxdriver.Timer.prototype.setTimeout/<.notify (file:///var/folders/71/xwvgn8dn2lb92t1vqhf1tpb80000gn/T/tmpmgOwmO/extensions/fxdriver@googlecode.com/components/driver-component.js:625)
.tox/tests/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py:192: NoSuchElementException
------------------------------- pytest-selenium --------------------------------
URL: https://addons-dev.allizom.org/en-US/firefox/
______________________ TestHome.test_that_checks_the_tabs ______________________
[gw4] darwin -- Python 2.7.11 /Users/sdonner/Addon-Tests/.tox/tests/bin/python
self = <tests.mobile.test_home.TestHome instance at 0x10980c7a0>
base_url = 'https://addons-dev.allizom.org'
selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="b3f82627-f8a1-f34a-af5b-ab91fc5f30aa")>
def test_that_checks_the_tabs(self, base_url, selenium):
home = Home(base_url, selenium)
assert home.is_the_current_page
> assert 3 == len(home.tabs)
E assert 3 == 0
E + where 0 = len([])
E + where [] = <pages.mobile.home.Home object at 0x106dd4210>.tabs
tests/mobile/test_home.py:97: AssertionError
------------------------------- pytest-selenium --------------------------------
URL: https://addons-dev.allizom.org/en-US/firefox/
__________________ TestHome.test_the_amo_logo_text_and_title ___________________
[gw1] darwin -- Python 2.7.11 /Users/sdonner/Addon-Tests/.tox/tests/bin/python
self = <tests.mobile.test_home.TestHome instance at 0x102d54ab8>
base_url = 'https://addons-dev.allizom.org'
selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="9ddb35aa-c876-8041-b0b4-2d414f055ac6")>
@pytest.mark.nondestructive
def test_the_amo_logo_text_and_title(self, base_url, selenium):
home = Home(base_url, selenium)
assert home.is_the_current_page
assert 'Return to the Firefox Add-ons homepage', home.logo_title
assert 'ADD-ONS', home.logo_text
> assert '/img/zamboni/app_icons/firefox.png' in home.logo_image_src
E assert '/img/zamboni/app_icons/firefox.png' in 'https://addons-dev-cdn.allizom.org/static/img/icons/firefox.png?b=81c080b-57ebbcbe'
E + where 'https://addons-dev-cdn.allizom.org/static/img/icons/firefox.png?b=81c080b-57ebbcbe' = <pages.mobile.home.Home object at 0x102d55450>.logo_image_src
tests/mobile/test_home.py:117: AssertionError
------------------------------- pytest-selenium --------------------------------
URL: https://addons-dev.allizom.org/en-US/firefox/
__________________ TestHome.test_that_checks_learn_more_link ___________________
[gw5] darwin -- Python 2.7.11 /Users/sdonner/Addon-Tests/.tox/tests/bin/python
self = <tests.mobile.test_home.TestHome instance at 0x106c7d290>
base_url = 'https://addons-dev.allizom.org'
selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="181fc4d9-2876-5f4b-84e2-df00bb862e2a")>
@pytest.mark.nondestructive
def test_that_checks_learn_more_link(self, base_url, selenium):
home = Home(base_url, selenium)
assert home.is_the_current_page
> assert u'Learn More\xbb' == home.learn_more_text
tests/mobile/test_home.py:42:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/mobile/home.py:72: in learn_more_text
return self.selenium.find_element(*self._learn_more_locator).text
.tox/tests/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py:752: in find_element
'value': value})['value']
.tox/tests/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py:236: in execute
self.error_handler.check_response(response)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x106c91210>
response = {'status': 500, 'value': '{"name":"findElement","sessionId":"181fc4d9-2876-5f4b-84e2-df00bb862e2a","status":7,"value":.../T/tmpfK2f4I/extensions/fxdriver@googlecode.com/components/driver-component.js","lineNumber":625,"columnNumber":5}]}}'}
def check_response(self, response):
"""
Checks that a JSON response from the WebDriver does not have an error.
:Args:
- response - The JSON response from the WebDriver server as a dictionary
object.
:Raises: If the response contains an error message.
"""
status = response.get('status', None)
if status is None or status == ErrorCode.SUCCESS:
return
value = None
message = response.get("message", "")
screen = response.get("screen", "")
stacktrace = None
if isinstance(status, int):
value_json = response.get('value', None)
if value_json and isinstance(value_json, basestring):
import json
try:
value = json.loads(value_json)
status = value.get('error', None)
if status is None:
status = value["status"]
message = value["value"]
if not isinstance(message, basestring):
value = message
try:
message = message['message']
except TypeError:
message = None
else:
message = value.get('message', None)
except ValueError:
pass
exception_class = ErrorInResponseException
if status in ErrorCode.NO_SUCH_ELEMENT:
exception_class = NoSuchElementException
elif status in ErrorCode.NO_SUCH_FRAME:
exception_class = NoSuchFrameException
elif status in ErrorCode.NO_SUCH_WINDOW:
exception_class = NoSuchWindowException
elif status in ErrorCode.STALE_ELEMENT_REFERENCE:
exception_class = StaleElementReferenceException
elif status in ErrorCode.ELEMENT_NOT_VISIBLE:
exception_class = ElementNotVisibleException
elif status in ErrorCode.INVALID_ELEMENT_STATE:
exception_class = InvalidElementStateException
elif status in ErrorCode.INVALID_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR_RETURN_TYPER:
exception_class = InvalidSelectorException
elif status in ErrorCode.ELEMENT_IS_NOT_SELECTABLE:
exception_class = ElementNotSelectableException
elif status in ErrorCode.INVALID_COOKIE_DOMAIN:
exception_class = WebDriverException
elif status in ErrorCode.UNABLE_TO_SET_COOKIE:
exception_class = WebDriverException
elif status in ErrorCode.TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.SCRIPT_TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.UNKNOWN_ERROR:
exception_class = WebDriverException
elif status in ErrorCode.UNEXPECTED_ALERT_OPEN:
exception_class = UnexpectedAlertPresentException
elif status in ErrorCode.NO_ALERT_OPEN:
exception_class = NoAlertPresentException
elif status in ErrorCode.IME_NOT_AVAILABLE:
exception_class = ImeNotAvailableException
elif status in ErrorCode.IME_ENGINE_ACTIVATION_FAILED:
exception_class = ImeActivationFailedException
elif status in ErrorCode.MOVE_TARGET_OUT_OF_BOUNDS:
exception_class = MoveTargetOutOfBoundsException
else:
exception_class = WebDriverException
if value == '' or value is None:
value = response['value']
if isinstance(value, basestring):
if exception_class == ErrorInResponseException:
raise exception_class(response, value)
raise exception_class(value)
if message == "" and 'message' in value:
message = value['message']
screen = None
if 'screen' in value:
screen = value['screen']
stacktrace = None
if 'stackTrace' in value and value['stackTrace']:
stacktrace = []
try:
for frame in value['stackTrace']:
line = self._value_or_default(frame, 'lineNumber', '')
file = self._value_or_default(frame, 'fileName', '<anonymous>')
if line:
file = "%s:%s" % (file, line)
meth = self._value_or_default(frame, 'methodName', '<anonymous>')
if 'className' in frame:
meth = "%s.%s" % (frame['className'], meth)
msg = " at %s (%s)"
msg = msg % (meth, file)
stacktrace.append(msg)
except TypeError:
pass
if exception_class == ErrorInResponseException:
raise exception_class(response, message)
elif exception_class == UnexpectedAlertPresentException and 'alert' in value:
raise exception_class(message, screen, stacktrace, value['alert'].get('text'))
> raise exception_class(message, screen, stacktrace)
E NoSuchElementException: Message: Unable to locate element: {"method":"css selector","selector":"#learnmore"}
E Stacktrace:
E at FirefoxDriver.prototype.findElementInternal_ (file:///var/folders/71/xwvgn8dn2lb92t1vqhf1tpb80000gn/T/tmpfK2f4I/extensions/fxdriver@googlecode.com/components/driver-component.js:10770)
E at fxdriver.Timer.prototype.setTimeout/<.notify (file:///var/folders/71/xwvgn8dn2lb92t1vqhf1tpb80000gn/T/tmpfK2f4I/extensions/fxdriver@googlecode.com/components/driver-component.js:625)
.tox/tests/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py:192: NoSuchElementException
------------------------------- pytest-selenium --------------------------------
URL: https://addons-dev.allizom.org/en-US/firefox/
_________________________ TestHome.test_category_items _________________________
[gw2] darwin -- Python 2.7.11 /Users/sdonner/Addon-Tests/.tox/tests/bin/python
self = <tests.mobile.test_home.TestHome instance at 0x1096c2a28>
base_url = 'https://addons-dev.allizom.org'
selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="a12886b7-1f21-4949-b534-25712af93d4f")>
@pytest.mark.nondestructive
def test_category_items(self, base_url, selenium):
home = Home(base_url, selenium)
> home.tab('Categories').click()
E AttributeError: 'NoneType' object has no attribute 'click'
tests/mobile/test_home.py:123: AttributeError
------------------------------- pytest-selenium --------------------------------
URL: https://addons-dev.allizom.org/en-US/firefox/
__________________ TestHome.test_all_featured_extensions_link __________________
[gw7] darwin -- Python 2.7.11 /Users/sdonner/Addon-Tests/.tox/tests/bin/python
self = <tests.mobile.test_home.TestHome instance at 0x106923638>
base_url = 'https://addons-dev.allizom.org'
selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="c18ee408-32c0-2349-ad6e-3cde942a36cb")>
@pytest.mark.nondestructive
def test_all_featured_extensions_link(self, base_url, selenium):
home = Home(base_url, selenium)
assert home.is_the_current_page
> assert 'Featured' == home.default_selected_tab_text
tests/mobile/test_home.py:71:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/mobile/home.py:95: in default_selected_tab_text
return self.selenium.find_element(*self._default_selected_tab_locator).text
.tox/tests/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py:752: in find_element
'value': value})['value']
.tox/tests/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py:236: in execute
self.error_handler.check_response(response)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x1067a6450>
response = {'status': 500, 'value': '{"name":"findElement","sessionId":"c18ee408-32c0-2349-ad6e-3cde942a36cb","status":7,"value":.../T/tmpNxvI_6/extensions/fxdriver@googlecode.com/components/driver-component.js","lineNumber":625,"columnNumber":5}]}}'}
def check_response(self, response):
"""
Checks that a JSON response from the WebDriver does not have an error.
:Args:
- response - The JSON response from the WebDriver server as a dictionary
object.
:Raises: If the response contains an error message.
"""
status = response.get('status', None)
if status is None or status == ErrorCode.SUCCESS:
return
value = None
message = response.get("message", "")
screen = response.get("screen", "")
stacktrace = None
if isinstance(status, int):
value_json = response.get('value', None)
if value_json and isinstance(value_json, basestring):
import json
try:
value = json.loads(value_json)
status = value.get('error', None)
if status is None:
status = value["status"]
message = value["value"]
if not isinstance(message, basestring):
value = message
try:
message = message['message']
except TypeError:
message = None
else:
message = value.get('message', None)
except ValueError:
pass
exception_class = ErrorInResponseException
if status in ErrorCode.NO_SUCH_ELEMENT:
exception_class = NoSuchElementException
elif status in ErrorCode.NO_SUCH_FRAME:
exception_class = NoSuchFrameException
elif status in ErrorCode.NO_SUCH_WINDOW:
exception_class = NoSuchWindowException
elif status in ErrorCode.STALE_ELEMENT_REFERENCE:
exception_class = StaleElementReferenceException
elif status in ErrorCode.ELEMENT_NOT_VISIBLE:
exception_class = ElementNotVisibleException
elif status in ErrorCode.INVALID_ELEMENT_STATE:
exception_class = InvalidElementStateException
elif status in ErrorCode.INVALID_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR_RETURN_TYPER:
exception_class = InvalidSelectorException
elif status in ErrorCode.ELEMENT_IS_NOT_SELECTABLE:
exception_class = ElementNotSelectableException
elif status in ErrorCode.INVALID_COOKIE_DOMAIN:
exception_class = WebDriverException
elif status in ErrorCode.UNABLE_TO_SET_COOKIE:
exception_class = WebDriverException
elif status in ErrorCode.TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.SCRIPT_TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.UNKNOWN_ERROR:
exception_class = WebDriverException
elif status in ErrorCode.UNEXPECTED_ALERT_OPEN:
exception_class = UnexpectedAlertPresentException
elif status in ErrorCode.NO_ALERT_OPEN:
exception_class = NoAlertPresentException
elif status in ErrorCode.IME_NOT_AVAILABLE:
exception_class = ImeNotAvailableException
elif status in ErrorCode.IME_ENGINE_ACTIVATION_FAILED:
exception_class = ImeActivationFailedException
elif status in ErrorCode.MOVE_TARGET_OUT_OF_BOUNDS:
exception_class = MoveTargetOutOfBoundsException
else:
exception_class = WebDriverException
if value == '' or value is None:
value = response['value']
if isinstance(value, basestring):
if exception_class == ErrorInResponseException:
raise exception_class(response, value)
raise exception_class(value)
if message == "" and 'message' in value:
message = value['message']
screen = None
if 'screen' in value:
screen = value['screen']
stacktrace = None
if 'stackTrace' in value and value['stackTrace']:
stacktrace = []
try:
for frame in value['stackTrace']:
line = self._value_or_default(frame, 'lineNumber', '')
file = self._value_or_default(frame, 'fileName', '<anonymous>')
if line:
file = "%s:%s" % (file, line)
meth = self._value_or_default(frame, 'methodName', '<anonymous>')
if 'className' in frame:
meth = "%s.%s" % (frame['className'], meth)
msg = " at %s (%s)"
msg = msg % (meth, file)
stacktrace.append(msg)
except TypeError:
pass
if exception_class == ErrorInResponseException:
raise exception_class(response, message)
elif exception_class == UnexpectedAlertPresentException and 'alert' in value:
raise exception_class(message, screen, stacktrace, value['alert'].get('text'))
> raise exception_class(message, screen, stacktrace)
E NoSuchElementException: Message: Unable to locate element: {"method":"css selector","selector":"li.selected a"}
E Stacktrace:
E at FirefoxDriver.prototype.findElementInternal_ (file:///var/folders/71/xwvgn8dn2lb92t1vqhf1tpb80000gn/T/tmpNxvI_6/extensions/fxdriver@googlecode.com/components/driver-component.js:10770)
E at fxdriver.Timer.prototype.setTimeout/<.notify (file:///var/folders/71/xwvgn8dn2lb92t1vqhf1tpb80000gn/T/tmpNxvI_6/extensions/fxdriver@googlecode.com/components/driver-component.js:625)
.tox/tests/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py:192: NoSuchElementException
------------------------------- pytest-selenium --------------------------------
URL: https://addons-dev.allizom.org/en-US/firefox/
_________________ TestSearch.test_that_search_returns_results __________________
[gw4] darwin -- Python 2.7.11 /Users/sdonner/Addon-Tests/.tox/tests/bin/python
self = <tests.mobile.test_search.TestSearch instance at 0x1096e2998>
base_url = 'https://addons-dev.allizom.org'
selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="ed6b5432-8a51-f64f-bef0-25af235872df")>
@pytest.mark.nondestructive
def test_that_search_returns_results(self, base_url, selenium):
home = Home(base_url, selenium)
search_page = home.search_for(self.positive_search_term)
> assert len(search_page.results) > 0
E assert 0 > 0
E + where 0 = len([])
E + where [] = <pages.mobile.search_results.SearchResults object at 0x1023703d0>.results
tests/mobile/test_search.py:18: AssertionError
------------------------------- pytest-selenium --------------------------------
URL: https://addons-dev.allizom.org/en-US/firefox/search/?q=firefox&appver=47.0&platform=mac
______________ TestHome.test_that_checks_the_desktop_version_link ______________
[gw6] darwin -- Python 2.7.11 /Users/sdonner/Addon-Tests/.tox/tests/bin/python
self = <tests.mobile.test_home.TestHome instance at 0x106ba6b90>
base_url = 'https://addons-dev.allizom.org'
selenium = <selenium.webdriver.firefox.webdriver.WebDriver (session="86ec6cea-dfbb-de4f-9c40-74eee7b23391")>
@pytest.mark.nondestructive
def test_that_checks_the_desktop_version_link(self, base_url, selenium):
home = Home(base_url, selenium)
assert home.is_the_current_page
> assert 'VIEW FULL SITE' == home.footer.desktop_version_text
tests/mobile/test_home.py:25:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pages/mobile/base.py:38: in desktop_version_text
return self.selenium.find_element(*self._desktop_version_locator).text
.tox/tests/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py:752: in find_element
'value': value})['value']
.tox/tests/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py:236: in execute
self.error_handler.check_response(response)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x1094c7750>
response = {'status': 500, 'value': '{"name":"findElement","sessionId":"86ec6cea-dfbb-de4f-9c40-74eee7b23391","status":7,"value":.../T/tmpRMIrlj/extensions/fxdriver@googlecode.com/components/driver-component.js","lineNumber":625,"columnNumber":5}]}}'}
def check_response(self, response):
"""
Checks that a JSON response from the WebDriver does not have an error.
:Args:
- response - The JSON response from the WebDriver server as a dictionary
object.
:Raises: If the response contains an error message.
"""
status = response.get('status', None)
if status is None or status == ErrorCode.SUCCESS:
return
value = None
message = response.get("message", "")
screen = response.get("screen", "")
stacktrace = None
if isinstance(status, int):
value_json = response.get('value', None)
if value_json and isinstance(value_json, basestring):
import json
try:
value = json.loads(value_json)
status = value.get('error', None)
if status is None:
status = value["status"]
message = value["value"]
if not isinstance(message, basestring):
value = message
try:
message = message['message']
except TypeError:
message = None
else:
message = value.get('message', None)
except ValueError:
pass
exception_class = ErrorInResponseException
if status in ErrorCode.NO_SUCH_ELEMENT:
exception_class = NoSuchElementException
elif status in ErrorCode.NO_SUCH_FRAME:
exception_class = NoSuchFrameException
elif status in ErrorCode.NO_SUCH_WINDOW:
exception_class = NoSuchWindowException
elif status in ErrorCode.STALE_ELEMENT_REFERENCE:
exception_class = StaleElementReferenceException
elif status in ErrorCode.ELEMENT_NOT_VISIBLE:
exception_class = ElementNotVisibleException
elif status in ErrorCode.INVALID_ELEMENT_STATE:
exception_class = InvalidElementStateException
elif status in ErrorCode.INVALID_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR \
or status in ErrorCode.INVALID_XPATH_SELECTOR_RETURN_TYPER:
exception_class = InvalidSelectorException
elif status in ErrorCode.ELEMENT_IS_NOT_SELECTABLE:
exception_class = ElementNotSelectableException
elif status in ErrorCode.INVALID_COOKIE_DOMAIN:
exception_class = WebDriverException
elif status in ErrorCode.UNABLE_TO_SET_COOKIE:
exception_class = WebDriverException
elif status in ErrorCode.TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.SCRIPT_TIMEOUT:
exception_class = TimeoutException
elif status in ErrorCode.UNKNOWN_ERROR:
exception_class = WebDriverException
elif status in ErrorCode.UNEXPECTED_ALERT_OPEN:
exception_class = UnexpectedAlertPresentException
elif status in ErrorCode.NO_ALERT_OPEN:
exception_class = NoAlertPresentException
elif status in ErrorCode.IME_NOT_AVAILABLE:
exception_class = ImeNotAvailableException
elif status in ErrorCode.IME_ENGINE_ACTIVATION_FAILED:
exception_class = ImeActivationFailedException
elif status in ErrorCode.MOVE_TARGET_OUT_OF_BOUNDS:
exception_class = MoveTargetOutOfBoundsException
else:
exception_class = WebDriverException
if value == '' or value is None:
value = response['value']
if isinstance(value, basestring):
if exception_class == ErrorInResponseException:
raise exception_class(response, value)
raise exception_class(value)
if message == "" and 'message' in value:
message = value['message']
screen = None
if 'screen' in value:
screen = value['screen']
stacktrace = None
if 'stackTrace' in value and value['stackTrace']:
stacktrace = []
try:
for frame in value['stackTrace']:
line = self._value_or_default(frame, 'lineNumber', '')
file = self._value_or_default(frame, 'fileName', '<anonymous>')
if line:
file = "%s:%s" % (file, line)
meth = self._value_or_default(frame, 'methodName', '<anonymous>')
if 'className' in frame:
meth = "%s.%s" % (frame['className'], meth)
msg = " at %s (%s)"
msg = msg % (meth, file)
stacktrace.append(msg)
except TypeError:
pass
if exception_class == ErrorInResponseException:
raise exception_class(response, message)
elif exception_class == UnexpectedAlertPresentException and 'alert' in value:
raise exception_class(message, screen, stacktrace, value['alert'].get('text'))
> raise exception_class(message, screen, stacktrace)
E NoSuchElementException: Message: Unable to locate element: {"method":"css selector","selector":"a.desktop-link"}
E Stacktrace:
E at FirefoxDriver.prototype.findElementInternal_ (file:///var/folders/71/xwvgn8dn2lb92t1vqhf1tpb80000gn/T/tmpRMIrlj/extensions/fxdriver@googlecode.com/components/driver-component.js:10770)
E at fxdriver.Timer.prototype.setTimeout/<.notify (file:///var/folders/71/xwvgn8dn2lb92t1vqhf1tpb80000gn/T/tmpRMIrlj/extensions/fxdriver@googlecode.com/components/driver-component.js:625)
.tox/tests/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py:192: NoSuchElementException
------------------------------- pytest-selenium --------------------------------
URL: https://addons-dev.allizom.org/en-US/firefox/
=================== 12 failed, 151 passed in 365.39 seconds ====================
ERROR: InvocationError: '/Users/sdonner/Addon-Tests/.tox/tests/bin/pytest --variables=/Users/sdonner/Desktop/AMO.json --driver Firefox'
___________________________________ summary ____________________________________
ERROR: tests: commands failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment