{"name": "test_add_item_without_required_imei", "status": "failed", "statusDetails": {"message": "AssertionError: Headers aren't the same: [{'first_list': 'Сайт отправителя (обязательно если это интернет-магазин)', 'second_list': 'Номер телефона отправителя (не обязательно)'}, {'first_list': 'Номер телефона отправителя (обязательно если это не интернет-магазин)', 'second_list': 'Серия и номер паспорта/ПИНФЛ получателя (обязательно)'}, {'first_list': 'Серия и номер паспорта/ПИНФЛ получателя (обязательно)', 'second_list': 'Дата рождения получателя (обязательно)'}, {'first_list': 'Дата рождения получателя (обязательно)', 'second_list': 'Вес брутто (кг) (обязательно)'}, {'first_list': 'Вес брутто (кг) (обязательно)', 'second_list': 'Номер телефона (обязательно)'}, {'first_list': 'Номер телефона (обязательно)', 'second_list': 'Адрес получателя (область, район, населенный пункт, улица, дом) (не обязательно)'}, {'first_list': 'Адрес получателя (область, район, населенный пункт, улица, дом) (не обязательно)', 'second_list': 'Дорожные расходы ($) (не обязательно)'}, {'first_list': 'Дорожные расходы ($) (не обязательно)', 'second_list': 'Электронная почта (не обязательно)'}, {'first_list': 'Электронная почта (не обязательно)', 'second_list': 'Код ТН ВЭД (обязательно)'}, {'first_list': 'Код ТН ВЭД (обязательно)', 'second_list': 'Позиция Код ТН ВЭД (обязательно)'}, {'first_list': 'Позиция Код ТН ВЭД (обязательно)', 'second_list': 'Код единицы измерения (не обязательно)'}, {'first_list': 'Код единицы измерения (не обязательно)', 'second_list': 'Количество товара (обязательно)'}, {'first_list': 'Количество товара (обязательно)', 'second_list': 'Стоимость товара (обязательно)'}, {'first_list': 'Стоимость товара (обязательно)', 'second_list': 'Тип валюта (не обязательно)'}, {'first_list': 'Тип валюта (не обязательно)', 'second_list': 'Марка, модель и товарный знак продукта (обязательно)'}, {'first_list': 'Марка, модель и товарный знак продукта (обязательно)', 'second_list': 'IMEI 1 (Обязательно в случае телефона или планшета)'}, {'first_list': 'IMEI 1 (Обязательно в случае телефона или планшета)', 'second_list': 'IMEI 2 (Если номер IMEI телефона или планшета равен 2, это обязательно)'}, {'first_list': 'IMEI 2 (Если номер IMEI телефона или планшета равен 2, это обязательно)', 'second_list': None}]", "trace": "self = <tests.fulfillment.test_courier.test_manifest.TestManifest object at 0x7fae3dde2a50>\n\n    def test_add_item_without_required_imei(self):\n        with allure.step(\n            \"Генерируем данные дла таблицы с HS-кодами товаров, которые должны содержать IMEI, но убираем сам IMEI\"\n        ):\n            data = [\n                ManifestUpdateBatch(is_wrong_item_without_imei=True).to_dict()\n                for _ in range(PARCEL_NUMBERS_FOR_BATCH_FILE)\n            ]\n    \n        with allure.step(\"Создаем пустой манифест добавляем посылки к методом batch\"):\n            builder_manifest = (\n>               ManifestBuilder().login_or_refresh().create_empty_manifest().update_parcels_in_manifest_batch(data=data)\n            )\n\ntests/fulfillment/test_courier/test_manifest.py:97: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \nsrc/framework/fulfillment/builders/courier/manifest.py:57: in update_parcels_in_manifest_batch\n    .validate_headers(TableHeaders.UpdateManifest.value)\n     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = <src.framework.common.helpers.xlsx.XLSXData object at 0x7fae37b92b90>\npattern_headers = ['Номер посылки (обязательно)', 'Интернет магазин 1-да, 0-нет', 'Отправитель (обязательно)', 'Номер телефона отправите... обязательно)', 'Серия и номер паспорта/ПИНФЛ получателя (обязательно)', 'Дата рождения получателя (обязательно)', ...]\n\n    def validate_headers(self, pattern_headers: list[str]):\n        differences = compare_lists_diff(self.table_headers, pattern_headers)\n>       assert differences == [], f\"Headers aren't the same: {differences}\"\n               ^^^^^^^^^^^^^^^^^\nE       AssertionError: Headers aren't the same: [{'first_list': 'Сайт отправителя (обязательно если это интернет-магазин)', 'second_list': 'Номер телефона отправителя (не обязательно)'}, {'first_list': 'Номер телефона отправителя (обязательно если это не интернет-магазин)', 'second_list': 'Серия и номер паспорта/ПИНФЛ получателя (обязательно)'}, {'first_list': 'Серия и номер паспорта/ПИНФЛ получателя (обязательно)', 'second_list': 'Дата рождения получателя (обязательно)'}, {'first_list': 'Дата рождения получателя (обязательно)', 'second_list': 'Вес брутто (кг) (обязательно)'}, {'first_list': 'Вес брутто (кг) (обязательно)', 'second_list': 'Номер телефона (обязательно)'}, {'first_list': 'Номер телефона (обязательно)', 'second_list': 'Адрес получателя (область, район, населенный пункт, улица, дом) (не обязательно)'}, {'first_list': 'Адрес получателя (область, район, населенный пункт, улица, дом) (не обязательно)', 'second_list': 'Дорожные расходы ($) (не обязательно)'}, {'first_list': 'Дорожные расходы ($) (не обязательно)', 'second_list': 'Электронная почта (не обязательно)'}, {'first_list': 'Электронная почта (не обязательно)', 'second_list': 'Код ТН ВЭД (обязательно)'}, {'first_list': 'Код ТН ВЭД (обязательно)', 'second_list': 'Позиция Код ТН ВЭД (обязательно)'}, {'first_list': 'Позиция Код ТН ВЭД (обязательно)', 'second_list': 'Код единицы измерения (не обязательно)'}, {'first_list': 'Код единицы измерения (не обязательно)', 'second_list': 'Количество товара (обязательно)'}, {'first_list': 'Количество товара (обязательно)', 'second_list': 'Стоимость товара (обязательно)'}, {'first_list': 'Стоимость товара (обязательно)', 'second_list': 'Тип валюта (не обязательно)'}, {'first_list': 'Тип валюта (не обязательно)', 'second_list': 'Марка, модель и товарный знак продукта (обязательно)'}, {'first_list': 'Марка, модель и товарный знак продукта (обязательно)', 'second_list': 'IMEI 1 (Обязательно в случае телефона или планшета)'}, {'first_list': 'IMEI 1 (Обязательно в случае телефона или планшета)', 'second_list': 'IMEI 2 (Если номер IMEI телефона или планшета равен 2, это обязательно)'}, {'first_list': 'IMEI 2 (Если номер IMEI телефона или планшета равен 2, это обязательно)', 'second_list': None}]\n\nsrc/framework/common/helpers/xlsx.py:187: AssertionError"}, "steps": [{"name": "Генерируем данные дла таблицы с HS-кодами товаров, которые должны содержать IMEI, но убираем сам IMEI", "status": "passed", "start": 1775690632505, "stop": 1775690632542}, {"name": "Создаем пустой манифест добавляем посылки к методом batch", "status": "failed", "statusDetails": {"message": "AssertionError: Headers aren't the same: [{'first_list': 'Сайт отправителя (обязательно если это интернет-магазин)', 'second_list': 'Номер телефона отправителя (не обязательно)'}, {'first_list': 'Номер телефона отправителя (обязательно если это не интернет-магазин)', 'second_list': 'Серия и номер паспорта/ПИНФЛ получателя (обязательно)'}, {'first_list': 'Серия и номер паспорта/ПИНФЛ получателя (обязательно)', 'second_list': 'Дата рождения получателя (обязательно)'}, {'first_list': 'Дата рождения получателя (обязательно)', 'second_list': 'Вес брутто (кг) (обязательно)'}, {'first_list': 'Вес брутто (кг) (обязательно)', 'second_list': 'Номер телефона (обязательно)'}, {'first_list': 'Номер телефона (обязательно)', 'second_list': 'Адрес получателя (область, район, населенный пункт, улица, дом) (не обязательно)'}, {'first_list': 'Адрес получателя (область, район, населенный пункт, улица, дом) (не обязательно)', 'second_list': 'Дорожные расходы ($) (не обязательно)'}, {'first_list': 'Дорожные расходы ($) (не обязательно)', 'second_list': 'Электронная почта (не обязательно)'}, {'first_list': 'Электронная почта (не обязательно)', 'second_list': 'Код ТН ВЭД (обязательно)'}, {'first_list': 'Код ТН ВЭД (обязательно)', 'second_list': 'Позиция Код ТН ВЭД (обязательно)'}, {'first_list': 'Позиция Код ТН ВЭД (обязательно)', 'second_list': 'Код единицы измерения (не обязательно)'}, {'first_list': 'Код единицы измерения (не обязательно)', 'second_list': 'Количество товара (обязательно)'}, {'first_list': 'Количество товара (обязательно)', 'second_list': 'Стоимость товара (обязательно)'}, {'first_list': 'Стоимость товара (обязательно)', 'second_list': 'Тип валюта (не обязательно)'}, {'first_list': 'Тип валюта (не обязательно)', 'second_list': 'Марка, модель и товарный знак продукта (обязательно)'}, {'first_list': 'Марка, модель и товарный знак продукта (обязательно)', 'second_list': 'IMEI 1 (Обязательно в случае телефона или планшета)'}, {'first_list': 'IMEI 1 (Обязательно в случае телефона или планшета)', 'second_list': 'IMEI 2 (Если номер IMEI телефона или планшета равен 2, это обязательно)'}, {'first_list': 'IMEI 2 (Если номер IMEI телефона или планшета равен 2, это обязательно)', 'second_list': None}]\n", "trace": "  File \"/app/tests/fulfillment/test_courier/test_manifest.py\", line 97, in test_add_item_without_required_imei\n    ManifestBuilder().login_or_refresh().create_empty_manifest().update_parcels_in_manifest_batch(data=data)\n  File \"/app/src/framework/fulfillment/builders/courier/manifest.py\", line 57, in update_parcels_in_manifest_batch\n    .validate_headers(TableHeaders.UpdateManifest.value)\n     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/app/src/framework/common/helpers/xlsx.py\", line 187, in validate_headers\n    assert differences == [], f\"Headers aren't the same: {differences}\"\n           ^^^^^^^^^^^^^^^^^\n"}, "steps": [{"name": "Waiter function: login_or_refresh", "status": "passed", "steps": [{"name": "POST → https://dm-ff-be-service-account.k8s-review.dailymail-tech.uz/account/sign-in", "status": "passed", "steps": [{"name": "Request", "status": "passed", "attachments": [{"name": "request.headers", "source": "9bef6729-37df-4a86-ac8b-918356812039-attachment.json", "type": "application/json"}, {"name": "request.body", "source": "125533d0-6e3d-4c42-9268-30e7cd787fd5-attachment.json", "type": "application/json"}], "start": 1775690632573, "stop": 1775690632573}, {"name": "Response → 200, trace_id: be6a7df55d07c7b7cca5cfeb8cf22d82", "status": "passed", "attachments": [{"name": "response.headers", "source": "8e1e0671-fd7f-4e83-8990-03d8319f46af-attachment.json", "type": "application/json"}, {"name": "response.body", "source": "5a04c406-453e-4b11-bff9-00c0ca3e179c-attachment.json", "type": "application/json"}], "start": 1775690632573, "stop": 1775690632573}], "attachments": [{"name": "cURL", "source": "aa060adf-aceb-41f4-87ee-95fd23acbd8e-attachment.txt", "type": "text/plain"}], "start": 1775690632573, "stop": 1775690632573}], "start": 1775690632542, "stop": 1775690632577}, {"name": "POST → https://dm-ff-be-service-courier.k8s-review.dailymail-tech.uz/api/v1/courier/manifest/create-empty", "status": "passed", "steps": [{"name": "Request", "status": "passed", "attachments": [{"name": "request.headers", "source": "95878473-3443-4605-9cb1-fef32a161ae8-attachment.json", "type": "application/json"}], "start": 1775690632601, "stop": 1775690632601}, {"name": "Response → 200, trace_id: None", "status": "passed", "attachments": [{"name": "response.headers", "source": "d516534d-0fac-4ee9-8bbf-345b4f6b8629-attachment.json", "type": "application/json"}, {"name": "response.body", "source": "76eb62e6-2ea7-4347-bc29-98a96ea09ab6-attachment.json", "type": "application/json"}], "start": 1775690632601, "stop": 1775690632601}], "attachments": [{"name": "cURL", "source": "d1b8a818-9db4-4b66-99bc-362cd8c94918-attachment.txt", "type": "text/plain"}], "start": 1775690632601, "stop": 1775690632601}], "start": 1775690632542, "stop": 1775690632727}], "attachments": [{"name": "log", "source": "ed74ec8b-afd0-49fe-b808-592292358c13-attachment.txt", "type": "text/plain"}], "start": 1775690632505, "stop": 1775690632727, "uuid": "b3b8a560-f78e-44f9-aab5-1378cc53dd62", "historyId": "1afa708a7ad2b32d5bf6d13bca264c8c", "testCaseId": "1afa708a7ad2b32d5bf6d13bca264c8c", "fullName": "tests.fulfillment.test_courier.test_manifest.TestManifest#test_add_item_without_required_imei", "labels": [{"name": "tag", "value": "dm-ff-be-service-courier"}, {"name": "parentSuite", "value": "tests.fulfillment.test_courier"}, {"name": "suite", "value": "test_manifest"}, {"name": "subSuite", "value": "TestManifest"}, {"name": "host", "value": "runner-1rdl4o-mi-project-9-concurrent-2-9nd451tz"}, {"name": "thread", "value": "22-MainThread"}, {"name": "framework", "value": "pytest"}, {"name": "language", "value": "cpython3"}, {"name": "package", "value": "tests.fulfillment.test_courier.test_manifest"}], "titlePath": ["tests", "fulfillment", "test_courier", "test_manifest.py", "TestManifest"]}