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))
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"))
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"))
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'))
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"))
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"))
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"))
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"))
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")
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"})
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) ) )
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"