Пример #1
0
    def test_routing_metro_one_map(self, main, download_moscow_map, steps,
                                   r_steps):
        """ Метро Динамо -> метро Технопарк """
        panel = BottomPanel()
        steps.search("метро Динамо")
        steps.choose_first_search_result()

        panel.route_from().click()
        el = steps.try_get_by_text(LocalizedButtons.ACCEPT.get())
        if el:
            el.click()

        steps.try_get(Locator.ROUTING_CHOOSE_POINT.get()).click()
        steps.search("метро Технопарк", click_search_button=False)
        steps.choose_first_search_result()
        r_steps.wait_route_start()

        steps.try_get(Locator.ROUTING_METRO.get()).click()

        r_steps.wait_metro_panel()

        steps.press_back_until_main_page()

        steps.search("метро Динамо")
        steps.choose_first_search_result()

        panel.route_from().click()
        el = steps.try_get_by_text(LocalizedButtons.ACCEPT.get())
        if el:
            el.click()

        steps.try_get(Locator.ROUTING_CHOOSE_POINT.get()).click()
        steps.search("метро Технопарк", click_search_button=False)
        steps.choose_first_search_result()
        r_steps.wait_metro_panel()
Пример #2
0
    def test_routing_pay_and_bad_roads_only_auto(self, main, steps, r_steps):
        """https://testrail.corp.mail.ru/index.php?/tests/view/36653881"""
        steps.download_map(LocalizedMapsNames.GREAT_BRITAIN, None,
                           LocalizedMapsNames.LONDON)
        panel = BottomPanel()
        steps.search("метро Алексеевская")
        steps.choose_first_search_result()

        panel.to().click()
        el = steps.try_get_by_text(LocalizedButtons.ACCEPT.get())
        if el:
            el.click()

        r_steps.wait_route_start()

        assert steps.try_get(Locator.DRIVING_OPTIONS.get(
        )) is None or steps.try_get(
            Locator.DRIVING_OPTIONS.get()).get_attribute("visible") == 'false'

        steps.press_back_until_main_page()
        steps.search("Compton Park")
        sleep(10)
        steps.choose_first_search_result(
            category=LocalizedCategories.PARK.get())

        panel.route_from().click()
        steps.try_get(Locator.ROUTING_CHOOSE_POINT.get()).click()
        steps.search("Errol Street", click_search_button=False)
        steps.choose_first_search_result()
        r_steps.wait_route_start()
        steps.try_get(Locator.DRIVING_OPTIONS.get()).click()
        sleep(2)
        steps.driver.back()

        steps.try_get(Locator.ROUTING_BIKE.get()).click()
        r_steps.wait_route_start()
        assert steps.try_get(Locator.DRIVING_OPTIONS.get(
        )) is None or steps.try_get(
            Locator.DRIVING_OPTIONS.get()).get_attribute("visible") == 'false'

        steps.try_get(Locator.ROUTING_WALK.get()).click()
        r_steps.wait_route_start()
        assert steps.try_get(Locator.DRIVING_OPTIONS.get(
        )) is None or steps.try_get(
            Locator.DRIVING_OPTIONS.get()).get_attribute("visible") == 'false'

        steps.try_get(Locator.ROUTING_METRO.get()).click()
        r_steps.wait_metro_panel()
        assert steps.try_get(Locator.DRIVING_OPTIONS.get(
        )) is None or steps.try_get(
            Locator.DRIVING_OPTIONS.get()).get_attribute("visible") == 'false'

        steps.try_get(Locator.ROUTING_TAXI.get()).click()
        r_steps.wait_taxi_panel()
        assert steps.try_get(Locator.DRIVING_OPTIONS.get(
        )) is None or steps.try_get(
            Locator.DRIVING_OPTIONS.get()).get_attribute("visible") == 'false'
