예제 #1
0
    def test_post_restart_device_stb_by_admin_hotel(self,
                                                    use_session_admin_hotel):
        """ Тест перезагрузки устройства STB """
        with allure.step('Запрос на перезагрузку STB'):
            r = Devices().post_restart_device_by_id(DV.FIRST_SLOT_ID)

        with allure.step('Проверки на успешный ответ внутри системы'):
            assert_that(r.status_code, equal_to(200))
            assert_that(r.json()["success"], is_(True))
예제 #2
0
    def test_get_device_slots_in_another_hotel_by_employee(self, use_session_employee):
        """ Тест попытки получения списка доступных слотов для привязки устройства не в своей гостинице сотрудником """
        with allure.step('Запрос на получение списка доступных слотов для привязки устройств в комнате чужой гостиницы'):
            r = Devices().get_device_slots_by_san(san=DV.SECOND_SAN_MAIN_ROOM)

        # Проверки, что сотрудник не может получить просмотреть устройства в чужой гостинице
        with allure.step('Проверки, что сотруднику запрещен доступ к просмотру устройств в чужой гостинице'):
            assert_that(r.status_code, equal_to(403))
            assert_that(r.json()["error_code"], equal_to(12))
            assert_that(r.json()["description"], equal_to("Action is forbidden for given room's san"))
    def test_get_device_slots_no_role(self, delete_session):
        """ Тест попытки получения списка доступных слотов для привязки устройства без авторизационного токена """
        with allure.step('Запрос на получение списка доступных слотов'):
            r = Devices().get_device_slots_by_san(san=DV.SAN_MAIN_ROOM)

        with allure.step(
                'Проверки, что без авторизационного токена нельзя выполнить данный метод'
        ):
            assert_that(r.status_code, equal_to(401))
            assert_that(r.json()["error_code"], equal_to(1))
            assert_that(r.json()["description"],
                        equal_to("No 'session_id' header was provided"))
예제 #4
0
    def test_post_restart_device_smart_tv_by_admin_hotel(
            self, use_session_admin_hotel):
        """ Тест попытки перезагрузки устройства Smart TV """
        with allure.step('Запрос на перезагрузку Smart TV'):
            r = Devices().post_restart_device_by_id(DV.SECOND_SLOT_ID)

        with allure.step(
                'Проверки на коррекность кодов ошибок и сообщений об ошибке'):
            assert_that(r.status_code, equal_to(400))
            assert_that(r.json()["error_code"], equal_to(14))
            assert_that(r.json()["description"],
                        equal_to("Not supported for given device type"))
예제 #5
0
    def test_post_restart_empty_slot_by_admin_hotel(self,
                                                    use_session_admin_hotel):
        """ Тест попытки перезагрузки при пустом слоте """
        with allure.step(
                'Запрос на перезагрузку, если в слоте отсутствует устройство'):
            r = Devices().post_restart_device_by_id(DV.FOURTH_SLOT_ID)

        with allure.step(
                'Проверки на коррекность кодов ошибок и сообщений об ошибке'):
            assert_that(r.status_code, equal_to(400))
            assert_that(r.json()["error_code"], equal_to(14))
            assert_that(r.json()["description"],
                        equal_to("Not supported for given device type"))
    def test_get_device_slots_by_admin_rt(self, use_session_admin_rt):
        """ Тест попытки получения списка доступных слотов для привязки устройства """
        with allure.step(
                'Запрос на получение списка доступных слотов для привязки устройств'
        ):
            r = Devices().get_device_slots_by_san(san=DV.SAN_MAIN_ROOM)

        with allure.step(
                'Проверки, что администратор Ростелеком не может просмотреть список доступных слотов в номере'
        ):
            assert_that(r.status_code, equal_to(403))
            assert_that(r.json()["error_code"], equal_to(403))
            assert_that(r.json()["description"], equal_to('Forbidden'))
예제 #7
0
    def test_post_restart_device_stb_by_admin_rt(self, use_session_admin_rt):
        """ Тест попытки перезагрузки устройства STB """
        with allure.step(
                'Запрос на получение списка доступных слотов для привязки устройств'
        ):
            r = Devices().post_restart_device_by_id(DV.FIRST_SLOT_ID)

        with allure.step(
                'Проверки, что администратор Ростелеком не может перезагружать устройства в номере'
        ):
            assert_that(r.status_code, equal_to(403))
            assert_that(r.json()["error_code"], equal_to(403))
            assert_that(r.json()["description"], equal_to("Forbidden"))
예제 #8
0
    def test_post_restart_null_device_by_admin_hotel(self,
                                                     use_session_admin_hotel):
        """ Тест попытки перезагрузки устройства с несуществующим id """
        with allure.step(
                'Запрос на перезагрузку устройства с несуществующим id (использовался id "qwerty")'
        ):
            r = Devices().post_restart_device_by_id("qwerty")

        with allure.step(
                'Проверки на коррекность кодов ошибок и сообщений об ошибке'):
            assert_that(r.status_code, equal_to(404))
            assert_that(r.json()["error_code"], equal_to(13))
            assert_that(r.json()["description"],
                        equal_to("Service id is not found"))
