{"name": "test_manifest_batch_upload_with_incomplete_requirement_columns[hs_code]", "status": "failed", "statusDetails": {"message": "AssertionError: assert 'Неверный формат файла обновления' in \"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 +  where \"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}]\" = str(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 0x779a02e417d0>\nempty_manifest = <src.framework.fulfillment.builders.courier.manifest.ManifestBuilder object at 0x779a02da3890>\ncolumn_name = 'hs_code'\n\n    @pytest.mark.parametrize(\"column_name\", REQUIRED_COLUMNS_FOR_MANIFEST_FILE_FIRST_CHECK)\n    def test_manifest_batch_upload_with_incomplete_requirement_columns(self, empty_manifest, column_name):\n        list_manifest_for_batch_file = [\n            ManifestUpdateBatch().set_attr(column_name, \"\").to_dict() for _ in range(PARCEL_NUMBERS_FOR_BATCH_FILE)\n        ]\n    \n        try:\n            (\n                ManifestBuilder()\n                .login_or_refresh()\n>               .update_parcels_in_manifest_batch(\n                    manifest_id=empty_manifest.manifest.manifest_id, data=list_manifest_for_batch_file\n                )\n            )\n\ntests/fulfillment/test_courier/test_manifest.py:48: \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 0x779a02e247d0>\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\n\nDuring handling of the above exception, another exception occurred:\n\nself = <tests.fulfillment.test_courier.test_manifest.TestManifest object at 0x779a02e417d0>\nempty_manifest = <src.framework.fulfillment.builders.courier.manifest.ManifestBuilder object at 0x779a02da3890>\ncolumn_name = 'hs_code'\n\n    @pytest.mark.parametrize(\"column_name\", REQUIRED_COLUMNS_FOR_MANIFEST_FILE_FIRST_CHECK)\n    def test_manifest_batch_upload_with_incomplete_requirement_columns(self, empty_manifest, column_name):\n        list_manifest_for_batch_file = [\n            ManifestUpdateBatch().set_attr(column_name, \"\").to_dict() for _ in range(PARCEL_NUMBERS_FOR_BATCH_FILE)\n        ]\n    \n        try:\n            (\n                ManifestBuilder()\n                .login_or_refresh()\n                .update_parcels_in_manifest_batch(\n                    manifest_id=empty_manifest.manifest.manifest_id, data=list_manifest_for_batch_file\n                )\n            )\n        except AssertionError as e:\n>           assert \"Неверный формат файла обновления\" in str(e)\nE           assert 'Неверный формат файла обновления' in \"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}]\"\nE            +  where \"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}]\" = str(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\ntests/fulfillment/test_courier/test_manifest.py:53: AssertionError"}, "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": "b5cfbb18-48ff-47bd-a1eb-a1da4821981f-attachment.json", "type": "application/json"}, {"name": "request.body", "source": "c4be63c1-f26d-4e82-9345-7921ff245328-attachment.json", "type": "application/json"}], "start": 1775431430138, "stop": 1775431430138}, {"name": "Response → 200, trace_id: 0c327651fc063e2e21a703597e0be576", "status": "passed", "attachments": [{"name": "response.headers", "source": "0f9b4779-2e0a-414e-b09a-dbb03a43c0e8-attachment.json", "type": "application/json"}, {"name": "response.body", "source": "29b9d433-567d-4a3c-b931-259f3f0769a9-attachment.json", "type": "application/json"}], "start": 1775431430138, "stop": 1775431430138}], "attachments": [{"name": "cURL", "source": "44a46be5-79d6-432b-aa2a-6f0287079aeb-attachment.txt", "type": "text/plain"}], "start": 1775431430138, "stop": 1775431430138}], "start": 1775431430105, "stop": 1775431430142}], "attachments": [{"name": "log", "source": "90db2d19-2ec9-4703-a7a6-499d4cb2825f-attachment.txt", "type": "text/plain"}], "parameters": [{"name": "column_name", "value": "'hs_code'"}], "start": 1775431430076, "stop": 1775431430267, "uuid": "e7eb7687-a25a-494b-884d-c5111040e0a7", "historyId": "ee597ea3c21ab63f31c19c1c9f3e1191", "testCaseId": "04be9ebc6ca04e25fd7a467745744354", "fullName": "tests.fulfillment.test_courier.test_manifest.TestManifest#test_manifest_batch_upload_with_incomplete_requirement_columns", "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-0eguo0t4"}, {"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"]}