Пример #3
0
    def test_routing_metro_taxi_back(self, main, download_moscow_map, steps,
                                     r_steps, search_steps):
        """Метро Динамо -> метро Парк Победы ->  метро Строгино -> метро Алексеевская"""
        panel = BottomPanel()
        points = []
        if get_settings("System", "platform") == "Android":
            points = ["метро Парк Победы", "метро Строгино"]
        steps.search("метро Динамо")
        steps.choose_first_search_result()
        points.append(steps.pp_get_title())

        panel.route_from().click()

        el = steps.try_get_by_text(LocalizedButtons.ACCEPT.get())
        if el:
            el.click()

        steps.try_get(Locator.ROUTING_CHOOSE_POINT.get()).click()
        steps.search("метро Алексеевская", click_search_button=False)
        points.append(search_steps.get_first_search_name())

        sleep(1)
        steps.choose_first_search_result()

        steps.search("метро Парк Победы")
        steps.choose_first_search_result()
        points.append(steps.pp_get_title())

        r_steps.click_add_stop()

        steps.search("метро Строгино")
        steps.choose_first_search_result()
        points.append(steps.pp_get_title())

        r_steps.click_add_stop()

        steps.try_get(Locator.ROUTING_METRO.get()).click()

        r_steps.wait_metro_panel()

        r_steps.assert_route_points(2, True, *points)

        sleep(1)
        steps.try_get(Locator.ROUTING_TAXI.get()).click()
        r_steps.wait_taxi_panel()

        steps.try_get(Locator.ROUTING_METRO.get()).click()

        r_steps.wait_metro_panel()

        r_steps.assert_route_points(2, True, *points)
Пример #4
0
    def test_routing_auto_taxi_back(self, main, download_moscow_map, steps,
                                    r_steps, search_steps):
        """Метро Динамо -> метро Сокол ->  метро Беляево -> метро Алексеевская
        https://testrail.corp.mail.ru/index.php?/tests/view/36653927"""
        panel = BottomPanel()
        points = []
        if get_settings("System", "platform") == "Android":
            points = ["метро Сокол", "метро Беляево"]
        steps.search("метро Динамо")
        steps.choose_first_search_result()
        points.append(steps.pp_get_title())

        panel.route_from().click()

        el = steps.try_get_by_text(LocalizedButtons.ACCEPT.get())
        if el:
            el.click()

        steps.try_get(Locator.ROUTING_CHOOSE_POINT.get()).click()
        steps.search("метро Алексеевская", click_search_button=False)
        points.append(search_steps.get_first_search_name())
        steps.choose_first_search_result()
        sleep(1)

        steps.search("метро Сокол")
        steps.choose_first_search_result()
        points.append(steps.pp_get_title())
        r_steps.click_add_stop()

        sleep(1)

        steps.search("метро Беляево")
        steps.choose_first_search_result()
        points.append(steps.pp_get_title())
        r_steps.click_add_stop()

        r_steps.wait_route_start()

        sleep(1)
        steps.try_get(Locator.ROUTING_TAXI.get()).click()

        r_steps.wait_taxi_panel()

        steps.try_get(Locator.ROUTING_CAR.get()).click()

        r_steps.assert_route_points(2, True, *points)
Пример #5
0
    def test_routing_taxi_p2p(self, main, download_moscow_map, steps, r_steps):
        """Метро Строгино -> метро Алексеевская"""
        panel = BottomPanel()
        steps.search("метро Строгино")
        steps.choose_first_search_result()

        sleep(1)
        panel.route_from().click()
        el = steps.try_get_by_text(LocalizedButtons.ACCEPT.get())
        if el:
            el.click()

        steps.try_get(Locator.ROUTING_CHOOSE_POINT.get()).click()
        steps.search("метро Алексеевская", click_search_button=False)
        steps.choose_first_search_result()

        sleep(2)
        steps.try_get(Locator.ROUTING_TAXI.get()).click()
        r_steps.wait_taxi_panel()
        r_steps.assert_taxi_install_button()
