Created
September 28, 2016 17:37
-
-
Save stephendonner/943d45d0f1c1a6279e4ff94184b15c32 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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