Загрузка данных
Тело теста
Подготовка параметров сценария формирования отчёта об отбракованных входных данных 2 вложенных шага, 1 вложение0s
В конфигурации задан rejection_report_test Ожидаемый результат: rejection_report_test не пустое Фактический результат: rejection_report_test = CaseMarkers(test_case_id='210', offset=16)0s
Смещение timeOffset для запросов отчёта (часовой пояс Europe/Moscow) Ожидаемый результат: time_offset_hours не пустое Фактический результат: time_offset_hours = 30s
Фильтр периода отчёта об отбраковках
107 B
Этап 1. Подписка на пуш-нотификации (SubscribeReportsDataExportedRequest) 1 вложенный шаг1ms
Вызов SubscribeReportsDataExportedRequest c параметрами []1ms
Этап 2. Запрос формирования отчёта (ExportReportsCommandRequest) 1 вложенный шаг0s
Вызов ExportReportsCommandRequest c параметрами {'tuId': 3, 'exportedDataTypes': [7], 'timeOffset': 3, 'period': {'start': [Timestamp(seconds=1782126697, nanoseconds=0), 0], 'end': [Timestamp(seconds=1782127657, nanoseconds=0), 0], 'additionalProperties': {}}}0s
Этап 3. Ожидание пуш-нотификации ReportDataExportedNotification о готовности отчёта10s 002ms
Этап 4. Лонг-поллинг GetExportedDataListRequest до появления отчёта в списке 4 вложенных шага, 2 вложения10s 005ms
Вызов GetExportedDataListRequest c параметрами {'limit': 10}1ms
Подготовка данных найденного отчёта в списке 1 вложение0s
Найденный отчёт в списке
211 B
id=303, name=Отчёт об отбракованных входных данных Тихорецк-Новороссийск-3, exportedDataType=7, start=2026-06-22 14:11:37+03:00, end=2026-06-22 14:27:37+03:00
Проверка: отчёт найден в списке сформированных файлов 1 вложенный шаг0s
Отчёт найден в списке сформированных файлов Ожидаемый результат: report_item не пустое Фактический результат: report_item = ExportedDataItem(id=303, name='Отчёт об отбракованных входных данных Тихорецк-Новороссийск-3', exportedDataType=<ExportedDataType.REJECTED_REPORT: 7>, start=datetime.datetime(2026, 6, 22, 11, 11, 37, tzinfo=datetime.timezone.utc), end=datetime.datetime(2026, 6, 22, 11, 27, 37, tzinfo=datetime.timezone.utc))0s
Список сформированных файлов (всего: 10)
1.7 KiB
id=303, name=Отчёт об отбракованных входных данных Тихорецк-Новороссийск-3, type=7, start=2026-06-22 14:11:37+03:00, end=2026-06-22 14:27:37+03:00
id=301, name=Отчёт об отбракованных входных данных Тихорецк-Новороссийск-3, type=7, start=2026-06-22 10:52:32+03:00, end=2026-06-22 11:08:32+03:00
id=300, name=Отчёт об отбракованных входных данных Тихорецк-Новороссийск-3, type=7, start=2026-06-22 09:21:19+03:00, end=2026-06-22 10:31:19+03:00
id=299, name=Отчет о режиме работы СОУ. Тихорецк-Новороссийск-3, type=5, start=2026-06-22 06:35:35+03:00, end=2026-06-22 07:33:35+03:00
id=219, name=Отчет об утечках Тихорецк-Новороссийск-3, type=4, start=2026-06-22 06:35:35+03:00, end=2026-06-22 07:32:35+03:00
id=298, name=Отчет о режиме работы СОУ. Тихорецк-Новороссийск-3, type=5, start=2026-06-22 05:33:45+03:00, end=2026-06-22 06:31:45+03:00
id=218, name=Отчет об утечках Тихорецк-Новороссийск-3, type=4, start=2026-06-22 05:33:45+03:00, end=2026-06-22 06:30:45+03:00
id=297, name=Отчет о режиме работы СОУ. Тихорецк-Новороссийск-3, type=5, start=2026-06-22 04:31:55+03:00, end=2026-06-22 05:29:55+03:00
id=217, name=Отчет об утечках Тихорецк-Новороссийск-3, type=4, start=2026-06-22 04:31:55+03:00, end=2026-06-22 05:28:55+03:00
id=296, name=Отчет о режиме работы СОУ. Тихорецк-Новороссийск-3, type=5, start=2026-06-22 02:51:56+03:00, end=2026-06-22 03:50:56+03:00
Этап 5. Streaming-вызов DownloadExportedDataRequest по id=303 1 вложенный шаг0s
Streaming-вызов DownloadExportedDataRequest c параметрами {'exportedDataId': 303, 'exportedDataType': 'RejectedSignalsReport', 'additionalProperties': None, 'timeOffset': 3}0s
Этап 6. Получение fileChunk - скачивание отчёта об отбракованных входных данных 7 вложенных шагов504ms
Извлечение данных ответа на скачивание0s
Проверка ответа на скачивание и формата xlsx 4 вложенных шага0s
Проверка статуса ответа на скачивание Ожидаемый результат: replyStatus = 200 Фактический результат: replyStatus = 2000s
Проверка наличия контента ответа на скачивание Ожидаемый результат: replyContent = True Фактический результат: replyContent = True0s
Проверка наличия байт файла Ожидаемый результат: fileChunk не пустое Фактический результат: количество элементов в fileChunk = 69920s
Проверка xlsx (zip) сигнатуры файла Ожидаемый результат: file_signature = True Фактический результат: file_signature = True0s
Подготовка данных для проверки имени файла отчёта1ms
Этап 7. Сохранение и разбор xlsx-отчёта об отбракованных входных данных 1 вложенный шаг, 1 вложение9ms
Временный xlsx файл создан Ожидаемый результат: temp_file_path не пустое Фактический результат: temp_file_path = /tmp/rejected_report_9_ok1hwu.xlsx0s
Первая строка шапки xlsx-отчёта
202 B
Этап 8. Извлечение строк данных из отчёта 1 вложенный шаг, 1 вложение5ms
Подготовка данных шапки xlsx для проверки2ms
Строки отчёта по тегам RejectionSensorTag
210 B
row#3: 2026-06-22 14:23:15 | НПС-2 Крымская. Т-Н-3.НПС-2 «Крымская».ПНС РП. Расход | Отбракован по качеству | 0 | 0:04:02 | AK.CHTN.NPS_KRIM_P.UZR_1.Vmom
Проверка первой строки шапки xlsx-отчёта 5 вложенных шагов0s
Лист xlsx открыт Ожидаемый результат: worksheet не пустое Фактический результат: worksheet = <openpyxl.worksheet._read_only.ReadOnlyWorksheet object at 0x7fdce1263a00>0s
Первая строка шапки содержит заголовок отчёта об отбракованных входных данных Ожидаемый результат: report_title = True Фактический результат: report_title = True0s
Время начала периода в первой строке шапки совпадает с фильтром запроса (+-1 мин) Ожидаемый результат: Значение в поле period_start должно быть в диапазоне [2026-06-22 14:10:37, 2026-06-22 14:12:37] Фактический результат: period_start = 2026-06-22 14:11:370s
Время конца периода в первой строке шапки совпадает с фильтром запроса (+-1 мин) Ожидаемый результат: Значение в поле period_end должно быть в диапазоне [2026-06-22 14:26:37, 2026-06-22 14:28:37] Фактический результат: period_end = 2026-06-22 14:27:370s
Названия колонок во второй строке шапки отчёта Ожидаемый результат: column_headers = ['Дата и время', 'Объект', 'Событие', 'Значение', 'Продолжительность отбраковки', 'Тег сигнала'] Фактический результат: column_headers = ['Дата и время', 'Объект', 'Событие', 'Значение', 'Продолжительность отбраковки', 'Тег сигнала']0s
Проверка строк отчёта по каждому RejectionTestCase из конфигурации набора 4 вложенных шага1ms
В отчёте найдена отбраковка для события 'Отбракован по отсутствию значения' - AK.CHTN.NPS_KRIM_P.UZR_1.Vmom в интервале времени 2026-06-22 14:10:37.878240+03:00 - 2026-06-22 14:16:37.878240+03:00 Ожидаемый результат: Тег сигнала не пустое Фактический результат: Тег сигнала = None0s
AssertionError: [В отчёте найдена отбраковка для события 'Отбракован по отсутствию значения' - AK.CHTN.NPS_KRIM_P.UZR_1.Vmom в интервале времени 2026-06-22 14:10:37.878240+03:00 - 2026-06-22 14:16:37.878240+03:00
Ожидаемый результат: Тег сигнала не пустое
Фактический результат: Тег сигнала = None] Expected not <None>, but was.
В отчёте найдена отбраковка для события 'Отбракован по отсутствию значения' - AK.CHTN.LU_VELKRIM.KP_209-1.SW_215-3-1.Pin в интервале времени 2026-06-22 14:10:37.878240+03:00 - 2026-06-22 14:21:37.878240+03:00 Ожидаемый результат: Тег сигнала не пустое Фактический результат: Тег сигнала = None0s
AssertionError: [В отчёте найдена отбраковка для события 'Отбракован по отсутствию значения' - AK.CHTN.LU_VELKRIM.KP_209-1.SW_215-3-1.Pin в интервале времени 2026-06-22 14:10:37.878240+03:00 - 2026-06-22 14:21:37.878240+03:00
Ожидаемый результат: Тег сигнала не пустое
Фактический результат: Тег сигнала = None] Expected not <None>, but was.
В отчёте найдена отбраковка для события 'Отбракован по качеству' - AK.CHTN.NPS_KRIM_P.UZR_1.Vmom в интервале времени 2026-06-22 14:20:37.878240+03:00 - 2026-06-22 14:26:37.878240+03:00 Ожидаемый результат: Тег сигнала не пустое Фактический результат: Тег сигнала = RejectionReportRow(row_index=3, datetime_value=datetime.datetime(2026, 6, 22, 14, 23, 15), object_value='НПС-2 Крымская. Т-Н-3.НПС-2 «Крымская».ПНС РП. Расход', event_value='Отбракован по качеству', value_text='0', duration_seconds=242, tag_value='AK.CHTN.NPS_KRIM_P.UZR_1.Vmom')0s
Для события 'Отбракован по качеству' - AK.CHTN.NPS_KRIM_P.UZR_1.Vmom время получения отбраковки в допустимом диапазоне Ожидаемый результат: Значение в поле Дата и время должно быть в диапазоне [2026-06-22 14:20:37.878240+03:00, 2026-06-22 14:26:37.878240+03:00] Фактический результат: Дата и время = 2026-06-22 14:23:150s
TypeError: can't compare offset-naive and offset-aware datetimes