Пример #6
0
    def test_routing_metro_two_maps(self, main, download_moscow_map, steps,
                                    r_steps):
        """ Метро Динамо -> Чехов. Ожидается ошибка построения маршрута
        https://testrail.corp.mail.ru/index.php?/tests/view/36653589"""
        panel = BottomPanel()
        steps.search("метро Динамо")
        steps.choose_first_search_result()

        panel.route_from().click()
        el = steps.try_get_by_text(LocalizedButtons.ACCEPT.get())
        if el:
            el.click()
        steps.try_get(Locator.ROUTING_CHOOSE_POINT.get()).click()

        steps.search("Чехов", click_search_button=False)
        steps.choose_first_search_result()

        r_steps.download_additional_maps()

        steps.try_get(Locator.ROUTING_METRO.get()).click()
        r_steps.wait_route_too_long()
Пример #7
0
    def test_unpaved_roads(self, main, steps, r_steps):
        """https://testrail.corp.mail.ru/index.php?/tests/view/36653901"""
        steps.download_map(LocalizedMapsNames.SPAIN, None,
                           LocalizedMapsNames.SEVILLE)
        panel = BottomPanel()
        steps.press_back_until_main_page()
        steps.search(
            "Huerto de Cubiches")  #Huerta Vieja El Algarobbo El Chaparro Puyol
        steps.choose_first_search_result()

        panel.route_from().click()
        el = steps.try_get_by_text(LocalizedButtons.ACCEPT.get())
        if el:
            el.click()
        steps.try_get(Locator.ROUTING_CHOOSE_POINT.get()).click()
        steps.search("Sierra de Ojen", click_search_button=False)
        steps.choose_first_search_result(
            category=LocalizedCategories.MOUNTAIN.get())

        r_steps.download_additional_maps()
        r_steps.wait_route_start()
        #steps.try_get(Locator.ZOOM_IN.get()).click()
        #steps.try_get(Locator.ZOOM_IN.get()).click()

        assert steps.try_get(Locator.DRIVING_OPTIONS.get())
        sleep(5)

        filename = "unpaved_road.png"
        steps.driver.get_screenshot_as_file(filename)
        coor = self.get_coords_proportions(
            filename, proportions=steps.driver.get_window_size())
        TouchAction(steps.driver).tap(
            x=round(coor[0] * steps.driver.get_window_size()["width"]),
            y=round(coor[1] *
                    steps.driver.get_window_size()["height"])).perform()

        assert steps.try_get_by_text(
            LocalizedButtons.AVOID_UNPAVED_ROADS.get())
        assert steps.try_get_by_text(LocalizedButtons.UNPAVED_ROAD.get(),
                                     strict=False)
Пример #8
0
    def test_ferry_roads(self, main, steps, r_steps):
        """https://testrail.corp.mail.ru/index.php?/tests/view/36653902"""
        steps.download_map(LocalizedMapsNames.ITALY, None,
                           LocalizedMapsNames.SICILY)
        panel = BottomPanel()
        steps.press_back_until_main_page()
        steps.search("Cascate Cataolo")
        steps.choose_first_search_result()

        panel.route_from().click()
        el = steps.try_get_by_text(LocalizedButtons.ACCEPT.get())
        if el:
            el.click()
        steps.try_get(Locator.ROUTING_CHOOSE_POINT.get()).click()
        steps.search("Vulcano Porto", click_search_button=False)
        steps.choose_first_search_result()

        r_steps.download_additional_maps()
        r_steps.wait_route_start()
        # steps.try_get(Locator.ZOOM_IN.get()).click()

        assert steps.try_get(Locator.DRIVING_OPTIONS.get())
        sleep(5)

        filename = "ferry_road.png"
        steps.driver.get_screenshot_as_file(filename)
        coor = self.get_coords_proportions(
            filename, proportions=steps.driver.get_window_size())
        logging.info(str(coor))
        TouchAction(steps.driver).tap(
            x=round(coor[0] * steps.driver.get_window_size()["width"]) + 10,
            y=round(coor[1] * steps.driver.get_window_size()["height"]) +
            10).perform()

        assert steps.try_get_by_text(LocalizedButtons.AVOID_FERRY_ROADS.get())
        assert steps.try_get_by_text(LocalizedButtons.FERRY_ROAD.get(),
                                     strict=False)
