{"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 0x7b2b1ff66ad0>\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 0x7b2b1c9e9f90>\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": 1775777033127, "stop": 1775777033160}, {"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": "1c065d78-4c4a-4869-b1c8-10938641fd6e-attachment.json", "type": "application/json"}, {"name": "request.body", "source": "c2d6c99f-296d-422f-b294-f5f9380f6811-attachment.json", "type": "application/json"}], "start": 1775777033190, "stop": 1775777033190}, {"name": "Response → 200, trace_id: 2dd5f29fae012fc2a6b69e80cb2ecc9b", "status": "passed", "attachments": [{"name": "response.headers", "source": "5c1ceab7-85ee-422e-af26-d405da79c4ca-attachment.json", "type": "application/json"}, {"name": "response.body", "source": "d4b029f6-aa48-41d9-958b-23c5bfa567b6-attachment.json", "type": "application/json"}], "start": 1775777033190, "stop": 1775777033190}], "attachments": [{"name": "cURL", "source": "65bd9884-ca1c-47aa-a2a9-f8ab5dd266c1-attachment.txt", "type": "text/plain"}], "start": 1775777033190, "stop": 1775777033191}], "start": 1775777033160, "stop": 1775777033194}, {"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": "6b0fb861-5a64-46db-9843-8a31837933ef-attachment.json", "type": "application/json"}], "start": 1775777033220, "stop": 1775777033220}, {"name": "Response → 200, trace_id: None", "status": "passed", "attachments": [{"name": "response.headers", "source": "174e15aa-ffd3-4309-957d-5769e5c7394d-attachment.json", "type": "application/json"}, {"name": "response.body", "source": "3fcd6b7e-b2a4-4317-8d7f-da23e3f0c8c0-attachment.json", "type": "application/json"}], "start": 1775777033220, "stop": 1775777033220}], "attachments": [{"name": "cURL", "source": "07e6be02-4f72-4df9-ae81-af84ccc82a9d-attachment.txt", "type": "text/plain"}], "start": 1775777033220, "stop": 1775777033220}], "start": 1775777033160, "stop": 1775777033369}], "attachments": [{"name": "log", "source": "ac7143b8-1d27-4e60-a66e-4e6257273111-attachment.txt", "type": "text/plain"}], "start": 1775777033126, "stop": 1775777033369, "uuid": "c5880aed-2dae-4332-b944-14bbc2c5df5e", "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-pnip4b0t"}, {"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"]}