{"name": "test_cancelled_manifest", "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 0x760f6c80b050>\n\n    def test_cancelled_manifest(self):\n        data = [ManifestUpdateBatch(is_imei_present=True).to_dict() for _ in range(PARCEL_NUMBERS_FOR_BATCH_FILE)]\n    \n        with allure.step(\"Создаем пустой манифест\"):\n            builder_manifest = ManifestBuilder().login_or_refresh().create_empty_manifest()\n    \n        with allure.step(\"Добавляем посылки к манифесту методом batch\"):\n>           builder_manifest.update_parcels_in_manifest_batch(data=data)\n\ntests/fulfillment/test_courier/test_manifest.py:28: \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 0x760f6d1d3d10>\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": "SQLAlchemy query UNDEFINED ", "status": "passed", "attachments": [{"name": "query", "source": "4932b148-0bbf-4ef9-9977-f1e01ad60eb6-attachment.txt", "type": "text/plain"}, {"name": "params", "source": "836e91f1-7c16-4b2e-a135-7aacdde364a6-attachment.json", "type": "application/json"}], "start": 1775345063597, "stop": 1775345063597}, {"name": "SQLAlchemy query UNDEFINED ", "status": "passed", "attachments": [{"name": "query", "source": "6f776f0d-7acf-41fe-8e63-025e049cd600-attachment.txt", "type": "text/plain"}, {"name": "params", "source": "e6556a5b-b7d9-4338-b409-5bbfcf5f203d-attachment.json", "type": "application/json"}], "start": 1775345063599, "stop": 1775345063599}, {"name": "SQLAlchemy query UNDEFINED ", "status": "passed", "attachments": [{"name": "query", "source": "8e589c91-0665-466a-a7db-f811cb4f76aa-attachment.txt", "type": "text/plain"}, {"name": "params", "source": "ee0256ed-1334-422a-9e87-8e56c3330932-attachment.json", "type": "application/json"}], "start": 1775345063600, "stop": 1775345063601}, {"name": "Создаем пустой манифест", "status": "passed", "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": "281c0177-9891-456e-9255-ec4def0eb3be-attachment.json", "type": "application/json"}, {"name": "request.body", "source": "19894092-b95d-4eed-afbb-2c24d9776a44-attachment.json", "type": "application/json"}], "start": 1775345065206, "stop": 1775345065206}, {"name": "Response → 200, trace_id: 8fbe0d28c51e19ad249ad453e28d4848", "status": "passed", "attachments": [{"name": "response.headers", "source": "d5319109-8d86-4b69-a0f3-a5fe538a8744-attachment.json", "type": "application/json"}, {"name": "response.body", "source": "ba5c9d0e-8d1e-40c2-a3bc-dd5240422439-attachment.json", "type": "application/json"}], "start": 1775345065206, "stop": 1775345065206}], "attachments": [{"name": "cURL", "source": "965a23e4-3775-4268-8ebe-8d5b7d8cb939-attachment.txt", "type": "text/plain"}], "start": 1775345065206, "stop": 1775345065206}], "start": 1775345063637, "stop": 1775345065209}, {"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": "72d5cce9-59f9-4236-9577-81a58420e894-attachment.json", "type": "application/json"}], "start": 1775345065529, "stop": 1775345065529}, {"name": "Response → 200, trace_id: None", "status": "passed", "attachments": [{"name": "response.headers", "source": "9f351504-c36f-4edf-a868-e73042208959-attachment.json", "type": "application/json"}, {"name": "response.body", "source": "3b548901-86f7-4cb7-9188-ff27d049dfab-attachment.json", "type": "application/json"}], "start": 1775345065529, "stop": 1775345065530}], "attachments": [{"name": "cURL", "source": "6b770f10-53c1-4a9e-a2c6-fb9e841bb519-attachment.txt", "type": "text/plain"}], "start": 1775345065529, "stop": 1775345065530}], "start": 1775345063637, "stop": 1775345065536}, {"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 28, in test_cancelled_manifest\n    builder_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"}, "start": 1775345065536, "stop": 1775345066298}], "attachments": [{"name": "log", "source": "926f2137-0ec6-4fad-b9c2-f350d87e393f-attachment.txt", "type": "text/plain"}], "start": 1775345063573, "stop": 1775345066298, "uuid": "a99644d7-4b00-4d4c-87ac-49b7da260a0b", "historyId": "ae421489d151f4ad45063f60aeaceafb", "testCaseId": "ae421489d151f4ad45063f60aeaceafb", "fullName": "tests.fulfillment.test_courier.test_manifest.TestManifest#test_cancelled_manifest", "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-jomgnngp"}, {"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"]}