Пример #9
0
    def test_route_manager(self, main, download_moscow_map, steps, r_steps,
                           search_steps):
        """Метро Динамо -> метро Парк Победы ->  метро Строгино -> метро Алексеевская"""
        panel = BottomPanel()
        points = []
        steps.search("метро Динамо")
        steps.choose_first_search_result()
        points.append(steps.pp_get_title())

        panel.route_from().click()

        el = steps.try_get_by_text(LocalizedButtons.ACCEPT.get())
        if el:
            el.click()

        steps.try_get(Locator.ROUTING_CHOOSE_POINT.get()).click()
        steps.search("метро Алексеевская", click_search_button=False)
        points.append(search_steps.get_first_search_name())

        sleep(1)
        steps.choose_first_search_result()

        steps.search("метро Парк Победы")
        steps.choose_first_search_result()
        points.append(steps.pp_get_title())

        r_steps.click_add_stop()

        steps.search("метро Строгино")
        steps.choose_first_search_result()
        points.append(steps.pp_get_title())

        r_steps.click_add_stop()

        steps.try_get(LocalizedButtons.MANAGE_ROUTE.get()).click()

        stop_a = steps.driver.find_elements_by_xpath(
            "//*[@type='XCUIElementTypeCell']")[1]
        stop_a_name = stop_a.find_element_by_xpath(
            "./*[@type='XCUIElementTypeStaticText']").text
        coords_a = stop_a.find_elements_by_xpath(
            "./*[@type='XCUIElementTypeImage']")[1].location

        stop_start = steps.driver.find_elements_by_xpath(
            "//*[@type='XCUIElementTypeCell']")[0]
        stop_start_name = stop_start.find_element_by_xpath(
            "./*[@type='XCUIElementTypeStaticText']").text

        stop_b = steps.driver.find_elements_by_xpath(
            "//*[@type='XCUIElementTypeCell']")[2]
        stop_b_name = stop_b.find_element_by_xpath(
            "./*[@type='XCUIElementTypeStaticText']").text

        stop_finish = steps.driver.find_elements_by_xpath(
            "//*[@type='XCUIElementTypeCell']")[3]
        stop_finish_name = stop_finish.find_element_by_xpath(
            "./*[@type='XCUIElementTypeStaticText']").text
        coords_finish = stop_finish.find_elements_by_xpath(
            "./*[@type='XCUIElementTypeImage']")[1].location

        actions = TouchAction(steps.driver)

        try:
            actions.press(None, coords_a["x"], coords_a["y"]) \
                .wait(4000).move_to(None, coords_finish["x"],
                                    coords_finish["y"]).release().perform()
        except WebDriverException:
            pass

        steps.try_get(LocalizedButtons.PLAN.get()).click()
        sleep(5)

        steps.try_get(LocalizedButtons.MANAGE_ROUTE.get()).click()

        stop_start = steps.driver.find_elements_by_xpath(
            "//*[@type='XCUIElementTypeCell']")[0]
        assert stop_start_name == stop_start.find_element_by_xpath(
            "./*[@type='XCUIElementTypeStaticText']").text

        stop_a = steps.driver.find_elements_by_xpath(
            "//*[@type='XCUIElementTypeCell']")[1]
        assert stop_b_name == stop_a.find_element_by_xpath(
            "./*[@type='XCUIElementTypeStaticText']").text

        stop_b = steps.driver.find_elements_by_xpath(
            "//*[@type='XCUIElementTypeCell']")[2]
        assert stop_finish_name == stop_b.find_element_by_xpath(
            "./*[@type='XCUIElementTypeStaticText']").text

        stop_finish = steps.driver.find_elements_by_xpath(
            "//*[@type='XCUIElementTypeCell']")[3]
        assert stop_a_name == stop_finish.find_element_by_xpath(
            "./*[@type='XCUIElementTypeStaticText']").text