예제 #9
0
    def test_post_restart_unknown_device_by_admin_hotel(
            self, use_session_admin_hotel):
        """ Тест попытки перезагрузки неизвестного устройства """
        with allure.step(
                'Запрос на перезагрузку неизвестного устройства (MAC не соответствует ни одному известному устройству'
        ):
            r = Devices().post_restart_device_by_id(DV.THIRD_SLOT_ID)

        with allure.step(
                'Проверки на коррекность кодов ошибок и сообщений об ошибке'):
            assert_that(r.status_code, equal_to(400))
            assert_that(r.json()["error_code"], equal_to(14))
            assert_that(r.json()["description"],
                        equal_to("Not supported for given device type"))
예제 #10
0
    def test_post_restart_device_in_another_hotel_by_admin_hotel(
            self, use_session_admin_hotel):
        """ Тест попытки перезагрузки устройства STB не в своей гостинице """
        with allure.step(
                'Запрос на перезагрузку существующего устройства в чужой гостинице'
        ):
            r = Devices().post_restart_device_by_id(
                DV.SECOND_HOTEL_FIRST_SLOT_ID)

        with allure.step(
                'Проверки на коррекность кодов ошибок и сообщений об ошибке'):
            assert_that(r.status_code, equal_to(404))
            assert_that(r.json()["error_code"], equal_to(13))
            assert_that(r.json()["description"],
                        equal_to("Service id is not found"))
예제 #11
0
def index():
    """
    initialize application variables & controllers
    ----------------------------------------------

    sp: spotify object
    search: used to make calls to spotify api
    device: current active device
    devices: list of all devices
    controller: controls device & music state
    """
    global sp
    global search
    global device
    global devices
    global controller

    sp = spotipy.Spotify(auth=session['toke'])
    search = Search(sp)
    devices = [Devices(**device) for device in sp.devices()['devices']]

    if len(devices) == 0:
        return render_template("index.html")

    for device in devices:
        if device.is_active:
            controller = Controls(sp, device)
            break

    if controller is None:
        controller = Controls(sp, devices[0])

    return render_template("index.html")
예제 #12
0
def get_devices():
    """
    get all available devices
    -------------------------

    d: list of devices
    """
    global devices

    devices = [Devices(**device) for device in sp.devices()['devices']]
    d = []
    for device in devices:
        d.append(device.to_dict())

    return jsonify({'devices': d, 'status': "201"})
예제 #13
0
    def test_get_device_slots_by_employee(self, use_session_employee):
        """ Тест получения списка доступных слотов для привязки устройства сотрудником """
        with allure.step('Запрос на получение списка доступных слотов для привязки устройств'):
            r = Devices().get_device_slots_by_san(san=DV.SAN_MAIN_ROOM)

        with allure.step('Проверка на корректность статус кода'):
            assert_that(r.status_code, equal_to(200))

        # Проверка первого слота - STB (device_type 1)
        with allure.step('Проверка устройства первого слота - STB (device_type: 1)'):
            assert_that(
                r.json()["device_slots"][0],
                has_entries(
                    "id", equal_to(DV.FIRST_SLOT_ID),
                    "is_device_bound", is_(True),
                    "device_type", equal_to(DV.FIRST_SLOT_DEVICE_ID),
                    "device_id", equal_to(DV.FIRST_SLOT_MAC)
                )
            )

        # Проверка второго слота - Smart TV (device_type 2)
        with allure.step('Проверка устройства второго слота - Smart TV (device_type: 2)'):
            assert_that(
                r.json()["device_slots"][1],
                has_entries(
                    "id", equal_to(DV.SECOND_SLOT_ID),
                    "is_device_bound", is_(True),
                    "device_type", equal_to(DV.SECOND_SLOT_DEVICE_ID),
                    "device_id", equal_to(DV.SECOND_SLOT_MAC)
                )
            )

        # Проверка третьего слота - неизвестное устройство (device_type 0)
        with allure.step('Проверка устройства третьего слота - неизвестное устройство (device_type: 0)'):
            assert_that(
                r.json()["device_slots"][2],
                has_entries(
                    "id", equal_to(DV.THIRD_SLOT_ID),
                    "is_device_bound", is_(True),
                    "device_type", equal_to(DV.THIRD_SLOT_DEVICE_ID),
                    "device_id", equal_to(DV.THIRD_SLOT_MAC)
                )
            )

        # Проверка четвертого слота - свободный слот (device_type 0)
        with allure.step('Проверка четвертого слота - слот свободен (device_type: 0)'):
            assert_that(
                r.json()["device_slots"][3],
                has_entries(
                    "id", equal_to(DV.FOURTH_SLOT_ID),
                    "is_device_bound", is_(False),
                    "device_type", equal_to(DV.FOURTH_SLOT_DEVICE_ID),
                    "device_id", equal_to(DV.FOURTH_SLOT_MAC)
                )
            )
예제 #14
0
def switch_device():
    """
    switches to new device based on device_id
    """

    global controller

    r = request.json['key']
    controller.switch_device(r)

    devices = [Devices(**device) for device in sp.devices()['devices']]
    for device in devices:
        if device.is_active:
            controller = Controls(sp, device)
            break

    return "201"