Загрузка данных
им 1
"""
Конфигурация тестового набора Imitative_1_tn3_56km_113 (режим остановленной перекачки)
Особенности набора:
- Режим МТ Остановленная перекачка (StationaryStatus.STOPPED)
- Одна утечка на координате 56 км
- Объём утечки 113.6 м³
- Интенсивность утечки 3,6%
- При перестройке путей течения, Режим СОУ может меняться
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
MeasureConversionRule,
ReservedType,
StationaryStatus,
StoppedPumpingReason,
TU,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import CaseData, CaseMarkers, LeakTestConfig, SmokeSuiteConfig
# ===== Константы набора =====
SUITE_NAME = "Imitative_1_tn3_56km_113"
SUITE_DATA_ID = 20
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# Параметры утечки
LEAK_COORDINATE_METERS = 56000.0
LEAK_VOLUME_M3 = 113.6
ALLOWED_TIME_DIFF_SECONDS = 1440 # 24 минуты
LEAK_START_INTERVAL_SECONDS = 1800 # 30 минут
FLOW_RATE_SETTINGS_THRESHOLD = 7
# ID диагностических участков
LEAK_DIAGNOSTIC_AREA_ID = 2
LEAK_DIAGNOSTIC_AREA_NAME = "Т-Н-3.НПС-5 «Тихорецкая».УЗР вых - Т-Н-3.УЗР НПС-3 «Нововеличковская»."
# ID труб для определения ДУ
DIAGNOSTIC_AREA_2_PIPE_ID = 1463 # Труба на ДУ с утечкой
DIAGNOSTIC_AREA_3_PIPE_ID = 1444 # OUT_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
# ID линейного участка
LINEAR_PART_ID = 407
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
IMITATIVE_1_CONFIG = SmokeSuiteConfig(
# ----- Метаданные -----
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.KG_CM_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.STOPPED,
expected_report_stationary_status=StationaryStatus.STOPPED.value,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.STOPPED, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.STOPPED, LdsStatus.SERVICEABLE),
"exp_krymskaya_grushovaya": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=5),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="86", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="228", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.STOPPED, StoppedPumpingReason.STOPPING_PUMPS),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.STOPPED.report_text,
StoppedPumpingReason.STOPPING_PUMPS.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="3", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="32", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25),
lds_status_initialization_out_test=CaseMarkers(test_case_id="30", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=58),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=59),
# ===== КОНФИГУРАЦИЯ УТЕЧКИ =====
leak=LeakTestConfig(
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
linear_part_id=LINEAR_PART_ID,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=ALLOWED_TIME_DIFF_SECONDS,
# ----- Ожидаемые статусы -----
expected_algorithm_type=ReservedType.STOP,
expected_stationary_status=StationaryStatus.STOPPED,
expected_lds_status=LdsStatus.SERVICEABLE,
expected_leak_status=ConfirmationStatus.CONFIRMED,
expected_lds_status_in_leaks_report=LdsStatus.SERVICEABLE.value,
expected_report_stationary_status=StationaryStatus.STOPPED.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=41), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=54),
# ----- Тест MessageInfo -----
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=46),
# ----- Тест AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="20", offset=54),
# ----- Тест LeaksContent -----
leaks_content_test=CaseMarkers(test_case_id="91", offset=54),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="84", offset=54),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="154", offset=54),
# ----- Тест MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=55),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="6", offset=55),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=55.5),
# ----- Тест OutputSignals -----
output_signals_test=CaseMarkers(test_case_id="158", offset=56),
# ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=57),
),
)
2
"""
Конфигурация тестового набора Imitative_2_tn3_106km_113 (режим остановленной перекачки)
Особенности набора:
- Режим МТ Остановленная перекачка (StationaryStatus.STOPPED)
- Одна утечка на координате 106 км
- Объём утечки 113.6 м³
- Интенсивность утечки 3,6%
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
MeasureConversionRule,
ReservedType,
StationaryStatus,
StoppedPumpingReason,
TU,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import CaseData, CaseMarkers, LeakTestConfig, SmokeSuiteConfig
# ===== Константы набора =====
SUITE_NAME = "Imitative_2_tn3_106km_113"
SUITE_DATA_ID = 21
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# Параметры утечки
LEAK_COORDINATE_METERS = 106000.0
LEAK_VOLUME_M3 = 113.6
ALLOWED_TIME_DIFF_SECONDS = 1440 # 24 минуты
LEAK_START_INTERVAL_SECONDS = 1800 # 30 минут
FLOW_RATE_SETTINGS_THRESHOLD = 7
# ID диагностических участков
LEAK_DIAGNOSTIC_AREA_ID = 2
LEAK_DIAGNOSTIC_AREA_NAME = "Т-Н-3.НПС-5 «Тихорецкая».УЗР вых - Т-Н-3.УЗР НПС-3 «Нововеличковская»."
# ID труб для определения ДУ
DIAGNOSTIC_AREA_2_PIPE_ID = 1463 # Труба на ДУ с утечкой
DIAGNOSTIC_AREA_3_PIPE_ID = 1444 # OUT_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
# ID линейного участка
LINEAR_PART_ID = 407
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
IMITATIVE_2_CONFIG = SmokeSuiteConfig(
# ----- Метаданные -----
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.KG_CM_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.STOPPED,
expected_report_stationary_status=StationaryStatus.STOPPED.value,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.STOPPED, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.STOPPED, LdsStatus.SERVICEABLE),
"exp_krymskaya_grushovaya": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=5),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="86", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="228", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.STOPPED, StoppedPumpingReason.STOPPING_PUMPS),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.STOPPED.report_text,
StoppedPumpingReason.STOPPING_PUMPS.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="3", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="32", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25),
lds_status_initialization_out_test=CaseMarkers(test_case_id="30", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=58),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=59),
# ===== КОНФИГУРАЦИЯ УТЕЧКИ =====
leak=LeakTestConfig(
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
linear_part_id=LINEAR_PART_ID,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=ALLOWED_TIME_DIFF_SECONDS,
# ----- Ожидаемые статусы -----
expected_algorithm_type=ReservedType.STOP,
expected_stationary_status=StationaryStatus.STOPPED,
expected_lds_status=LdsStatus.SERVICEABLE,
expected_leak_status=ConfirmationStatus.CONFIRMED,
expected_lds_status_in_leaks_report=LdsStatus.SERVICEABLE.value,
expected_report_stationary_status=StationaryStatus.STOPPED.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=41), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=54),
# ----- Тест MessageInfo -----
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=46),
# ----- Тест AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="21", offset=54),
# ----- Тест LeaksContent -----
leaks_content_test=CaseMarkers(test_case_id="91", offset=54),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="84", offset=54),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="154", offset=54),
# ----- Тест MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=55),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="6", offset=55),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=55.5),
# ----- Тест OutputSignals -----
output_signals_test=CaseMarkers(test_case_id="158", offset=56),
# ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=57),
),
)
4
"""
Конфигурация тестового набора Imitative_4_tn3_129km_113 (режим остановленной перекачки)
Особенности набора:
- Режим МТ Остановленная перекачка (StationaryStatus.STOPPED)
- Одна утечка на координате 129 км
- Объём утечки 113.6 м³
- Интенсивность утечки 3,6%
- Отбор на НПС Нововеличковская
- При перестройке путей течения, Режим СОУ может меняться
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
MeasureConversionRule,
ReservedType,
StationaryStatus,
StoppedPumpingReason,
TU,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import CaseData, CaseMarkers, LeakTestConfig, SmokeSuiteConfig
# ===== Константы набора =====
SUITE_NAME = "Imitative_4_tn3_129km_113"
SUITE_DATA_ID = 22
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# Параметры утечки
LEAK_COORDINATE_METERS = 129000.0
LEAK_VOLUME_M3 = 113.6
ALLOWED_TIME_DIFF_SECONDS = 1440 # 24 минуты
LEAK_START_INTERVAL_SECONDS = 1800 # 30 минут
FLOW_RATE_SETTINGS_THRESHOLD = 7
# ID диагностических участков
LEAK_DIAGNOSTIC_AREA_ID = 3
LEAK_DIAGNOSTIC_AREA_NAME = "Т-Н-3.НПС-5 «Тихорецкая».УЗР СИКН ТН-3 - НПЗ Афипский"
# ID линейного участка
LINEAR_PART_ID = 407
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
IMITATIVE_4_CONFIG = SmokeSuiteConfig(
# ----- Метаданные -----
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.KG_CM_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.STOPPED,
expected_report_stationary_status=StationaryStatus.STOPPED.value,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.STOPPED, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.STOPPED, LdsStatus.SERVICEABLE),
"exp_krymskaya_grushovaya": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=5),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="86", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="228", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.STOPPED, StoppedPumpingReason.STOPPING_PUMPS),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.STOPPED.report_text,
StoppedPumpingReason.STOPPING_PUMPS.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="3", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="32", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25),
lds_status_initialization_out_test=CaseMarkers(test_case_id="30", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=58),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=59),
# ===== КОНФИГУРАЦИЯ УТЕЧКИ =====
leak=LeakTestConfig(
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
linear_part_id=LINEAR_PART_ID,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=ALLOWED_TIME_DIFF_SECONDS,
# ----- Ожидаемые статусы -----
expected_algorithm_type=ReservedType.STOP,
expected_stationary_status=StationaryStatus.STOPPED,
expected_lds_status=LdsStatus.SERVICEABLE,
expected_leak_status=ConfirmationStatus.CONFIRMED,
expected_lds_status_in_leaks_report=LdsStatus.SERVICEABLE.value,
expected_report_stationary_status=StationaryStatus.STOPPED.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=41), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=54),
# ----- Тест MessageInfo -----
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=46),
# ----- Тест AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="22", offset=54),
# ----- Тест LeaksContent -----
leaks_content_test=CaseMarkers(test_case_id="91", offset=54),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="84", offset=54),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="154", offset=54),
# ----- Тест MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=55),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="6", offset=55),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=55.5),
# ----- Тест OutputSignals -----
output_signals_test=CaseMarkers(test_case_id="158", offset=56),
# ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=57),
),
)
7
"""
Конфигурация тестового набора Imitative_7_tn3_215km_50 (режим остановленной перекачки)
Особенности набора:
- Режим МТ Остановленная перекачка (StationaryStatus.STOPPED)
- Одна утечка на координате 215 км
- Объём утечки 50,0 м³
- Интенсивность утечки 1,8%
- При перестройке путей течения, Режим СОУ может меняться
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
MeasureConversionRule,
ReservedType,
StationaryStatus,
StoppedPumpingReason,
TU,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import CaseData, CaseMarkers, LeakTestConfig, SmokeSuiteConfig
# ===== Константы набора =====
SUITE_NAME = "Imitative_7_tn3_215km_50"
SUITE_DATA_ID = 23
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# Параметры утечки
LEAK_COORDINATE_METERS = 215000.0
LEAK_VOLUME_M3 = 50.0
ALLOWED_TIME_DIFF_SECONDS = 1800 # 30 минут
LEAK_START_INTERVAL_SECONDS = 1800 # 30 минут
FLOW_RATE_SETTINGS_THRESHOLD = 7
# ID диагностических участков
LEAK_DIAGNOSTIC_AREA_ID = 3
LEAK_DIAGNOSTIC_AREA_NAME = "Т-Н-3.УЗР НПС-3 «Нововеличковская». - Т-Н-3.НПС-2 «Крымская».УЗР СИКН Т-К"
# ID линейного участка
LINEAR_PART_ID = 408
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
IMITATIVE_7_CONFIG = SmokeSuiteConfig(
# ----- Метаданные -----
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.KG_CM_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.STOPPED,
expected_report_stationary_status=StationaryStatus.STOPPED.value,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.STOPPED, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.STOPPED, LdsStatus.SERVICEABLE),
"exp_krymskaya_grushovaya": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=5),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="86", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="228", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.STOPPED, StoppedPumpingReason.STOPPING_PUMPS),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.STOPPED.report_text,
StoppedPumpingReason.STOPPING_PUMPS.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="3", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="32", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25),
lds_status_initialization_out_test=CaseMarkers(test_case_id="30", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=64),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=65),
# ===== КОНФИГУРАЦИЯ УТЕЧКИ =====
leak=LeakTestConfig(
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
linear_part_id=LINEAR_PART_ID,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=ALLOWED_TIME_DIFF_SECONDS,
# ----- Ожидаемые статусы -----
expected_algorithm_type=ReservedType.STOP,
expected_leak_status=ConfirmationStatus.CONFIRMED,
expected_lds_status=LdsStatus.SERVICEABLE, # При перестройке путей течения, Режим СОУ может меняться
expected_stationary_status=StationaryStatus.STOPPED,
expected_lds_status_in_leaks_report=LdsStatus.SERVICEABLE.value,
expected_report_stationary_status=StationaryStatus.STOPPED.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=42), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=60),
# ----- Тест MessageInfo -----
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=42),
# ----- Тест AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="23", offset=60),
# ----- Тест LeaksContent -----
leaks_content_test=CaseMarkers(test_case_id="91", offset=60),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="84", offset=60),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="154", offset=60),
# ----- Тест MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=61),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="6", offset=61),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=61.5),
# ----- Тест OutputSignals -----
output_signals_test=CaseMarkers(test_case_id="158", offset=62),
# ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=63),
),
)
17
"""
Конфигурация тестового набора Imitative_17_tn3_5km_113
Особенности набора:
- Режим МТ стационар, минимальный
- Одна утечка на координате 5 км
- Объём утечки 113 м³
- Интенсивность утечки 3,6%
- Отбор на участке между СИ давления на выходе головной НПС и СИ давления на следующем КП на ЛЧ (на входе первой ЗА ЛЧ)
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
LdsStatusInitialization,
MeasureConversionRule,
ReservedType,
StationaryReason,
StationaryStatus,
TU,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import (
CaseData,
CaseMarkers,
DiagnosticAreaStatusConfig,
LeakTestConfig,
SmokeSuiteConfig,
)
# ===== Константы набора =====
SUITE_NAME = "Imitative_17_tn3_5km_113"
SUITE_DATA_ID = 24
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# Параметры утечки
LEAK_COORDINATE_METERS = 5400.0
LEAK_VOLUME_M3 = 113.0
ALLOWED_TIME_DIFF_SECONDS = 1440 # 24 минуты
LEAK_START_INTERVAL_SECONDS = 2100 # 35 минут
FLOW_RATE_SETTINGS_THRESHOLD = 17
# ID диагностических участков
LEAK_DIAGNOSTIC_AREA_ID = 2
LEAK_DIAGNOSTIC_AREA_NAME = "Т-Н-3.НПС-5 «Тихорецкая».УЗР вых - Т-Н-3.УЗР НПС-3 «Нововеличковская»."
# ID труб для определения ДУ
DIAGNOSTIC_AREA_2_PIPE_ID = 1463 # Труба на ДУ с утечкой
DIAGNOSTIC_AREA_3_PIPE_ID = 1444 # OUT_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
# ID линейного участка
LINEAR_PART_ID = 407
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
IMITATIVE_17_CONFIG = SmokeSuiteConfig(
# ===== Метаданные =====
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.KG_CM_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.STATIONARY,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_krymskaya_grushovaya": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.STATIONARY, LdsStatus.FAULTY),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=5),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="86", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="228", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.STATIONARY, StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.STATIONARY.report_text,
StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="3", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="32", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25),
lds_status_initialization_out_test=CaseMarkers(test_case_id="30", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=64),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=65),
# # ===== КОНФИГУРАЦИЯ УТЕЧКИ =====
leak=LeakTestConfig(
# ----- Конфигурация статусов СОУ во время утечки -----
lds_status_during_leak_config=DiagnosticAreaStatusConfig(
leak_diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
leak_du_expected_lds_status=LdsStatus.INITIALIZATION,
neighbors_du_expected_lds_status=LdsStatus.DEGRADATION,
),
# ----- Ожидаемый статус СОУ -----
lds_status_after_confirming_leak_data=CaseData(
params={"pipe_id": DIAGNOSTIC_AREA_2_PIPE_ID},
expected_result=(
LdsStatus.INITIALIZATION,
LdsStatusInitialization.ACCUMULATION_DATA.value,
),
),
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
linear_part_id=LINEAR_PART_ID,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=ALLOWED_TIME_DIFF_SECONDS,
# ----- Ожидаемые статусы -----
expected_lds_status=LdsStatus.SERVICEABLE,
expected_stationary_status=StationaryStatus.STATIONARY,
expected_algorithm_type=ReservedType.STATIONARY_FLOW,
expected_leak_status=ConfirmationStatus.CONFIRMED,
expected_lds_status_in_leaks_report=LdsStatus.SERVICEABLE.value,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=47), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=58),
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=52),
# ----- Тест AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="24", offset=58),
# ----- Тест LeakContent -----
leaks_content_test=CaseMarkers(test_case_id="91", offset=58),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="84", offset=58),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="154", offset=58),
# ----- Тест CommonSchemeContent -----
lds_status_during_leak_test=CaseMarkers(test_case_id="31", offset=58.5),
# ----- Тест MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=60),
lds_status_after_confirming_leak_test=CaseMarkers(test_case_id="201", offset=60),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="6", offset=60.5),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=61),
# ----- Тест OutputSignals -----
output_signals_test=CaseMarkers(test_case_id="158", offset=62),
# ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=63),
),
)
20
"""
Конфигурация тестового набора Imitative_20_tn3_129km_113
Особенности набора:
- Режим МТ стационар, минимальный
- Одна утечка на координате 129 км
- Объём утечки 113.6 м³
- Интенсивность утечки 3,6%
- Отбор на НПС Нововеличковская (до МНС)
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
MeasureConversionRule,
ReservedType,
StationaryReason,
StationaryStatus,
TU,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import (
CaseData,
CaseMarkers,
DiagnosticAreaStatusConfig,
LeakTestConfig,
SmokeSuiteConfig,
)
# ===== Константы набора =====
SUITE_NAME = "Imitative_20_tn3_129km_113"
SUITE_DATA_ID = 25
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# Параметры утечки
LEAK_COORDINATE_METERS = 129000
LEAK_VOLUME_M3 = 113.6
ALLOWED_TIME_DIFF_SECONDS = 1440 # 24 минуты
LEAK_START_INTERVAL_SECONDS = 2100 # 35 минут
LEAK_TECHNOLOGICAL_OBJECT = "НПС-5 Тихорецкая - НПС-3 Нововеличковская"
FLOW_RATE_SETTINGS_THRESHOLD = 17
# ID диагностических участков
LEAK_DIAGNOSTIC_AREA_ID = 3
LEAK_DIAGNOSTIC_AREA_NAME = "Т-Н-3.НПС-5 «Тихорецкая».УЗР вых - Т-Н-3.УЗР НПС-3 «Нововеличковская»."
# ID труб для определения ДУ
DIAGNOSTIC_AREA_3_PIPE_ID = 474 # Труба на ДУ с утечкой
DIAGNOSTIC_AREA_2_PIPE_ID = 1463 # IN_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
DIAGNOSTIC_AREA_6_PIPE_ID = 999205440 # OUT_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
# ID линейного участка
LINEAR_PART_ID = 407
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
IMITATIVE_20_CONFIG = SmokeSuiteConfig(
# ===== Метаданные =====
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.KG_CM_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.STATIONARY,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_krymskaya_grushovaya": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.STATIONARY, LdsStatus.FAULTY),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=5),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="86", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="228", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.STATIONARY, StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.STATIONARY.report_text,
StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="3", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="32", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25),
lds_status_initialization_out_test=CaseMarkers(test_case_id="30", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=63),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=64),
# ===== КОНФИГУРАЦИЯ УТЕЧКИ =====
leak=LeakTestConfig(
# ----- Конфигурация статусов СОУ во время утечки -----
lds_status_during_leak_config=DiagnosticAreaStatusConfig(
leak_diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
leak_du_expected_lds_status=LdsStatus.INITIALIZATION,
neighbors_du_expected_lds_status=LdsStatus.DEGRADATION,
),
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
linear_part_id=LINEAR_PART_ID,
technological_object=LEAK_TECHNOLOGICAL_OBJECT,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=ALLOWED_TIME_DIFF_SECONDS,
# ----- Ожидаемые статусы -----
expected_lds_status=LdsStatus.SERVICEABLE,
expected_stationary_status=StationaryStatus.STATIONARY,
expected_algorithm_type=ReservedType.STATIONARY_FLOW,
expected_leak_status=ConfirmationStatus.CONFIRMED,
expected_lds_status_in_leaks_report=LdsStatus.SERVICEABLE.value,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=46), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=59),
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=51),
# ----- Тест AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="25", offset=59),
# ----- Тест LeaksContent -----
leaks_content_test=CaseMarkers(test_case_id="91", offset=59),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="154", offset=59),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="84", offset=59),
# ----- Тест CommonSchemeContent -----
lds_status_during_leak_test=CaseMarkers(test_case_id="31", offset=59.5),
# ----- Тест MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=60),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="6", offset=60.5),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=61),
# ----- Тест OutputSignals -----
output_signals_test=CaseMarkers(test_case_id="158", offset=61.5),
# ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=62),
),
)
29
"""
Конфигурация тестового набора Imitative_29_tn3_56km_3156
Особенности набора:
- Режим МТ стационар, минимальный
- Одна утечка на координате 56 км
- Объём утечки 3156 м³
- Интенсивность утечки 100%
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
LdsStatusInitialization,
MeasureConversionRule,
ReservedType,
StationaryReason,
StationaryStatus,
TU,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import (
CaseData,
CaseMarkers,
DiagnosticAreaStatusConfig,
LeakTestConfig,
SmokeSuiteConfig,
)
# ===== Константы набора =====
SUITE_NAME = "Imitative_29_tn3_56km_3156"
SUITE_DATA_ID = 33
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# Параметры утечки
LEAK_COORDINATE_METERS = 56000.0
LEAK_VOLUME_M3 = 3156.0
ALLOWED_TIME_DIFF_SECONDS = 360 # 6 мин
LEAK_START_INTERVAL_SECONDS = 1800 # 30 минут
FLOW_RATE_SETTINGS_THRESHOLD = 17
# ID диагностических участков
LEAK_DIAGNOSTIC_AREA_ID = 2
LEAK_DIAGNOSTIC_AREA_NAME = "Т-Н-3.НПС-5 «Тихорецкая».УЗР вых - Т-Н-3.УЗР НПС-3 «Нововеличковская»."
# ID труб для определения ДУ
DIAGNOSTIC_AREA_2_PIPE_ID = 1463 # Труба на ДУ с утечкой
DIAGNOSTIC_AREA_3_PIPE_ID = 1444 # OUT_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
# ID линейного участка
LINEAR_PART_ID = 407
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
IMITATIVE_29_CONFIG = SmokeSuiteConfig(
# ===== Метаданные =====
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.KG_CM_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.STATIONARY,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.STATIONARY, LdsStatus.DEGRADATION),
"exp_krymskaya_grushovaya": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.STATIONARY, LdsStatus.FAULTY),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=5),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="86", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="228", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.STATIONARY, StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.STATIONARY.report_text,
StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="3", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="32", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25),
lds_status_initialization_out_test=CaseMarkers(test_case_id="30", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=30),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=42),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=43),
# ===== КОНФИГУРАЦИЯ УТЕЧКИ =====
leak=LeakTestConfig(
# ----- Конфигурация статусов СОУ во время утечки -----
lds_status_during_leak_config=DiagnosticAreaStatusConfig(
leak_diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
leak_du_expected_lds_status=LdsStatus.INITIALIZATION,
neighbors_du_expected_lds_status=LdsStatus.DEGRADATION,
),
# ----- Ожидаемый статус СОУ -----
lds_status_after_confirming_leak_data=CaseData(
params={"pipe_id": DIAGNOSTIC_AREA_2_PIPE_ID},
expected_result=(
LdsStatus.INITIALIZATION,
LdsStatusInitialization.ACCUMULATION_DATA.value,
),
),
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
linear_part_id=LINEAR_PART_ID,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=ALLOWED_TIME_DIFF_SECONDS,
# ----- Ожидаемые статусы -----
expected_lds_status=LdsStatus.DEGRADATION,
expected_stationary_status=StationaryStatus.STATIONARY,
expected_algorithm_type=ReservedType.STATIONARY_FLOW,
expected_leak_status=ConfirmationStatus.CONFIRMED,
expected_lds_status_in_leaks_report=LdsStatus.DEGRADATION.value,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=30), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=36),
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=32),
# ----- Тест AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="33", offset=36),
# ----- Тест LeakContent -----
leaks_content_test=CaseMarkers(test_case_id="91", offset=36),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="84", offset=36),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="154", offset=36),
# ----- Тест CommonSchemeContent -----
lds_status_during_leak_test=CaseMarkers(test_case_id="31", offset=36.5),
# ----- Тест MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=38),
lds_status_after_confirming_leak_test=CaseMarkers(test_case_id="201", offset=38),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="6", offset=38.5),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=39),
# ----- Тест OutputSignals -----
output_signals_test=CaseMarkers(test_case_id="158", offset=40),
# ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=41),
),
)
31
"""
Конфигурация тестового набора Imitative_31_tn3_215km_284
Особенности набора:
- Режим МТ стационар, минимальный
- Одна утечка на координате 215 км
- Объём утечки 284 м³
- Интенсивность утечки 9%
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
LdsStatusInitialization,
MeasureConversionRule,
ReservedType,
StationaryReason,
StationaryStatus,
TU,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import (
CaseData,
CaseMarkers,
DiagnosticAreaStatusConfig,
LeakTestConfig,
SmokeSuiteConfig,
)
# ===== Константы набора =====
SUITE_NAME = "Imitative_31_tn3_215km_284"
SUITE_DATA_ID = 26
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# Параметры утечки
LEAK_COORDINATE_METERS = 215000.0
LEAK_VOLUME_M3 = 284.0
ALLOWED_TIME_DIFF_SECONDS = 1440 # 24 минуты
LEAK_START_INTERVAL_SECONDS = 1800 # 30 минут
FLOW_RATE_SETTINGS_THRESHOLD = 17
# ID диагностических участков (2 соседних ДУ)
LEAK_DIAGNOSTIC_AREA_ID = 3
LEAK_DIAGNOSTIC_AREA_NAME = "Т-Н-3.УЗР НПС-3 «Нововеличковская». - Т-Н-3.НПС-2 «Крымская».УЗР СИКН Т-К"
# ID труб для определения ДУ
DIAGNOSTIC_AREA_3_PIPE_ID = 474 # Труба на ДУ с утечкой
DIAGNOSTIC_AREA_2_PIPE_ID = 1463 # IN_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
DIAGNOSTIC_AREA_6_PIPE_ID = 999205440 # OUT_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
# ID линейного участка
LINEAR_PART_ID = 408
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
IMITATIVE_31_CONFIG = SmokeSuiteConfig(
# ----- Метаданные -----
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.KG_CM_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.STATIONARY,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_krymskaya_grushovaya": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.STATIONARY, LdsStatus.FAULTY),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=5),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="86", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="228", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.STATIONARY, StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.STATIONARY.report_text,
StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="3", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="32", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25),
lds_status_initialization_out_test=CaseMarkers(test_case_id="30", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=59),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=60),
# ===== КОНФИГУРАЦИЯ УТЕЧКИ =====
leak=LeakTestConfig(
# ----- Конфигурация статусов СОУ во время утечки -----
lds_status_during_leak_config=DiagnosticAreaStatusConfig(
leak_diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
leak_du_expected_lds_status=LdsStatus.INITIALIZATION,
neighbors_du_expected_lds_status=LdsStatus.DEGRADATION,
),
# ----- Ожидаемый статус СОУ -----
lds_status_after_confirming_leak_data=CaseData(
params={"pipe_id": DIAGNOSTIC_AREA_2_PIPE_ID},
expected_result=(
LdsStatus.INITIALIZATION,
LdsStatusInitialization.ACCUMULATION_DATA,
),
),
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
linear_part_id=LINEAR_PART_ID,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=ALLOWED_TIME_DIFF_SECONDS,
# ----- Ожидаемые статусы -----
expected_lds_status=LdsStatus.SERVICEABLE,
expected_stationary_status=StationaryStatus.STATIONARY,
expected_algorithm_type=ReservedType.STATIONARY_FLOW,
expected_leak_status=ConfirmationStatus.CONFIRMED,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
expected_lds_status_in_leaks_report=LdsStatus.SERVICEABLE.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=41), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=54),
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=37),
# ----- Тест AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="26", offset=54),
# ----- Тест LeaksContent -----
leaks_content_test=CaseMarkers(test_case_id="91", offset=54),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="84", offset=54),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="154", offset=54),
# ----- Тест CommonSchemeContent -----
lds_status_during_leak_test=CaseMarkers(test_case_id="31", offset=54.5),
# ----- Тест MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=55),
lds_status_after_confirming_leak_test=CaseMarkers(test_case_id="201", offset=55),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="6", offset=56),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=56.5),
# ----- Тест OutputSignals -----
output_signals_test=CaseMarkers(test_case_id="158", offset=57),
# ----- Тесты на факт завершения утечки -----
the_leak_is_complete_on_kg_test=CaseMarkers(test_case_id="180", offset=86),
leak_is_complete_on_main_page_test=CaseMarkers(test_case_id="199", offset=86),
leak_is_complete_in_output_signals_test=CaseMarkers(test_case_id="180", offset=86),
complete_tu_leaks_info_content_test=CaseMarkers(test_case_id="180", offset=86),
completed_leak_info_in_journal_test=CaseMarkers(test_case_id="215", offset=86),
lds_status_completed_leak_test=CaseMarkers(test_case_id="202", offset=94),
all_leaks_is_empty_test=CaseMarkers(test_case_id="187", offset=96),
# ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=58),
),
)
34
"""
Конфигурация тестового набора Imitative_34_tn3_106km_113
Особенности набора:
- Режим МТ стационар, максимальный
- Одна утечка на координате 106 км
- Объём утечки 113.6 м³
- Интенсивность утечки 3,6%
- Отбор до НПС Нововеличковская (при регулировании ЧРП по уставке регулирования давления на входе МНС)
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
LdsStatusInitialization,
MeasureConversionRule,
ReservedType,
StationaryReason,
StationaryStatus,
TU,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import (
CaseData,
CaseMarkers,
DiagnosticAreaStatusConfig,
LeakTestConfig,
SmokeSuiteConfig,
)
# ===== Константы набора =====
SUITE_NAME = "Imitative_34_tn3_106km_113"
SUITE_DATA_ID = 27
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# Параметры утечки
LEAK_COORDINATE_METERS = 106000.0
LEAK_VOLUME_M3 = 113.6
ALLOWED_TIME_DIFF_SECONDS = 1440 # 24 минуты
LEAK_START_INTERVAL_SECONDS = 1800 # 30 минут
FLOW_RATE_SETTINGS_THRESHOLD = 17
# ID диагностических участков (4 соседних ДУ)
LEAK_DIAGNOSTIC_AREA_ID = 2
LEAK_DIAGNOSTIC_AREA_NAME = "Т-Н-3.НПС-5 «Тихорецкая».УЗР вых - Т-Н-3.УЗР НПС-3 «Нововеличковская»."
# ID труб для определения ДУ
DIAGNOSTIC_AREA_2_PIPE_ID = 1463 # Труба на ДУ с утечкой
DIAGNOSTIC_AREA_3_PIPE_ID = 1444 # OUT_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
# ID линейного участка
LINEAR_PART_ID = 407
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
IMITATIVE_34_CONFIG = SmokeSuiteConfig(
# ----- Метаданные -----
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.KG_CM_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.STATIONARY,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_krymskaya_grushovaya": (StationaryStatus.STATIONARY, LdsStatus.DEGRADATION),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.STATIONARY, LdsStatus.FAULTY),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=5),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="86", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="228", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.STATIONARY, StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.STATIONARY.report_text,
StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="3", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="32", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25),
lds_status_initialization_out_test=CaseMarkers(test_case_id="30", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=58),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=59),
# ===== КОНФИГУРАЦИЯ УТЕЧКИ =====
leak=LeakTestConfig(
# ----- Конфигурация статусов СОУ во время утечки -----
lds_status_during_leak_config=DiagnosticAreaStatusConfig(
leak_diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
leak_du_expected_lds_status=LdsStatus.INITIALIZATION,
neighbors_du_expected_lds_status=LdsStatus.DEGRADATION,
),
# ----- Ожидаемый статус СОУ -----
lds_status_after_confirming_leak_data=CaseData(
params={"pipe_id": DIAGNOSTIC_AREA_2_PIPE_ID},
expected_result=(
LdsStatus.INITIALIZATION,
LdsStatusInitialization.ACCUMULATION_DATA,
),
),
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
linear_part_id=LINEAR_PART_ID,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=ALLOWED_TIME_DIFF_SECONDS,
# ----- Ожидаемые статусы -----
expected_lds_status=LdsStatus.SERVICEABLE,
expected_stationary_status=StationaryStatus.STATIONARY,
expected_algorithm_type=ReservedType.STATIONARY_FLOW,
expected_leak_status=ConfirmationStatus.CONFIRMED,
expected_lds_status_in_leaks_report=LdsStatus.SERVICEABLE.value,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=44), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=54),
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=49),
# ----- Тест AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="27", offset=54),
# ----- Тест LeaksContent -----
leaks_content_test=CaseMarkers(test_case_id="91", offset=54),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="84", offset=54),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="154", offset=54),
# ----- Тест CommonSchemeContent -----
lds_status_during_leak_test=CaseMarkers(test_case_id="31", offset=54.5),
# ----- Тест MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=55),
lds_status_after_confirming_leak_test=CaseMarkers(test_case_id="201", offset=55),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="6", offset=55),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=55.5),
# ----- Тест OutputSignals -----
output_signals_test=CaseMarkers(test_case_id="158", offset=56),
# ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=57),
),
)
38
"""
Конфигурация тестового набора Imitative_38_tn3_235km_170
Особенности набора:
- Режим МТ стационар, максимальный
- Режим СОУ В ухудшенных характеристиках (наличие самотечного участка/участка с неполным заполнением сечения)
- Одна утечка на координате 235 км
- Объём утечки 170.6 м³
- Интенсивность утечки 5,4%
- Отбор на МН Нововеличковская-Краснодар. Отбор на одной из ниток разветвленного ТУ.
Отбор непосредственно после самотечного участка
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
LdsStatusInitialization,
MeasureConversionRule,
ReservedType,
StationaryReason,
StationaryStatus,
TU,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import (
CaseData,
CaseMarkers,
DiagnosticAreaStatusConfig,
LeakTestConfig,
SmokeSuiteConfig,
)
# ===== Константы набора =====
SUITE_NAME = "Imitative_38_tn3_235km_170"
SUITE_DATA_ID = 28
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# Параметры утечки
LEAK_COORDINATE_METERS = 235000.0
LEAK_VOLUME_M3 = 170.4
ALLOWED_TIME_DIFF_SECONDS = 1440 # 24 минуты
LEAK_START_INTERVAL_SECONDS = 1800 # 30 минут
LEAK_TECHNOLOGICAL_OBJECT = "НПС-5 Тихорецкая - НПС-3 Нововеличковская"
FLOW_RATE_SETTINGS_THRESHOLD = 17
# ID диагностических участков
LEAK_DIAGNOSTIC_AREA_ID = 2
LEAK_DIAGNOSTIC_AREA_NAME = "Н-К.КП-30.УЗР 30км - ПСП Афипский СИКН 1015 УЗР"
# ID труб для определения ДУ
DIAGNOSTIC_AREA_2_PIPE_ID = 1463 # Труба на ДУ с утечкой
DIAGNOSTIC_AREA_3_PIPE_ID = 1444 # OUT_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
# ID линейного участка
LINEAR_PART_ID = 409
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
IMITATIVE_38_CONFIG = SmokeSuiteConfig(
# ===== Метаданные =====
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.KG_CM_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST,
# ===== Ожидаемый статус стационара =====
expected_stationary_status=StationaryStatus.STATIONARY,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_krymskaya_grushovaya": (StationaryStatus.STATIONARY, LdsStatus.DEGRADATION),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.STATIONARY, LdsStatus.FAULTY),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=5),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="86", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="228", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.STATIONARY, StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.STATIONARY.report_text,
StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="3", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="32", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25),
lds_status_initialization_out_test=CaseMarkers(test_case_id="30", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=58),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=59),
# ===== КОНФИГУРАЦИЯ УТЕЧКИ =====
leak=LeakTestConfig(
# ----- Ожидаемый статус СОУ -----
lds_status_after_confirming_leak_data=CaseData(
params={"pipe_id": DIAGNOSTIC_AREA_2_PIPE_ID},
expected_result=(
LdsStatus.INITIALIZATION,
LdsStatusInitialization.ACCUMULATION_DATA,
),
),
# ----- Конфигурация статусов СОУ во время утечки -----
lds_status_during_leak_config=DiagnosticAreaStatusConfig(
leak_diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
leak_du_expected_lds_status=LdsStatus.INITIALIZATION,
neighbors_du_expected_lds_status=LdsStatus.DEGRADATION,
),
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
linear_part_id=LINEAR_PART_ID,
technological_object=LEAK_TECHNOLOGICAL_OBJECT,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=ALLOWED_TIME_DIFF_SECONDS,
# ----- Ожидаемые статусы -----
expected_algorithm_type=ReservedType.STATIONARY_FLOW,
expected_leak_status=ConfirmationStatus.CONFIRMED,
expected_lds_status=LdsStatus.DEGRADATION,
expected_stationary_status=StationaryStatus.STATIONARY,
expected_lds_status_in_leaks_report=LdsStatus.DEGRADATION.value,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=42), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=54),
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=47),
# ----- Тест AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="28", offset=54),
# ----- Тест LeaksContent -----
leaks_content_test=CaseMarkers(test_case_id="91", offset=54),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="154", offset=54),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="84", offset=54),
# ----- Тест CommonSchemeContent -----
lds_status_during_leak_test=CaseMarkers(test_case_id="31", offset=54.5),
# ----- Тест MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=55),
lds_status_after_confirming_leak_test=CaseMarkers(test_case_id="201", offset=55),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="6", offset=55),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=55.5),
# ----- Тест OutputSignals -----
# output_signals_test=CaseMarkers(test_case_id="158", offset=56), TODO LDS-13914
# ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=57),
),
)
39
"""
Конфигурация тестового набора Imitative_39_tn3_215km_170
Особенности набора:
- Режим МТ стационар, максимальный
- Режим СОУ В ухудшенных характеристиках (наличие действующих ПТП)
- Одна утечка на координате 215 км
- Объём утечки 170 м³
- Интенсивность утечки 5.4%
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
LdsStatusInitialization,
MeasureConversionRule,
ReservedType,
StationaryReason,
StationaryStatus,
TU,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import (
CaseData,
CaseMarkers,
DiagnosticAreaStatusConfig,
LeakTestConfig,
SmokeSuiteConfig,
)
# ===== Константы набора =====
SUITE_NAME = "Imitative_39_tn3_215km_170"
SUITE_DATA_ID = 29
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# Параметры утечки
LEAK_COORDINATE_METERS = 215000.0
LEAK_VOLUME_M3 = 170
ALLOWED_TIME_DIFF_SECONDS = 1080 # 18 минут
LEAK_START_INTERVAL_SECONDS = 1800 # 30 минут
FLOW_RATE_SETTINGS_THRESHOLD = 17
# ID диагностических участков (4 соседних ДУ)
LEAK_DIAGNOSTIC_AREA_ID = 3
LEAK_DIAGNOSTIC_AREA_NAME = "Т-Н-3.УЗР НПС-3 «Нововеличковская». - Т-Н-3.НПС-2 «Крымская».УЗР СИКН Т-К"
# ID труб для определения ДУ
DIAGNOSTIC_AREA_3_PIPE_ID = 474 # Труба на ДУ с утечкой
DIAGNOSTIC_AREA_2_PIPE_ID = 1463 # IN_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
DIAGNOSTIC_AREA_6_PIPE_ID = 999205440 # OUT_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
# ID линейного участка
LINEAR_PART_ID = 408
MAX_PUMPING_M3 = 3156 # Максимальная перекачка
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
IMITATIVE_39_CONFIG = SmokeSuiteConfig(
# ----- Метаданные -----
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.KG_CM_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.STATIONARY,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.STATIONARY, LdsStatus.DEGRADATION),
"exp_krymskaya_grushovaya": (StationaryStatus.STATIONARY, LdsStatus.DEGRADATION),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.STATIONARY, LdsStatus.FAULTY),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=5),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="86", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="228", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.STATIONARY, StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.STATIONARY.report_text,
StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="3", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="32", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25),
lds_status_initialization_out_test=CaseMarkers(test_case_id="30", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=52),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=53),
# ===== КОНФИГУРАЦИЯ УТЕЧКИ =====
leak=LeakTestConfig(
# ----- Ожидаемый статус СОУ -----
lds_status_after_confirming_leak_data=CaseData(
params={"pipe_id": DIAGNOSTIC_AREA_3_PIPE_ID},
expected_result=(
LdsStatus.INITIALIZATION,
LdsStatusInitialization.ACCUMULATION_DATA,
),
),
# ----- Конфигурация статусов СОУ во время утечки -----
lds_status_during_leak_config=DiagnosticAreaStatusConfig(
leak_diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
leak_du_expected_lds_status=LdsStatus.INITIALIZATION,
neighbors_du_expected_lds_status=LdsStatus.DEGRADATION,
),
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
linear_part_id=LINEAR_PART_ID,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
max_pumping_m3=MAX_PUMPING_M3,
allowed_time_diff_seconds=ALLOWED_TIME_DIFF_SECONDS,
# ----- Ожидаемые статусы -----
expected_algorithm_type=ReservedType.STATIONARY_FLOW,
expected_leak_status=ConfirmationStatus.CONFIRMED,
expected_lds_status=LdsStatus.DEGRADATION,
expected_stationary_status=StationaryStatus.STATIONARY,
expected_lds_status_in_leaks_report=LdsStatus.DEGRADATION.value,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=37), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=48),
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=42),
# ----- Тест AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="29", offset=48),
# ----- Тест LeaksContent -----
leaks_content_test=CaseMarkers(test_case_id="91", offset=48),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="84", offset=48),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="154", offset=48),
# ----- Тест CommonSchemeContent -----
lds_status_during_leak_test=CaseMarkers(test_case_id="31", offset=48.5),
# ----- Тест MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=49),
lds_status_after_confirming_leak_test=CaseMarkers(test_case_id="201", offset=49),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="6", offset=49),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=49.5),
# ----- Тест OutputSignals -----
output_signals_test=CaseMarkers(test_case_id="158", offset=50),
# ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=51),
),
)
41
"""
Конфигурация тестового набора Imitative_41_tn3_56km_227
Особенности набора:
- Режим МТ стационар, максимальный
- Одна утечка на координате 56 км
- Объём утечки 227.2 м³
- Интенсивность утечки 7,2%
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
LdsStatusInitialization,
MeasureConversionRule,
ReservedType,
StationaryReason,
StationaryStatus,
TU,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import (
CaseData,
CaseMarkers,
DiagnosticAreaStatusConfig,
LeakTestConfig,
SmokeSuiteConfig,
)
# ===== Константы набора =====
SUITE_NAME = "Imitative_41_tn3_56km_227"
SUITE_DATA_ID = 30
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# Параметры утечки
LEAK_COORDINATE_METERS = 56000.0
LEAK_VOLUME_M3 = 227.4
ALLOWED_TIME_DIFF_SECONDS = 1440 # 24 минуты
LEAK_START_INTERVAL_SECONDS = 1800 # 30 минут
LEAK_TECHNOLOGICAL_OBJECT = "НПС-5 Тихорецкая - НПС-3 Нововеличковская"
FLOW_RATE_SETTINGS_THRESHOLD = 17
# ID диагностических участков
LEAK_DIAGNOSTIC_AREA_ID = 2
LEAK_DIAGNOSTIC_AREA_NAME = "Т-Н-3.НПС-5 «Тихорецкая».УЗР вых - Т-Н-3.УЗР НПС-3 «Нововеличковская»."
# ID труб для определения ДУ
DIAGNOSTIC_AREA_2_PIPE_ID = 1463 # Труба на ДУ с утечкой
DIAGNOSTIC_AREA_3_PIPE_ID = 1444 # OUT_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
# ID линейного участка
LINEAR_PART_ID = 407
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
IMITATIVE_41_CONFIG = SmokeSuiteConfig(
# ===== Метаданные =====
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.KG_CM_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.STATIONARY,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.STATIONARY, LdsStatus.FAULTY),
"exp_krymskaya_grushovaya": (StationaryStatus.STATIONARY, LdsStatus.FAULTY),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.STATIONARY, LdsStatus.FAULTY),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=5),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="86", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="228", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.STATIONARY, StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.STATIONARY.report_text,
StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="3", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="32", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25),
lds_status_initialization_out_test=CaseMarkers(test_case_id="30", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=58),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=59),
# ===== КОНФИГУРАЦИЯ УТЕЧКИ =====
leak=LeakTestConfig(
# ----- Конфигурация статусов СОУ во время утечки -----
lds_status_during_leak_config=DiagnosticAreaStatusConfig(
leak_diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
leak_du_expected_lds_status=LdsStatus.INITIALIZATION,
neighbors_du_expected_lds_status=LdsStatus.DEGRADATION,
),
# ----- Ожидаемый статус СОУ -----
lds_status_after_confirming_leak_data=CaseData(
params={"pipe_id": DIAGNOSTIC_AREA_2_PIPE_ID},
expected_result=(
LdsStatus.INITIALIZATION,
LdsStatusInitialization.ACCUMULATION_DATA,
),
),
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
linear_part_id=LINEAR_PART_ID,
technological_object=LEAK_TECHNOLOGICAL_OBJECT,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=ALLOWED_TIME_DIFF_SECONDS,
# ----- Ожидаемые статусы -----
expected_lds_status=LdsStatus.SERVICEABLE,
expected_stationary_status=StationaryStatus.STATIONARY,
expected_algorithm_type=ReservedType.STATIONARY_FLOW,
expected_leak_status=ConfirmationStatus.CONFIRMED,
expected_lds_status_in_leaks_report=LdsStatus.SERVICEABLE.value,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=42), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=54),
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=47),
# ----- Тест AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="30", offset=54),
# ----- Тест LeaksContent -----
leaks_content_test=CaseMarkers(test_case_id="91", offset=54),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="154", offset=54),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="84", offset=54),
# ----- Тест CommonSchemeContent -----
lds_status_during_leak_test=CaseMarkers(test_case_id="31", offset=54.5),
# ----- Тест MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=55),
lds_status_after_confirming_leak_test=CaseMarkers(test_case_id="201", offset=55),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="6", offset=55),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=55.5),
# ----- Тест OutputSignals -----
output_signals_test=CaseMarkers(test_case_id="158", offset=56),
# ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=57),
),
)
60
"""
Конфигурация тестового набора Imitative_60_tn3_129km_416
Особенности набора:
- Режим МТ нестационар
- Одна утечка на координате 129 км
- Объём утечки 416.2 м³
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
LdsStatusInitialization,
MeasureConversionRule,
ReservedType,
StationaryStatus,
TU,
UnStationaryReason,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import (
CaseData,
CaseMarkers,
DiagnosticAreaStatusConfig,
LeakTestConfig,
SmokeSuiteConfig,
)
# ===== Константы набора =====
SUITE_NAME = "Imitative_60_tn3_129km_416"
SUITE_DATA_ID = 31
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# Параметры утечки
LEAK_COORDINATE_METERS = 129000.0
LEAK_VOLUME_M3 = 416.0
ALLOWED_TIME_DIFF_SECONDS = 1440 # 24 минуты
LEAK_START_INTERVAL_SECONDS = 1800 # 30 минут
LEAK_TECHNOLOGICAL_OBJECT = "НПС-5 Тихорецкая - НПС-3 Нововеличковская"
FLOW_RATE_SETTINGS_THRESHOLD = 17
# ID диагностических участков
LEAK_DIAGNOSTIC_AREA_ID = 2
LEAK_DIAGNOSTIC_AREA_NAME = "Т-Н-3.НПС-5 «Тихорецкая».УЗР вых - Т-Н-3.УЗР НПС-3 «Нововеличковская»."
# ID труб для определения ДУ
DIAGNOSTIC_AREA_2_PIPE_ID = 1463 # Труба на ДУ с утечкой
DIAGNOSTIC_AREA_3_PIPE_ID = 1444 # OUT_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
# ID линейного участка
LINEAR_PART_ID = 407
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
IMITATIVE_60_CONFIG = SmokeSuiteConfig(
# ===== Метаданные =====
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.KG_CM_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.UNSTATIONARY,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.UNSTATIONARY, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.UNSTATIONARY, LdsStatus.SERVICEABLE),
"exp_krymskaya_grushovaya": (StationaryStatus.STATIONARY, LdsStatus.DEGRADATION),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.UNSTATIONARY, LdsStatus.FAULTY),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=5),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="86", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="228", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.UNSTATIONARY, UnStationaryReason.COLD_START),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.UNSTATIONARY.report_text,
UnStationaryReason.COLD_START.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="3", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="32", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25),
lds_status_initialization_out_test=CaseMarkers(test_case_id="30", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=64),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=65),
# ===== КОНФИГУРАЦИЯ УТЕЧКИ =====
leak=LeakTestConfig(
# ----- Конфигурация статусов СОУ во время утечки -----
lds_status_during_leak_config=DiagnosticAreaStatusConfig(
leak_diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
leak_du_expected_lds_status=LdsStatus.INITIALIZATION,
neighbors_du_expected_lds_status=LdsStatus.DEGRADATION,
),
# ----- Ожидаемый статус СОУ -----
lds_status_after_confirming_leak_data=CaseData(
params={"pipe_id": DIAGNOSTIC_AREA_2_PIPE_ID},
expected_result=(
LdsStatus.INITIALIZATION,
LdsStatusInitialization.ACCUMULATION_DATA,
),
),
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
linear_part_id=LINEAR_PART_ID,
technological_object=LEAK_TECHNOLOGICAL_OBJECT,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=ALLOWED_TIME_DIFF_SECONDS,
# ----- Ожидаемые статусы -----
expected_lds_status=LdsStatus.SERVICEABLE,
expected_stationary_status=StationaryStatus.UNSTATIONARY,
expected_algorithm_type=ReservedType.CHANGED_IN_DECISION_MAKING,
expected_leak_status=ConfirmationStatus.CONFIRMED,
expected_lds_status_in_leaks_report=LdsStatus.SERVICEABLE.value,
expected_report_stationary_status=StationaryStatus.UNSTATIONARY.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=48), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=57),
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=44),
# ----- Тест AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="31", offset=49),
# ----- Тест LeaksContent -----
leaks_content_test=CaseMarkers(test_case_id="91", offset=49),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="154", offset=50),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="84", offset=50),
# ----- Тест CommonSchemeContent -----
lds_status_during_leak_test=CaseMarkers(test_case_id="31", offset=49.5),
# ----- Тест MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=59),
lds_status_after_confirming_leak_test=CaseMarkers(test_case_id="201", offset=59),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="6", offset=59),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=59.5),
# ----- Тест OutputSignals -----
output_signals_test=CaseMarkers(test_case_id="158", offset=60),
# ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=61),
),
)
65
"""
Конфигурация тестового набора Imitative_65_tn3_56km_643
Особенности набора:
- Режим МТ нестационар
- Одна утечка на координате 56 км
- Объём утечки 643.0 м³
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
LdsStatusInitialization,
MeasureConversionRule,
ReservedType,
StationaryStatus,
TU,
UnStationaryReason,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import (
CaseData,
CaseMarkers,
DiagnosticAreaStatusConfig,
LeakTestConfig,
SmokeSuiteConfig,
)
# ===== Константы набора =====
SUITE_NAME = "Imitative_65_tn3_56km_643"
SUITE_DATA_ID = 36
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# Параметры утечки
LEAK_COORDINATE_METERS = 56000.0
LEAK_VOLUME_M3 = 643.0
ALLOWED_TIME_DIFF_SECONDS = 1440 # 24 минуты
LEAK_START_INTERVAL_SECONDS = 1800 # 30 минут
LEAK_TECHNOLOGICAL_OBJECT = "НПС-5 Тихорецкая - НПС-3 Нововеличковская"
FLOW_RATE_SETTINGS_THRESHOLD = 17
# ID диагностических участков
LEAK_DIAGNOSTIC_AREA_ID = 2
LEAK_DIAGNOSTIC_AREA_NAME = "Т-Н-3.НПС-5 «Тихорецкая».УЗР вых - Т-Н-3.УЗР НПС-3 «Нововеличковская»."
# ID труб для определения ДУ
DIAGNOSTIC_AREA_2_PIPE_ID = 1463 # Труба на ДУ с утечкой
DIAGNOSTIC_AREA_3_PIPE_ID = 1444 # OUT_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
# ID линейного участка
LINEAR_PART_ID = 407
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
IMITATIVE_65_CONFIG = SmokeSuiteConfig(
# ===== Метаданные =====
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.KG_CM_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST_DATA_ABSENCE_FALSE,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.UNSTATIONARY,
expected_report_stationary_status=StationaryStatus.UNSTATIONARY.value,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.UNSTATIONARY, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.UNSTATIONARY, LdsStatus.DEGRADATION),
"exp_krymskaya_grushovaya": (StationaryStatus.STATIONARY, LdsStatus.DEGRADATION),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.UNSTATIONARY, LdsStatus.FAULTY),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=5),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="86", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="228", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.UNSTATIONARY, UnStationaryReason.COLD_START),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.UNSTATIONARY.report_text,
UnStationaryReason.COLD_START.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="3", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="32", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25),
lds_status_initialization_out_test=CaseMarkers(test_case_id="30", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=64),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=65),
# ===== КОНФИГУРАЦИЯ УТЕЧКИ =====
leak=LeakTestConfig(
# ----- Конфигурация статусов СОУ во время утечки -----
lds_status_during_leak_config=DiagnosticAreaStatusConfig(
leak_diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
leak_du_expected_lds_status=LdsStatus.INITIALIZATION,
neighbors_du_expected_lds_status=LdsStatus.DEGRADATION,
),
# ----- Ожидаемый статус СОУ -----
lds_status_after_confirming_leak_data=CaseData(
params={"pipe_id": DIAGNOSTIC_AREA_2_PIPE_ID},
expected_result=(
LdsStatus.INITIALIZATION,
LdsStatusInitialization.ACCUMULATION_DATA,
),
),
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
linear_part_id=LINEAR_PART_ID,
technological_object=LEAK_TECHNOLOGICAL_OBJECT,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=ALLOWED_TIME_DIFF_SECONDS,
# ----- Ожидаемые статусы -----
expected_lds_status=LdsStatus.SERVICEABLE,
expected_stationary_status=StationaryStatus.UNSTATIONARY,
expected_algorithm_type=ReservedType.UNSTATIONARY_FLOW,
expected_leak_status=ConfirmationStatus.CONFIRMED,
expected_lds_status_in_leaks_report=LdsStatus.SERVICEABLE.value,
expected_report_stationary_status=StationaryStatus.UNSTATIONARY.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=48), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=57),
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=44),
# ----- Тест AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="31", offset=49),
# ----- Тест LeaksContent -----
leaks_content_test=CaseMarkers(test_case_id="91", offset=49),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="154", offset=50),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="84", offset=50),
# ----- Тест CommonSchemeContent -----
lds_status_during_leak_test=CaseMarkers(test_case_id="31", offset=49.5),
# ----- Тест MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=59),
lds_status_after_confirming_leak_test=CaseMarkers(test_case_id="201", offset=59),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="6", offset=59),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=59.5),
# ----- Тест OutputSignals -----
output_signals_test=CaseMarkers(test_case_id="158", offset=60),
# ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=61),
),
)
70
"""
Конфигурация тестового набора Real_70_tn3_216km_56 (режим остановленной перекачки)
Особенности набора:
- Режим МТ стационар
- Режим МТ Остановленная перекачка (StationaryStatus.STOPPED) на участке, где ожидаем утечку
- Одна утечка на координате 216 км
- Объём утечки 56,8 м³
- Интенсивность утечки 1,8%
- Запускать с dataAbsence false в конфигурации
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
MeasureConversionRule,
ReservedType,
StationaryReason,
StationaryStatus,
TU,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import CaseData, CaseMarkers, LeakTestConfig, SmokeSuiteConfig
# ===== Константы набора =====
SUITE_NAME = "Real_70_tn3_216km_56"
SUITE_DATA_ID = 13
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# Параметры утечки
LEAK_COORDINATE_METERS = 216000
LEAK_VOLUME_M3 = 56
ALLOWED_TIME_DIFF_SECONDS = 1440 # 24 минуты
LEAK_START_INTERVAL_SECONDS = 2100 # 35 минут
FLOW_RATE_SETTINGS_THRESHOLD = 7
# ID диагностических участков
LEAK_DIAGNOSTIC_AREA_ID = 3
LEAK_DIAGNOSTIC_AREA_NAME = "Т-Н-3.УЗР НПС-3 «Нововеличковская». - Т-Н-3.НПС-2 «Крымская».УЗР СИКН Т-К"
# ID линейного участка
LINEAR_PART_ID = 408
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
REAL_70_CONFIG = SmokeSuiteConfig(
# ----- Метаданные -----
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.MPA_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST_DATA_ABSENCE_FALSE,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.STATIONARY,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_krymskaya_grushovaya": (StationaryStatus.STOPPED, LdsStatus.DEGRADATION),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.STATIONARY, LdsStatus.DEGRADATION),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ ==
basic_info_test=CaseMarkers(test_case_id="1", offset=5),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="86", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="228", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.STATIONARY, StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.STATIONARY.report_text,
StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="3", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="32", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
# diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25), TODO решить LDS-14255
lds_status_initialization_out_test=CaseMarkers(test_case_id="30", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=63),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=64),
# ===== КОНФИГУРАЦИЯ УТЕЧКИ =====
leak=LeakTestConfig(
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
linear_part_id=LINEAR_PART_ID,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=ALLOWED_TIME_DIFF_SECONDS,
# ----- Ожидаемые статусы -----
expected_algorithm_type=ReservedType.STOP,
expected_leak_status=ConfirmationStatus.CONFIRMED,
expected_lds_status=LdsStatus.DEGRADATION,
expected_stationary_status=StationaryStatus.STOPPED,
expected_lds_status_in_leaks_report=LdsStatus.DEGRADATION.value,
expected_report_stationary_status=StationaryStatus.STOPPED.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=42), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=59),
# ----- Тест MessageInfo -----
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=47),
# ----- Тест AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="13", offset=59),
# ----- Тест LeaksContent -----
leaks_content_test=CaseMarkers(test_case_id="91", offset=59),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="84", offset=59),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="154", offset=59),
# ----- Тест MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=60),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="6", offset=60),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=60.5),
# ----- Тест OutputSignals -----
output_signals_test=CaseMarkers(test_case_id="158", offset=61),
# ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=62),
),
)
73
"""
Конфигурация тестового набора Real_73_tn3_39km_56
Особенности набора:
- Режим МТ стационар
- Одна утечка на координате 40 км
- Объём утечки 80 м³
- Интенсивность утечки 1,8%
- Утечка завершается спустя 7 минут после обнаружения, в связи с этим сдвинуты offset тестов
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
LdsStatusInitialization,
MeasureConversionRule,
ReservedType,
StationaryStatus,
TU,
UnStationaryReason,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import (
CaseData,
CaseMarkers,
DiagnosticAreaStatusConfig,
LeakTestConfig,
SmokeSuiteConfig,
)
# ===== Константы набора =====
SUITE_NAME = "Real_73_tn3_39km_56"
SUITE_DATA_ID = 14
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# Параметры утечки
LEAK_COORDINATE_METERS = 39000.0
LEAK_VOLUME_M3 = 56.8
ALLOWED_TIME_DIFF_SECONDS = 1800 # 30 минут
LEAK_START_INTERVAL_SECONDS = 2100 # 35 минут
LEAK_TECHNOLOGICAL_OBJECT = "НПС-5 Тихорецкая - НПС-3 Нововеличковская"
FLOW_RATE_SETTINGS_THRESHOLD = 17
# ID диагностических участков
LEAK_DIAGNOSTIC_AREA_ID = 2
LEAK_DIAGNOSTIC_AREA_NAME = "Т-Н-3.НПС-5 «Тихорецкая».УЗР вых - Т-Н-3.УЗР НПС-3 «Нововеличковская»."
# ID труб для определения ДУ
DIAGNOSTIC_AREA_2_PIPE_ID = 1463 # Труба на ДУ с утечкой
DIAGNOSTIC_AREA_3_PIPE_ID = 1444 # OUT_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
# ID линейного участка
LINEAR_PART_ID = 407
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
REAL_73_CONFIG = SmokeSuiteConfig(
# ===== Метаданные =====
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.MPA_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST_DATA_ABSENCE_FALSE,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.UNSTATIONARY,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.UNSTATIONARY, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.UNSTATIONARY, LdsStatus.SERVICEABLE),
"exp_krymskaya_grushovaya": (StationaryStatus.UNSTATIONARY, LdsStatus.DEGRADATION),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.SERVICEABLE),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.STATIONARY, LdsStatus.FAULTY),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=5),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="86", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="228", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.UNSTATIONARY, UnStationaryReason.COLD_START),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.UNSTATIONARY.report_text,
UnStationaryReason.COLD_START.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="3", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="32", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
# diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25), TODO решить LDS-14255
lds_status_initialization_out_test=CaseMarkers(test_case_id="30", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=58),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=59),
# ===== КОНФИГУРАЦИЯ УТЕЧКИ =====
leak=LeakTestConfig(
# ----- Конфигурация статусов СОУ во время утечки -----
lds_status_during_leak_config=DiagnosticAreaStatusConfig(
leak_diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
leak_du_expected_lds_status=LdsStatus.INITIALIZATION,
neighbors_du_expected_lds_status=LdsStatus.DEGRADATION,
),
# ----- Ожидаемый статус СОУ -----
lds_status_after_confirming_leak_data=CaseData(
params={"pipe_id": DIAGNOSTIC_AREA_2_PIPE_ID},
expected_result=(
LdsStatus.INITIALIZATION,
LdsStatusInitialization.ACCUMULATION_DATA,
),
),
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
linear_part_id=LINEAR_PART_ID,
technological_object=LEAK_TECHNOLOGICAL_OBJECT,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=ALLOWED_TIME_DIFF_SECONDS,
# ----- Ожидаемые статусы -----
expected_lds_status=LdsStatus.SERVICEABLE,
expected_stationary_status=StationaryStatus.STATIONARY,
expected_algorithm_type=ReservedType.STATIONARY_FLOW,
expected_leak_status=ConfirmationStatus.CONFIRMED,
expected_lds_status_in_leaks_report=LdsStatus.SERVICEABLE.value,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=43), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=54),
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=48),
# ----- Тест AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="14", offset=54),
# ----- Тест LeaksContent -----
leaks_content_test=CaseMarkers(test_case_id="91", offset=54),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="154", offset=54),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="84", offset=54),
# ----- Тест CommonSchemeContent -----
lds_status_during_leak_test=CaseMarkers(test_case_id="31", offset=54.5),
# ----- Тест MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=55),
lds_status_after_confirming_leak_test=CaseMarkers(test_case_id="201", offset=55),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="6", offset=55),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=55.5),
# ----- Тест OutputSignals -----
output_signals_test=CaseMarkers(test_case_id="158", offset=56),
# # ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=57),
),
)
4
"""
Конфигурация тестового набора Select_4_tn3_215km_113 (режим остановленной перекачки)
Особенности набора:
- Режим остановленной перекачки (StationaryStatus.STOPPED)
- Одна утечка на координате 215 км
- Объём утечки 113.6 м³
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
MeasureConversionRule,
ReservedType,
StationaryStatus,
StoppedPumpingReason,
TU,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import CaseData, CaseMarkers, LeakTestConfig, SmokeSuiteConfig
# ===== Константы набора =====
SUITE_NAME = "Select_4_tn3_215km_113"
SUITE_DATA_ID = 4
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# Параметры утечки
LEAK_COORDINATE_METERS = 215000.0
LEAK_VOLUME_M3 = 300.1 # в связи с изменениями сжимаемости
ALLOWED_TIME_DIFF_SECONDS = 1440 # 24 минуты
LEAK_START_INTERVAL_SECONDS = 2100 # 35 минут
FLOW_RATE_SETTINGS_THRESHOLD = 7
# ID диагностических участков
LEAK_DIAGNOSTIC_AREA_ID = 15
LEAK_DIAGNOSTIC_AREA_NAME = 'НПС-3 "Нововеличковская" - Т-Н-3.«Грушовая».УЗР'
# ID труб для определения ДУ
DIAGNOSTIC_AREA_2_PIPE_ID = 1100 # Труба на ДУ с утечкой
DIAGNOSTIC_AREA_3_PIPE_ID = 1444 # OUT_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
# ID линейного участка
LINEAR_PART_ID = 408
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
SELECT_4_CONFIG = SmokeSuiteConfig(
# ----- Метаданные -----
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.KG_CM_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST_DATA_ABSENCE_FALSE,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.STOPPED,
expected_report_stationary_status=StationaryStatus.STOPPED.value,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.STOPPED, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.STOPPED, LdsStatus.DEGRADATION),
"exp_krymskaya_grushovaya": (StationaryStatus.STOPPED, LdsStatus.DEGRADATION),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.STOPPED, LdsStatus.DEGRADATION),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=5),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="52", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.STOPPED, StoppedPumpingReason.STOPPING_PUMPS),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.STOPPED.report_text,
StoppedPumpingReason.STOPPING_PUMPS.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="44", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="45", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25),
lds_status_initialization_out_test=CaseMarkers(test_case_id="46", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=63),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=64),
# ===== КОНФИГУРАЦИЯ УТЕЧКИ =====
leak=LeakTestConfig(
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
linear_part_id=LINEAR_PART_ID,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=ALLOWED_TIME_DIFF_SECONDS,
# ----- Ожидаемые статусы -----
expected_algorithm_type=ReservedType.STOP,
expected_lds_status=LdsStatus.DEGRADATION,
expected_stationary_status=StationaryStatus.STOPPED,
expected_leak_status=ConfirmationStatus.CONFIRMED,
expected_lds_status_in_leaks_report=LdsStatus.DEGRADATION.value,
expected_report_stationary_status=StationaryStatus.STOPPED.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=46), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=59),
# ----- Тест AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="4", offset=59),
# ----- Тест LeaksContent -----
leaks_content_test=CaseMarkers(test_case_id="102", offset=59),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="48", offset=59),
# ----- Тест MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=60),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="147", offset=59),
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=51),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=60.5),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="50", offset=60),
# ----- Тест OutputSignals -----
output_signals_test=CaseMarkers(test_case_id="51", offset=61),
# ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=62),
),
)
6
"""
Конфигурация тестового набора Select_6_tn3_56km_113
Особенности набора:
- Режим стационара (StationaryStatus.STATIONARY)
- Одна утечка на координате 56 км
- Объём утечки 113.6 м³
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
LdsStatusInitialization,
MeasureConversionRule,
ReservedType,
StationaryReason,
StationaryStatus,
TU,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import (
CaseData,
CaseMarkers,
DiagnosticAreaStatusConfig,
LeakTestConfig,
SmokeSuiteConfig,
)
# ===== Константы набора =====
SUITE_NAME = "Select_6_tn3_56km_113"
SUITE_DATA_ID = 1
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# Параметры утечки
LEAK_COORDINATE_METERS = 56000.0
LEAK_VOLUME_M3 = 113.6
ALLOWED_TIME_DIFF_SECONDS = 1440 # 24 минуты
LEAK_START_INTERVAL_SECONDS = 2100 # 35 минут
LEAK_TECHNOLOGICAL_OBJECT = "НПС-5 Тихорецкая - НПС-3 Нововеличковская"
FLOW_RATE_SETTINGS_THRESHOLD = 17
# ID диагностических участков
LEAK_DIAGNOSTIC_AREA_ID = 2
LEAK_DIAGNOSTIC_AREA_NAME = "Т-Н-3.НПС-5 «Тихорецкая».УЗР вых - Т-Н-3.УЗР НПС-3 «Нововеличковская»."
# ID труб для определения ДУ
DIAGNOSTIC_AREA_2_PIPE_ID = 1463 # Труба на ДУ с утечкой
DIAGNOSTIC_AREA_3_PIPE_ID = 1444 # OUT_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
# ID линейного участка
LINEAR_PART_ID = 407
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
SELECT_6_CONFIG = SmokeSuiteConfig(
# ===== Метаданные =====
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.KG_CM_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST_DATA_ABSENCE_FALSE,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.STATIONARY,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# # ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_krymskaya_grushovaya": (StationaryStatus.STATIONARY, LdsStatus.DEGRADATION),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.STATIONARY, LdsStatus.DEGRADATION),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=5),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="29", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.STATIONARY, StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.STATIONARY.report_text,
StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="3", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="45", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25),
lds_status_initialization_out_test=CaseMarkers(test_case_id="30", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=63),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=64),
# ===== КОНФИГУРАЦИЯ УТЕЧКИ =====
leak=LeakTestConfig(
# ----- Конфигурация статусов СОУ во время утечки -----
lds_status_during_leak_config=DiagnosticAreaStatusConfig(
leak_diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
leak_du_expected_lds_status=LdsStatus.INITIALIZATION,
neighbors_du_expected_lds_status=LdsStatus.DEGRADATION,
),
# ----- Ожидаемый статус СОУ -----
lds_status_after_confirming_leak_data=CaseData(
params={"pipe_id": DIAGNOSTIC_AREA_2_PIPE_ID},
expected_result=(
LdsStatus.INITIALIZATION,
LdsStatusInitialization.ACCUMULATION_DATA,
),
),
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
linear_part_id=LINEAR_PART_ID,
technological_object=LEAK_TECHNOLOGICAL_OBJECT,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- Ожидаемые статусы -----
expected_lds_status=LdsStatus.SERVICEABLE,
expected_stationary_status=StationaryStatus.STATIONARY,
expected_algorithm_type=ReservedType.STATIONARY_FLOW,
expected_leak_status=ConfirmationStatus.CONFIRMED,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=ALLOWED_TIME_DIFF_SECONDS,
# ----- Ожидаемые статусы -----
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
expected_lds_status_in_leaks_report=LdsStatus.SERVICEABLE.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=42), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=59),
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=47),
# ----- Тест AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="1", offset=59),
# ----- Тест LeaksContent -----
leaks_content_test=CaseMarkers(test_case_id="97", offset=59),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="119", offset=59),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="5", offset=59),
# ----- Тест CommonSchemeContent -----
lds_status_during_leak_test=CaseMarkers(test_case_id="31", offset=59.5),
# ----- Тест MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=60),
lds_status_after_confirming_leak_test=CaseMarkers(test_case_id="201", offset=60),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="6", offset=60),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=60.5),
# ----- Тест OutputSignals -----
output_signals_test=CaseMarkers(test_case_id="33", offset=61),
# ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=62),
),
)
7
"""
Конфигурация тестового набора Select_7_tn3_130km_113
Особенности набора:
- Режим стационара (StationaryStatus.STATIONARY)
- Одна утечка на координате 130 км
- Объём утечки 113.6 м³
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
LdsStatusInitialization,
MeasureConversionRule,
ReservedType,
StationaryReason,
StationaryStatus,
TU,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import (
CaseData,
CaseMarkers,
DiagnosticAreaStatusConfig,
LeakTestConfig,
SmokeSuiteConfig,
)
# ===== Константы набора =====
SUITE_NAME = "Select_7_tn3_130km_113"
SUITE_DATA_ID = 2
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# Параметры утечки
LEAK_COORDINATE_METERS = 130000.0
LEAK_VOLUME_M3 = 113.6
ALLOWED_TIME_DIFF_SECONDS = 1440 # 24 минуты
LEAK_START_INTERVAL_SECONDS = 2100 # 35 минут
FLOW_RATE_SETTINGS_THRESHOLD = 17
# ID диагностических участков (4 соседних ДУ)
LEAK_DIAGNOSTIC_AREA_ID = 3
LEAK_DIAGNOSTIC_AREA_NAME = "Т-Н-3.УЗР НПС-3 «Нововеличковская». - Т-Н-3.НПС-2 «Крымская».УЗР СИКН Т-К"
# ID труб для определения ДУ
DIAGNOSTIC_AREA_3_PIPE_ID = 474 # Труба на ДУ с утечкой
DIAGNOSTIC_AREA_2_PIPE_ID = 1463 # IN_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
DIAGNOSTIC_AREA_6_PIPE_ID = 999205440 # OUT_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
# ID линейного участка
LINEAR_PART_ID = 408
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
SELECT_7_CONFIG = SmokeSuiteConfig(
# ----- Метаданные -----
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.KG_CM_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST_DATA_ABSENCE_FALSE,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.STATIONARY,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_krymskaya_grushovaya": (StationaryStatus.STATIONARY, LdsStatus.DEGRADATION),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.STATIONARY, LdsStatus.DEGRADATION),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=5),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="34", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.STATIONARY, StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.STATIONARY.report_text,
StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="12", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="37", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25),
lds_status_initialization_out_test=CaseMarkers(test_case_id="35", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=63),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=64),
# ===== КОНФИГУРАЦИЯ УТЕЧКИ =====
leak=LeakTestConfig(
# ----- Конфигурация статусов СОУ во время утечки -----
lds_status_during_leak_config=DiagnosticAreaStatusConfig(
leak_diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
leak_du_expected_lds_status=LdsStatus.INITIALIZATION,
neighbors_du_expected_lds_status=LdsStatus.DEGRADATION,
),
# ----- Ожидаемый статус СОУ -----
lds_status_after_confirming_leak_data=CaseData(
params={"pipe_id": DIAGNOSTIC_AREA_3_PIPE_ID},
expected_result=(
LdsStatus.INITIALIZATION,
LdsStatusInitialization.ACCUMULATION_DATA,
),
),
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
linear_part_id=LINEAR_PART_ID,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=ALLOWED_TIME_DIFF_SECONDS,
# ----- Ожидаемые статусы -----
expected_lds_status=LdsStatus.SERVICEABLE,
expected_stationary_status=StationaryStatus.STATIONARY,
expected_algorithm_type=ReservedType.STATIONARY_FLOW,
expected_leak_status=ConfirmationStatus.CONFIRMED,
expected_lds_status_in_leaks_report=LdsStatus.SERVICEABLE.value,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=44), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=59),
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=49),
# ----- Тест AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="2", offset=59),
# ----- Тест LeaksContent -----
leaks_content_test=CaseMarkers(test_case_id="101", offset=59),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="14", offset=59),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="147", offset=59),
# ----- Тест CommonSchemeContent -----
lds_status_during_leak_test=CaseMarkers(test_case_id="36", offset=59.5),
# ----- Тест MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=60),
lds_status_after_confirming_leak_test=CaseMarkers(test_case_id="201", offset=60),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="15", offset=60),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=60.5),
# ----- Тест OutputSignals -----
output_signals_test=CaseMarkers(test_case_id="38", offset=61),
# ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=62),
),
)
11
"""
Конфигурация тестового набора Select_11_tn3_56km_113
Особенности набора:
- Режим стационар
- Одна утечка на координате НПС Тихорецкая
- Объём утечки 56.8 м³
- Определение утечки на НПС
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
MeasureConversionRule,
ReservedType,
StationaryReason,
StationaryStatus,
TU,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import (
CaseData,
CaseMarkers,
DiagnosticAreaStatusConfig,
LeakTestConfig,
SmokeSuiteConfig,
)
# ===== Константы набора =====
SUITE_NAME = "Select_11_tn3_nps_56"
SUITE_DATA_ID = 5
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# Параметры утечки
LEAK_COORDINATE_METERS = 0
LEAK_VOLUME_M3 = 56.8
ALLOWED_TIME_DIFF_SECONDS = 1800 # 30 минут
LEAK_START_INTERVAL_SECONDS = 2100 # 35 минут
LEAK_TECHNOLOGICAL_OBJECT = "НПС-5 Тихорецкая - НПС-3 Нововеличковская"
FLOW_RATE_SETTINGS_THRESHOLD = 17
# ID диагностических участков
LEAK_DIAGNOSTIC_AREA_ID = 1
LEAK_DIAGNOSTIC_AREA_NAME = "Т-Н-3.НПС-5 «Тихорецкая».УЗР СИКН ТН-3 - Т-Н-3.НПС-5 «Тихорецкая».УЗР вых"
# ID труб для определения ДУ
DIAGNOSTIC_AREA_2_PIPE_ID = 1463 # Труба на ДУ с утечкой
# ID линейного участка
LINEAR_PART_ID = 407
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
SELECT_11_CONFIG = SmokeSuiteConfig(
# ===== Метаданные =====
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.KG_CM_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST_DATA_ABSENCE_FALSE,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.STATIONARY,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_krymskaya_grushovaya": (StationaryStatus.STATIONARY, LdsStatus.DEGRADATION),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.STOPPED, LdsStatus.DEGRADATION),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=5),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="29", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.STATIONARY, StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.STATIONARY.report_text,
StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="3", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="32", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25),
lds_status_initialization_out_test=CaseMarkers(test_case_id="30", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=69),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=70),
# ===== КОНФИГУРАЦИЯ УТЕЧКИ =====
leak=LeakTestConfig(
# ----- Конфигурация статусов СОУ во время утечки -----
lds_status_during_leak_config=DiagnosticAreaStatusConfig(
leak_diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
leak_du_expected_lds_status=LdsStatus.INITIALIZATION,
neighbors_du_expected_lds_status=LdsStatus.DEGRADATION,
),
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
linear_part_id=LINEAR_PART_ID,
technological_object=LEAK_TECHNOLOGICAL_OBJECT,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=ALLOWED_TIME_DIFF_SECONDS,
# ----- Ожидаемые статусы -----
expected_algorithm_type=ReservedType.BALANCE_IN_NPS,
expected_lds_status=LdsStatus.DEGRADATION,
expected_stationary_status=StationaryStatus.STATIONARY,
expected_leak_status=ConfirmationStatus.CONFIRMED,
expected_lds_status_in_leaks_report=LdsStatus.DEGRADATION.value,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=51), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=65),
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=56),
# ----- Тест AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="5", offset=65),
# ----- Тест LeaksContent -----
leaks_content_test=CaseMarkers(test_case_id="145", offset=65),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="147", offset=65),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="144", offset=65),
# ----- Тест CommonSchemeContent -----
lds_status_during_leak_test=CaseMarkers(test_case_id="146", offset=65.5),
# ----- Тест MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=66),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="6", offset=66),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=66.5),
# ----- Тест OutputSignals -----
output_signals_test=CaseMarkers(test_case_id="143", offset=67),
# ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=68),
),
)
17
"""
Конфигурация тестового набора Select_17_tn3_75km_417
Особенности набора:
- Режим МТ: нестационар
- Одна утечка на координате 75 км
- Объём утечки 416 м³
- Интенсивность утечки 13,2%
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
LdsStatusInitialization,
MeasureConversionRule,
ReservedType,
StationaryReason,
StationaryStatus,
TU,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import (
CaseData,
CaseMarkers,
DiagnosticAreaStatusConfig,
LeakTestConfig,
SmokeSuiteConfig,
)
# ===== Константы набора =====
SUITE_NAME = "Select_17_tn3_75km_417"
SUITE_DATA_ID = 6
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# Параметры утечки
LEAK_COORDINATE_METERS = 75000.0
LEAK_VOLUME_M3 = 416.0
ALLOWED_TIME_DIFF_SECONDS = 1080 # 18 минут
LEAK_START_INTERVAL_SECONDS = 2100 # 35 минут
FLOW_RATE_SETTINGS_THRESHOLD = 17
# ID диагностических участков
LEAK_DIAGNOSTIC_AREA_ID = 2
LEAK_DIAGNOSTIC_AREA_NAME = "Т-Н-3.НПС-5 «Тихорецкая».УЗР вых - Т-Н-3.УЗР НПС-3 «Нововеличковская»."
# ID труб для определения ДУ
DIAGNOSTIC_AREA_2_PIPE_ID = 1463 # Труба на ДУ с утечкой
DIAGNOSTIC_AREA_3_PIPE_ID = 1444 # OUT_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
# ID линейного участка
LINEAR_PART_ID = 407
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
SELECT_17_CONFIG = SmokeSuiteConfig(
# ----- Метаданные -----
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.KG_CM_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST_DATA_ABSENCE_FALSE_SELECT,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.STATIONARY,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_krymskaya_grushovaya": (StationaryStatus.STATIONARY, LdsStatus.DEGRADATION),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.STOPPED, LdsStatus.DEGRADATION),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=5),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="59", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.STATIONARY, StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.STATIONARY.report_text,
StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="12", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="62", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25),
lds_status_initialization_out_test=CaseMarkers(test_case_id="61", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=59),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=60),
# ===== КОНФИГУРАЦИЯ УТЕЧКИ =====
leak=LeakTestConfig(
# ----- Конфигурация статусов СОУ во время утечки -----
lds_status_during_leak_config=DiagnosticAreaStatusConfig(
leak_diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
leak_du_expected_lds_status=LdsStatus.INITIALIZATION,
neighbors_du_expected_lds_status=LdsStatus.DEGRADATION,
),
# ----- Ожидаемый статус СОУ -----
lds_status_after_confirming_leak_data=CaseData(
params={"pipe_id": DIAGNOSTIC_AREA_2_PIPE_ID},
expected_result=(
LdsStatus.INITIALIZATION,
LdsStatusInitialization.ACCUMULATION_DATA,
),
),
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
linear_part_id=LINEAR_PART_ID,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=ALLOWED_TIME_DIFF_SECONDS,
# ----- Ожидаемые статусы -----
expected_lds_status=LdsStatus.SERVICEABLE,
expected_stationary_status=StationaryStatus.UNSTATIONARY,
expected_algorithm_type=ReservedType.UNSTATIONARY_FLOW,
expected_leak_status=ConfirmationStatus.CONFIRMED,
expected_lds_status_in_leaks_report=LdsStatus.SERVICEABLE.value,
expected_report_stationary_status=StationaryStatus.UNSTATIONARY.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=42), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=53),
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=47),
# ----- Тест AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="6", offset=53),
# ----- Тест LeaksContent -----
leaks_content_test=CaseMarkers(test_case_id="103", offset=53),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="57", offset=53),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="147", offset=53),
# ----- Тест CommonSchemeContent -----
lds_status_during_leak_test=CaseMarkers(test_case_id="60", offset=53.5),
# ----- Тест MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=55),
lds_status_after_confirming_leak_test=CaseMarkers(test_case_id="201", offset=55),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="58", offset=55.5),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=56),
# ----- Тест OutputSignals -----
output_signals_test=CaseMarkers(test_case_id="63", offset=57),
# ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=58),
),
)
19
"""
Конфигурация тестового набора Select_19_20_tn3_75_181km_649 (две утечки)
Особенности набора:
- Две утечки с разными координатами и временными интервалами
- Первая утечка: 75 км, 648.8 м³, интервал 2460 с (~41 мин)
- Вторая утечка: 181 км, 648.8 м³, интервал 3300 с (~55 мин)
- Интенсивность утечки 20,4%
- Допустимое время обнаружения 6 минут
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
LdsStatusInitialization,
MeasureConversionRule,
ReservedType,
StationaryReason,
StationaryStatus,
TU,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import (
CaseData,
CaseMarkers,
DiagnosticAreaStatusConfig,
LeakTestConfig,
SmokeSuiteConfig,
)
# ===== Константы набора =====
SUITE_NAME = "Select_19_20_tn3_75_181km_649"
SUITE_DATA_ID = 7
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
FLOW_RATE_SETTINGS_THRESHOLD = 17
# ===== Первая утечка =====
LEAK_1_DIAGNOSTIC_AREA_ID = 2
LEAK_1_CONTROL_SITE_ID = 6032
LEAK_1_LINEAR_PART_ID = 407
LEAK_1_COORDINATE_METERS = 75000.0
LEAK_1_VOLUME_M3 = 648.8
LEAK_1_ALLOWED_TIME_DIFF_SECONDS = 360 # 6 минут
LEAK_1_START_INTERVAL_SECONDS = 2460 # ~41 минута
LEAK_1_OUTPUT_DELAY_SECONDS = 960
LEAK_1_DIAGNOSTIC_AREA_NAME = "Т-Н-3.НПС-5 «Тихорецкая».УЗР вых - Т-Н-3.УЗР НПС-3 «Нововеличковская»."
# ===== Вторая утечка =====
LEAK_2_DIAGNOSTIC_AREA_ID = 3
LEAK_2_CONTROL_SITE_ID = 6148
LEAK_2_LINEAR_PART_ID = 408
LEAK_2_COORDINATE_METERS = 181000.0
LEAK_2_VOLUME_M3 = 648.8
LEAK_2_ALLOWED_TIME_DIFF_SECONDS = 360 # 6 минут
LEAK_2_START_INTERVAL_SECONDS = 3300 # ~55 минут
LEAK_2_OUTPUT_DELAY_SECONDS = 150
LEAK_2_DIAGNOSTIC_AREA_NAME = "Т-Н-3.УЗР НПС-3 «Нововеличковская». - Т-Н-3.НПС-2 «Крымская».УЗР СИКН Т-К"
# ID труб для определения ДУ
DIAGNOSTIC_AREA_2_PIPE_ID = 1463 # Труба на ДУ с первой утечкой и IN_NEIGHBOR для второй утечки
DIAGNOSTIC_AREA_3_PIPE_ID = 474 # Труба на ДУ со второй утечкой и OUT_NEIGHBOR для первой утечки
DIAGNOSTIC_AREA_6_PIPE_ID = 999205440 # OUT_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID для второй утечки
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
SELECT_19_20_CONFIG = SmokeSuiteConfig(
# ----- Метаданные -----
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.KG_CM_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST_DATA_ABSENCE_FALSE_SELECT,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.STATIONARY,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_krymskaya_grushovaya": (StationaryStatus.STATIONARY, LdsStatus.DEGRADATION),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.STOPPED, LdsStatus.DEGRADATION),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=1),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="29", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.STATIONARY, StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.STATIONARY.report_text,
StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="3", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25),
mask_signal_test=CaseMarkers(test_case_id="32", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
lds_status_initialization_out_test=CaseMarkers(test_case_id="30", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
# ----- Дополнительный тест на нестационар (специфика двух утечек) -----
main_page_info_unstationary_test=CaseMarkers(test_case_id="79", offset=40),
# ----- Тест ExportReports -----
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=64),
# ===== Конфигурации утечек =====
leaks=[
# ===== ПЕРВАЯ УТЕЧКА (75 км) =====
LeakTestConfig(
# ----- Конфигурация статусов СОУ во время утечки -----
lds_status_during_leak_config=DiagnosticAreaStatusConfig(
leak_diagnostic_area_name=LEAK_1_DIAGNOSTIC_AREA_NAME,
leak_du_expected_lds_status=LdsStatus.INITIALIZATION,
neighbors_du_expected_lds_status=LdsStatus.DEGRADATION,
),
# ----- Ожидаемый статус СОУ -----
lds_status_after_confirming_leak_data=CaseData(
params={"pipe_id": DIAGNOSTIC_AREA_2_PIPE_ID},
expected_result=(
LdsStatus.INITIALIZATION,
LdsStatusInitialization.ACCUMULATION_DATA,
),
),
# ----- Идентификаторы -----
diagnostic_area_id=LEAK_1_DIAGNOSTIC_AREA_ID,
control_site_id=LEAK_1_CONTROL_SITE_ID,
linear_part_id=LEAK_1_LINEAR_PART_ID,
diagnostic_area_name=LEAK_1_DIAGNOSTIC_AREA_NAME,
# ----- Параметры утечки -----
coordinate_meters=LEAK_1_COORDINATE_METERS,
volume_m3=LEAK_1_VOLUME_M3,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_1_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=LEAK_1_ALLOWED_TIME_DIFF_SECONDS,
output_test_delay_seconds=LEAK_1_OUTPUT_DELAY_SECONDS,
# ----- Ожидаемые статусы -----
expected_lds_status=LdsStatus.SERVICEABLE,
expected_stationary_status=StationaryStatus.UNSTATIONARY,
expected_algorithm_type=ReservedType.UNSTATIONARY_FLOW,
expected_leak_status=ConfirmationStatus.CONFIRMED,
# ----- Тест BalanceAlgorithmResultsContent (первая утечка) -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=42), # Длительность теста 5 мин
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=47),
# ----- Тест LeaksContent (первая утечка) -----
leaks_content_test=CaseMarkers(test_case_id="72", offset=47),
# ----- Тест AllLeaksInfo (первая утечка) -----
all_leaks_info_test=CaseMarkers(test_case_id="7", offset=47),
# ----- Тест TuLeaksInfo (первая утечка) -----
tu_leaks_info_test=CaseMarkers(test_case_id="70", offset=47),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="147", offset=47),
# ----- Тест CommonSchemeContent (первая утечка) -----
lds_status_during_leak_test=CaseMarkers(test_case_id="80", offset=47),
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=47),
lds_status_after_confirming_leak_test=CaseMarkers(test_case_id="201", offset=48),
# ----- Тест AcknowledgeLeak (первая утечка) -----
acknowledge_leak_test=CaseMarkers(test_case_id="74", offset=62),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=62.5),
# ----- Тест OutputSignals (первая утечка) -----
output_signals_test=CaseMarkers(test_case_id="77", offset=63),
),
# ===== ВТОРАЯ УТЕЧКА (181 км) =====
LeakTestConfig(
# ----- Конфигурация статусов СОУ во время утечки -----
lds_status_during_leak_config=DiagnosticAreaStatusConfig(
leak_diagnostic_area_name=LEAK_2_DIAGNOSTIC_AREA_NAME,
leak_du_expected_lds_status=LdsStatus.INITIALIZATION,
neighbors_du_expected_lds_status=LdsStatus.DEGRADATION,
),
# ----- Идентификаторы -----
diagnostic_area_id=LEAK_2_DIAGNOSTIC_AREA_ID,
control_site_id=LEAK_2_CONTROL_SITE_ID,
linear_part_id=LEAK_2_LINEAR_PART_ID,
diagnostic_area_name=LEAK_2_DIAGNOSTIC_AREA_NAME,
# ----- Параметры утечки -----
coordinate_meters=LEAK_2_COORDINATE_METERS,
volume_m3=LEAK_2_VOLUME_M3,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_2_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=LEAK_2_ALLOWED_TIME_DIFF_SECONDS,
output_test_delay_seconds=LEAK_2_OUTPUT_DELAY_SECONDS,
# ----- Ожидаемые статусы -----
expected_lds_status=LdsStatus.DEGRADATION,
expected_stationary_status=StationaryStatus.UNSTATIONARY,
expected_algorithm_type=ReservedType.UNSTATIONARY_FLOW,
expected_leak_status=ConfirmationStatus.CONFIRMED,
# ----- Тест BalanceAlgorithmResultsContent (вторая утечка) -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=54), # Длительность теста 5 мин
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=61),
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=59),
# ----- Тест LeaksContent (вторая утечка) -----
leaks_content_test=CaseMarkers(test_case_id="73", offset=61),
# ----- Тест AllLeaksInfo (вторая утечка) -----
all_leaks_info_test=CaseMarkers(test_case_id="7", offset=61),
# ----- Тест TuLeaksInfo (вторая утечка) -----
tu_leaks_info_test=CaseMarkers(test_case_id="71", offset=61),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="147", offset=61),
# ----- Тест CommonSchemeContent (вторая утечка) -----
lds_status_during_leak_test=CaseMarkers(test_case_id="80", offset=61),
# ----- Тест AcknowledgeLeak (вторая утечка) -----
acknowledge_leak_test=CaseMarkers(test_case_id="75", offset=62.5),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=63),
# ----- Тест OutputSignals (вторая утечка) -----
output_signals_test=CaseMarkers(test_case_id="78", offset=63.5),
),
],
)
21
"""
Конфигурация тестового набора Select_21_tn3_75km_400
Особенности набора:
- Режим МТ: Нестационарный
- Одна утечка на координате 75 км
- Объём утечки 400 м³
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
LdsStatusInitialization,
MeasureConversionRule,
ReservedType,
StationaryReason,
StationaryStatus,
TU,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import (
CaseData,
CaseMarkers,
DiagnosticAreaStatusConfig,
LeakTestConfig,
SmokeSuiteConfig,
)
# ===== Константы набора =====
SUITE_NAME = "Select_21_tn3_75km_400"
SUITE_DATA_ID = 8
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# ===== Параметры утечки =====
LEAK_TECHNOLOGICAL_OBJECT = "НПС-5 Тихорецкая - НПС-3 Нововеличковская"
LEAK_COORDINATE_METERS = 75000.0
LEAK_VOLUME_M3 = 400.0
LEAK_ALLOWED_TIME_DIFF_SECONDS = 360 # 6 мин
LEAK_START_INTERVAL_SECONDS = 2460 # 41 мин
LEAK_OUTPUT_DELAY_SECONDS = 360
LEAK_LINEAR_PART_ID = 407 # ID линейного участка
FLOW_RATE_SETTINGS_THRESHOLD = 30
MAX_PUMPING_M3 = 1900 # Максимальная перекачка
# ID диагностических участков
LEAK_DIAGNOSTIC_AREA_ID = 2
LEAK_DIAGNOSTIC_AREA_NAME = "Т-Н-3.НПС-5 «Тихорецкая».УЗР вых - Т-Н-3.УЗР НПС-3 «Нововеличковская»."
# ID труб для определения ДУ
DIAGNOSTIC_AREA_2_PIPE_ID = 1463 # Труба на ДУ с утечкой
DIAGNOSTIC_AREA_3_PIPE_ID = 1444 # OUT_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
SELECT_21_CONFIG = SmokeSuiteConfig(
# ----- Метаданные -----
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.KG_CM_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST_DATA_ABSENCE_FALSE_SELECT,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.STATIONARY,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_krymskaya_grushovaya": (StationaryStatus.STATIONARY, LdsStatus.DEGRADATION),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.STOPPED, LdsStatus.DEGRADATION),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=1),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="29", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.STATIONARY, StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.STATIONARY.report_text,
StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="3", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="32", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25),
lds_status_initialization_out_test=CaseMarkers(test_case_id="30", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=51),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=52),
# ===== Конфигурации утечки =====
leak=LeakTestConfig(
# ----- Конфигурация статусов СОУ во время утечки -----
lds_status_during_leak_config=DiagnosticAreaStatusConfig(
leak_diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
leak_du_expected_lds_status=LdsStatus.INITIALIZATION,
neighbors_du_expected_lds_status=LdsStatus.DEGRADATION,
),
# ----- Ожидаемый статус СОУ -----
lds_status_after_confirming_leak_data=CaseData(
params={"pipe_id": DIAGNOSTIC_AREA_2_PIPE_ID},
expected_result=(
LdsStatus.INITIALIZATION,
LdsStatusInitialization.ACCUMULATION_DATA,
),
),
# ----- Идентификаторы -----
diagnostic_area_id=LEAK_DIAGNOSTIC_AREA_ID,
linear_part_id=LEAK_LINEAR_PART_ID,
technological_object=LEAK_TECHNOLOGICAL_OBJECT,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
max_pumping_m3=MAX_PUMPING_M3,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=LEAK_ALLOWED_TIME_DIFF_SECONDS,
output_test_delay_seconds=LEAK_OUTPUT_DELAY_SECONDS,
# ----- Ожидаемые статусы -----
expected_lds_status=LdsStatus.SERVICEABLE,
expected_stationary_status=StationaryStatus.UNSTATIONARY,
expected_algorithm_type=ReservedType.UNSTATIONARY_FLOW,
expected_leak_status=ConfirmationStatus.CONFIRMED,
expected_lds_status_in_leaks_report=LdsStatus.SERVICEABLE.value,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=41), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=47),
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=46),
# ----- Тест AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="8", offset=47),
# ----- Тест LeaksContent -----
leaks_content_test=CaseMarkers(test_case_id="151", offset=47),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="152", offset=47),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="150", offset=47),
# ----- Тест CommonScheme -----
lds_status_during_leak_test=CaseMarkers(test_case_id="31", offset=47.5),
# ----- Тест MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=48),
lds_status_after_confirming_leak_test=CaseMarkers(test_case_id="201", offset=48),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="6", offset=48),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=48.5),
# ----- Тест OutputSignals -----
output_signals_test=CaseMarkers(test_case_id="153", offset=49),
# ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=50),
),
)
22
"""
Конфигурация тестового набора Select_22_tn3_75km_375
Особенности набора:
- Режим МТ: нестационар
- Одна утечка на координате 75 км
- Объём утечки 375 м³
- Интенсивность утечки 19,7%
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
LdsStatusInitialization,
MeasureConversionRule,
ReservedType,
StationaryReason,
StationaryStatus,
TU,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import (
CaseData,
CaseMarkers,
DiagnosticAreaStatusConfig,
LeakTestConfig,
SmokeSuiteConfig,
)
# ===== Константы набора =====
SUITE_NAME = "Select_22_tn3_75km_375"
SUITE_DATA_ID = 9
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# ===== Параметры утечки =====
FLOW_RATE_SETTINGS_THRESHOLD = 30
LEAK_DIAGNOSTIC_AREA_ID = 2
LEAK_CONTROL_SITE_ID = 6034
LEAK_LINEAR_PART_ID = 407
LEAK_COORDINATE_METERS = 75000.0
LEAK_VOLUME_M3 = 375.0
LEAK_ALLOWED_TIME_DIFF_SECONDS = 720 # 12 мин
LEAK_START_INTERVAL_SECONDS = 2100 # 35 мин
LEAK_OUTPUT_DELAY_SECONDS = 360
# ID труб для определения ДУ
DIAGNOSTIC_AREA_2_PIPE_ID = 1463 # Труба на ДУ с утечкой
DIAGNOSTIC_AREA_3_PIPE_ID = 1444 # OUT_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
MAX_PUMPING_M3 = 1900 # Максимальная перекачка
LEAK_DIAGNOSTIC_AREA_NAME = "Т-Н-3.НПС-5 «Тихорецкая».УЗР вых - Т-Н-3.УЗР НПС-3 «Нововеличковская»."
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
SELECT_22_CONFIG = SmokeSuiteConfig(
# ----- Метаданные -----
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.KG_CM_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST_DATA_ABSENCE_FALSE_SELECT,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.STATIONARY,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_krymskaya_grushovaya": (StationaryStatus.STATIONARY, LdsStatus.DEGRADATION),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.STOPPED, LdsStatus.DEGRADATION),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=1),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="29", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.STATIONARY, StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.STATIONARY.report_text,
StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="3", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="32", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25),
lds_status_initialization_out_test=CaseMarkers(test_case_id="30", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=51),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=52),
# ===== Конфигурации утечки =====
leak=LeakTestConfig(
# ----- Конфигурация статусов СОУ во время утечки -----
lds_status_during_leak_config=DiagnosticAreaStatusConfig(
leak_diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
leak_du_expected_lds_status=LdsStatus.INITIALIZATION,
neighbors_du_expected_lds_status=LdsStatus.DEGRADATION,
),
# ----- Ожидаемый статус СОУ -----
lds_status_after_confirming_leak_data=CaseData(
params={"pipe_id": DIAGNOSTIC_AREA_3_PIPE_ID},
expected_result=(
LdsStatus.INITIALIZATION,
LdsStatusInitialization.ACCUMULATION_DATA,
),
),
# ----- Идентификаторы -----
diagnostic_area_id=LEAK_DIAGNOSTIC_AREA_ID,
control_site_id=LEAK_CONTROL_SITE_ID,
linear_part_id=LEAK_LINEAR_PART_ID,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
max_pumping_m3=MAX_PUMPING_M3,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=LEAK_ALLOWED_TIME_DIFF_SECONDS,
output_test_delay_seconds=LEAK_OUTPUT_DELAY_SECONDS,
# ----- Ожидаемые статусы -----
expected_lds_status=LdsStatus.SERVICEABLE,
expected_stationary_status=StationaryStatus.UNSTATIONARY,
expected_algorithm_type=ReservedType.UNSTATIONARY_FLOW,
expected_leak_status=ConfirmationStatus.CONFIRMED,
expected_lds_status_in_leaks_report=LdsStatus.SERVICEABLE.value,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=41), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=47),
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=46),
# ----- Тесты LeaksContent -----
leaks_content_test=CaseMarkers(test_case_id="124", offset=47),
# ----- Тест AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="9", offset=47),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="168", offset=47),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="19", offset=47),
# ----- Тест CommonSchemeContent -----
lds_status_during_leak_test=CaseMarkers(test_case_id="122", offset=47),
# ----- Тест MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=48),
lds_status_after_confirming_leak_test=CaseMarkers(test_case_id="201", offset=48),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="6", offset=48.5),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=49),
# ----- Тест OutputSignals -----
output_signals_test=CaseMarkers(test_case_id="123", offset=50),
# ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=50),
),
)
24
"""
Конфигурация тестового набора Select_24_tn3_181km_1900
Особенности набора:
- Режим МТ: Нестационарный
- Одна утечка на координате 181 км
- Объём утечки 1900 м³
- Интенсивность утечки 100%
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
LdsStatusInitialization,
MeasureConversionRule,
ReservedType,
StationaryReason,
StationaryStatus,
TU,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import (
CaseData,
CaseMarkers,
DiagnosticAreaStatusConfig,
LeakTestConfig,
SmokeSuiteConfig,
)
# ===== Константы набора =====
SUITE_NAME = "Select_24_tn3_181km_1900"
SUITE_DATA_ID = 10
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Данные сообщений
MESSAGE_EVENT_LEAK_COMPLETION = "Утечка завершена"
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# ===== Ожидаемые controlledSiteId для проверки выходных сигналов =====
CONTROLLED_SITE_ID_FIRST = 6012
SEGMENT_ID_FIRST = 6013
CONTROLLED_SITE_ID_SECOND = 6074
SEGMENT_ID_SECOND = 6075
CONTROLLED_SITE_ID_THIRD = 9992054525
SEGMENT_ID_THIRD = 9992054526
CONTROLLED_SITE_ID_FOURTH = 6242
SEGMENT_ID_FOURTH = 6243
CONTROLLED_SITE_ID_FIFTH = 6076
SEGMENT_ID_FIFTH = 6077
CONTROLLED_SITE_ID_SIXTH = 6088
SEGMENT_ID_SIXTH = 6089
CONTROLLED_SITE_ID_SEVENTH = 6244
SEGMENT_ID_SEVENTH = 6245
CONTROLLED_SITE_ID_EIGHTH = 6132
SEGMENT_ID_EIGHTH = 6133
# ===== Параметры утечки =====
LEAK_DIAGNOSTIC_AREA_NAME = "Т-Н-3.УЗР НПС-3 «Нововеличковская». - Т-Н-3.НПС-2 «Крымская».УЗР СИКН Т-К"
LEAK_TECHNOLOGICAL_OBJECT = "НПС-3 Нововеличковская - НПС-2 Крымская"
LEAK_DIAGNOSTIC_AREA_ID = 3
LEAK_CONTROL_SITE_ID = 6096
LEAK_LINEAR_PART_ID = 408
LEAK_COORDINATE_METERS = 181000.0
LEAK_VOLUME_M3 = 1900.0
LEAK_ALLOWED_TIME_DIFF_SECONDS = 360 # 6 мин
LEAK_START_INTERVAL_SECONDS = 2040 # 34 мин
LEAK_OUTPUT_DELAY_SECONDS = 360
FLOW_RATE_SETTINGS_THRESHOLD = 30
TECHNOLOGICAL_SECTION = "Тихорецк-Новороссийск-3"
# ID труб для определения ДУ
DIAGNOSTIC_AREA_3_PIPE_ID = 474 # Труба на ДУ с утечкой
DIAGNOSTIC_AREA_2_PIPE_ID = 1463 # IN_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
DIAGNOSTIC_AREA_6_PIPE_ID = 999205440 # OUT_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
MAX_PUMPING_M3 = 1900 # Максимальная перекачка
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
SELECT_24_CONFIG = SmokeSuiteConfig(
# ----- Метаданные -----
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
technological_section=TECHNOLOGICAL_SECTION,
measure_conversion_rules=MeasureConversionRule.KG_CM_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST_DATA_ABSENCE_FALSE_SELECT,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.STATIONARY,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_krymskaya_grushovaya": (StationaryStatus.STATIONARY, LdsStatus.DEGRADATION),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.STOPPED, LdsStatus.DEGRADATION),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=1),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="29", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.STATIONARY, StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.STATIONARY.report_text,
StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="3", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="32", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25),
lds_status_initialization_out_test=CaseMarkers(test_case_id="30", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=94),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=95),
# ===== Конфигурации утечки =====
leak=LeakTestConfig(
# ----- Конфигурация статусов СОУ во время утечки -----
lds_status_during_leak_config=DiagnosticAreaStatusConfig(
leak_diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
leak_du_expected_lds_status=LdsStatus.INITIALIZATION,
neighbors_du_expected_lds_status=LdsStatus.DEGRADATION,
),
# ----- Ожидаемые статусы СОУ -----
lds_status_after_confirming_leak_data=CaseData(
params={"pipe_id": DIAGNOSTIC_AREA_3_PIPE_ID},
expected_result=(
LdsStatus.INITIALIZATION,
LdsStatusInitialization.ACCUMULATION_DATA,
),
),
lds_status_after_completed_leak_data=CaseData(
params={"pipe_id": DIAGNOSTIC_AREA_3_PIPE_ID},
expected_result=(
LdsStatus.INITIALIZATION,
LdsStatusInitialization.ACCUMULATION_DATA,
),
),
# ----- Идентификаторы -----
diagnostic_area_id=LEAK_DIAGNOSTIC_AREA_ID,
control_site_id=LEAK_CONTROL_SITE_ID,
linear_part_id=LEAK_LINEAR_PART_ID,
technological_object=LEAK_TECHNOLOGICAL_OBJECT,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- События сообщений -----
message_event_leak_completion=MESSAGE_EVENT_LEAK_COMPLETION,
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
max_pumping_m3=MAX_PUMPING_M3,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=LEAK_ALLOWED_TIME_DIFF_SECONDS,
output_test_delay_seconds=LEAK_OUTPUT_DELAY_SECONDS,
# ----- Ожидаемые статусы -----
expected_lds_status=LdsStatus.SERVICEABLE,
expected_stationary_status=StationaryStatus.UNSTATIONARY,
expected_algorithm_type=ReservedType.UNSTATIONARY_FLOW,
expected_leak_status=ConfirmationStatus.CONFIRMED,
expected_lds_status_in_leaks_report=LdsStatus.SERVICEABLE.value,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=32), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=40),
balance_algorithm_leak_completed_test=CaseMarkers(test_case_id="217", offset=92),
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=38),
# ----- Тесты AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="134", offset=40),
# ----- Тест LeaksContent -----
leaks_content_test=CaseMarkers(test_case_id="136", offset=40),
# ----- Тесты MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="139", offset=40),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="135", offset=40),
# ----- Тест CommonScheme -----
lds_status_during_leak_test=CaseMarkers(test_case_id="31", offset=40.5),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="6", offset=41),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=41.5),
# ----- Тесты MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=42),
lds_status_after_confirming_leak_test=CaseMarkers(test_case_id="201", offset=42),
# ----- Тест OutputSignals -----
output_signals_test=CaseMarkers(test_case_id="140", offset=42),
# ----- Тесты на факт завершения утечки -----
the_leak_is_complete_on_kg_test=CaseMarkers(test_case_id="180", offset=92),
leak_is_complete_on_main_page_test=CaseMarkers(test_case_id="199", offset=92),
leak_is_complete_in_output_signals_test=CaseMarkers(test_case_id="180", offset=92),
complete_tu_leaks_info_content_test=CaseMarkers(test_case_id="180", offset=92),
completed_leak_info_in_journal_test=CaseMarkers(test_case_id="215", offset=92),
lds_status_completed_leak_test=CaseMarkers(test_case_id="202", offset=100),
all_leaks_is_empty_test=CaseMarkers(test_case_id="187", offset=102),
# ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=93),
),
)
25
"""
Конфигурация тестового набора Select_25_tn3_6km_56
Особенности набора:
- Режим стационара (StationaryStatus.STATIONARY)
- Одна утечка на координате 5 км
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
LdsStatusInitialization,
MeasureConversionRule,
ReservedType,
StationaryReason,
StationaryStatus,
TU,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import (
CaseData,
CaseMarkers,
DiagnosticAreaStatusConfig,
LeakTestConfig,
SmokeSuiteConfig,
)
# ===== Константы набора =====
SUITE_NAME = "Select_25_tn3_6km_56"
SUITE_DATA_ID = 11
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# Параметры утечки
LEAK_COORDINATE_METERS = 5400.0
LEAK_VOLUME_M3 = 57.0
ALLOWED_TIME_DIFF_SECONDS = 1800 # 30 минут
LEAK_START_INTERVAL_SECONDS = 2100 # 40 минут
FLOW_RATE_SETTINGS_THRESHOLD = 17
# ID диагностических участков
LEAK_DIAGNOSTIC_AREA_ID = 2
LEAK_DIAGNOSTIC_AREA_NAME = "Т-Н-3.НПС-5 «Тихорецкая».УЗР вых - Т-Н-3.УЗР НПС-3 «Нововеличковская»."
# ID труб для определения ДУ
DIAGNOSTIC_AREA_2_PIPE_ID = 1463 # Труба на ДУ с утечкой
DIAGNOSTIC_AREA_3_PIPE_ID = 1444 # OUT_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
# ID линейного участка
LINEAR_PART_ID = 407
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
SELECT_25_CONFIG = SmokeSuiteConfig(
# ===== Метаданные =====
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.KG_CM_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST_DATA_ABSENCE_FALSE,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.STATIONARY,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_krymskaya_grushovaya": (StationaryStatus.STATIONARY, LdsStatus.DEGRADATION),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.STATIONARY, LdsStatus.DEGRADATION),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=5),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="86", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.STATIONARY, StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.STATIONARY.report_text,
StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="83", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="89", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25),
lds_status_initialization_out_test=CaseMarkers(test_case_id="89", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=64),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=65),
# ===== КОНФИГУРАЦИЯ УТЕЧКИ =====
leak=LeakTestConfig(
# ----- Конфигурация статусов СОУ во время утечки -----
lds_status_during_leak_config=DiagnosticAreaStatusConfig(
leak_diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
leak_du_expected_lds_status=LdsStatus.INITIALIZATION,
neighbors_du_expected_lds_status=LdsStatus.DEGRADATION,
),
# ----- Ожидаемый статус СОУ -----
lds_status_after_confirming_leak_data=CaseData(
params={"pipe_id": DIAGNOSTIC_AREA_2_PIPE_ID},
expected_result=(
LdsStatus.INITIALIZATION,
LdsStatusInitialization.ACCUMULATION_DATA,
),
),
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
linear_part_id=LINEAR_PART_ID,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=ALLOWED_TIME_DIFF_SECONDS,
# ----- Ожидаемые статусы -----
expected_lds_status=LdsStatus.SERVICEABLE,
expected_stationary_status=StationaryStatus.STATIONARY,
expected_algorithm_type=ReservedType.STATIONARY_FLOW,
expected_leak_status=ConfirmationStatus.CONFIRMED,
expected_lds_status_in_leaks_report=LdsStatus.SERVICEABLE.value,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=47), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=58),
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=52),
# ----- Тест AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="11", offset=58.0),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="84", offset=58.0),
# ----- Тест LeakContent -----
leaks_content_test=CaseMarkers(test_case_id="91", offset=58.0),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="147", offset=58),
# ----- Тест MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=60),
# ----- Тест CommonSchemeContent -----
lds_status_during_leak_test=CaseMarkers(test_case_id="87", offset=61),
lds_status_after_confirming_leak_test=CaseMarkers(test_case_id="201", offset=61),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="85", offset=60.0),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=60.5),
# ----- Тест OutputSignals -----
output_signals_test=CaseMarkers(test_case_id="90", offset=62.0),
# ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=63),
),
)
32
"""
Конфигурация тестового набора Select_32_tn3_229km_56
Особенности набора:
- Режим стационар
- Одна утечка на координате 229км
- Объём утечки 56.8 м³
- Определение утечки до самотечного участка
"""
from constants.enums import (
AdminTU,
ConfirmationStatus,
LdsStatus,
LdsStatusInitialization,
MeasureConversionRule,
ReservedType,
StationaryReason,
StationaryStatus,
TU,
)
from constants.test_constants import BaseTN3Constants as TestConst
from test_config.models_for_tests import (
CaseData,
CaseMarkers,
DiagnosticAreaStatusConfig,
LeakTestConfig,
SmokeSuiteConfig,
)
# ===== Константы набора =====
SUITE_NAME = "Select_32_tn3_229km_56"
SUITE_DATA_ID = 12
ARCHIVE_NAME = f"{SUITE_NAME}.tar.gz"
# Технологический участок
TECHNOLOGICAL_UNIT = TU.TIKHORETSK_NOVOROSSIYSK_3
# Название МН
MAIN_PIPELINE = "МН Тихорецк-Новороссийск-3"
# Параметры утечки
LEAK_COORDINATE_METERS = 229000.0
LEAK_VOLUME_M3 = 56.8
ALLOWED_TIME_DIFF_SECONDS = 1800 # 30 минут
LEAK_START_INTERVAL_SECONDS = 1900 # 31.67 минут
LEAK_TECHNOLOGICAL_OBJECT = "НПС-2 Крымская - НПС Грушовая"
FLOW_RATE_SETTINGS_THRESHOLD = 17
LEAK_DIAGNOSTIC_AREA_NAME = "Т-Н-3.НПС-2 «Крымская».УЗР СИКН Т-К - Т-Н-3.НПС-2 «Крымская».УЗР вых"
# ID диагностических участков
LEAK_DIAGNOSTIC_AREA_ID = 4
# ID труб для определения ДУ
DIAGNOSTIC_AREA_2_PIPE_ID = 1463 # Труба на ДУ с утечкой
DIAGNOSTIC_AREA_3_PIPE_ID = 1444 # IN_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
DIAGNOSTIC_AREA_5_PIPE_ID = 1474 # OUT_NEIGHBOR_DIAGNOSTIC_AREA_PIPE_ID
# ID линейного участка
LINEAR_PART_ID = 409
CONTROL_POINTS = [
"ЗА 105-3 - ЗА 129-3",
"ЗА 180-3 - ЗА 207-3",
]
# ===== Конфигурация набора =====
SELECT_32_CONFIG = SmokeSuiteConfig(
# ===== Метаданные =====
ost_name=TestConst.CHTN_OST_NAME,
suite_name=SUITE_NAME,
suite_data_id=SUITE_DATA_ID,
archive_name=ARCHIVE_NAME,
technological_unit=TECHNOLOGICAL_UNIT,
main_pipeline=MAIN_PIPELINE,
measure_conversion_rules=MeasureConversionRule.KG_CM_MEASURE,
# ===== LDS Configurator =====
use_lds_configurator=True,
admin_tu=AdminTU.TIKHORETSK_NOVOROSSIYSK_3_AUTOTEST_DATA_ABSENCE_FALSE,
# ----- Ожидаемый статус стационара -----
expected_stationary_status=StationaryStatus.STATIONARY,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Ожидаемые статусы для проверки режимов на ЭФ Диагностика сигналов -----
controlled_sites_with_segment=CaseData(
expected_result={
"exp_tixoreczkaya_novovelichkovskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_novovelichkovskaya_krymskaya": (StationaryStatus.STATIONARY, LdsStatus.SERVICEABLE),
"exp_krymskaya_grushovaya": (StationaryStatus.STATIONARY, LdsStatus.DEGRADATION),
"exp_backup_route_bejsug": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_ponura": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_backup_route_kuban": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_afipskij": (StationaryStatus.STOPPED, LdsStatus.FAULTY),
"exp_npz_ilinskij": (StationaryStatus.STATIONARY, LdsStatus.DEGRADATION),
}
),
# ===== БАЗОВЫЕ ТЕСТЫ =====
basic_info_test=CaseMarkers(test_case_id="1", offset=5),
journal_info_test=CaseMarkers(test_case_id="2", offset=5),
lds_status_initialization_test=CaseMarkers(test_case_id="29", offset=5),
lds_status_init_in_journal_test=CaseMarkers(test_case_id="", offset=5),
stationary_status_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(StationaryStatus.STATIONARY, StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA),
),
stationary_status_journal_test_data=CaseData(
params={TestConst.CONTROL_POINTS_KEY: CONTROL_POINTS},
expected_result=(
StationaryStatus.STATIONARY.report_text,
StationaryReason.PRESSURE_AND_FLOW_MOVING_AVERAGES_MEET_CRITERIA.report_text,
),
),
stationary_status_common_scheme_test=CaseMarkers(test_case_id="42", offset=6),
stationary_status_main_page_info_test=CaseMarkers(test_case_id="3", offset=6),
stationary_status_in_output_signals_test=CaseMarkers(test_case_id="41", offset=6),
stationary_status_journal_test=CaseMarkers(test_case_id="43", offset=6),
mask_signal_test=CaseMarkers(test_case_id="32", offset=8),
mask_info_in_journal_test=CaseMarkers(test_case_id="213", offset=9),
diagnostics_of_signals_after_initialization_test=CaseMarkers(test_case_id="210", offset=25),
lds_status_initialization_out_test=CaseMarkers(test_case_id="30", offset=30),
lds_status_init_out_in_journal_test=CaseMarkers(test_case_id="214", offset=31),
export_lds_status_report_test=CaseMarkers(test_case_id="235", offset=64),
export_mt_mode_report_test=CaseMarkers(test_case_id="240", offset=65),
# ===== КОНФИГУРАЦИЯ УТЕЧКИ =====
leak=LeakTestConfig(
# ----- Конфигурация статусов СОУ во время утечки -----
lds_status_during_leak_config=DiagnosticAreaStatusConfig(
leak_diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
leak_du_expected_lds_status=LdsStatus.INITIALIZATION,
neighbors_du_expected_lds_status=LdsStatus.DEGRADATION,
),
# ----- Ожидаемый статус СОУ -----
lds_status_after_confirming_leak_data=CaseData(
params={"pipe_id": DIAGNOSTIC_AREA_5_PIPE_ID},
expected_result=(
LdsStatus.INITIALIZATION,
LdsStatusInitialization.ACCUMULATION_DATA,
),
),
# ----- Параметры утечки -----
coordinate_meters=LEAK_COORDINATE_METERS,
volume_m3=LEAK_VOLUME_M3,
linear_part_id=LINEAR_PART_ID,
technological_object=LEAK_TECHNOLOGICAL_OBJECT,
flow_rate_settings_threshold=FLOW_RATE_SETTINGS_THRESHOLD,
diagnostic_area_name=LEAK_DIAGNOSTIC_AREA_NAME,
# ----- Временные интервалы -----
leak_start_interval_seconds=LEAK_START_INTERVAL_SECONDS,
allowed_time_diff_seconds=ALLOWED_TIME_DIFF_SECONDS,
# ----- Ожидаемые статусы -----
expected_lds_status=LdsStatus.DEGRADATION,
expected_stationary_status=StationaryStatus.STATIONARY,
expected_algorithm_type=ReservedType.BALANCE_IN_NPS,
expected_leak_status=ConfirmationStatus.CONFIRMED,
expected_lds_status_in_leaks_report=LdsStatus.DEGRADATION.value,
expected_report_stationary_status=StationaryStatus.STATIONARY.value,
# ----- Тест BalanceAlgorithmResultsContent -----
balance_algorithm_leak_waiting_test=CaseMarkers(test_case_id="175", offset=47), # Длительность теста 5 минут
balance_algorithm_leak_detected_test=CaseMarkers(test_case_id="177", offset=60),
possible_leak_in_journal_test=CaseMarkers(test_case_id="211", offset=52),
# ----- Тест AllLeaksInfo -----
all_leaks_info_test=CaseMarkers(test_case_id="12", offset=60),
# ----- Тест LeaksContent -----
leaks_content_test=CaseMarkers(test_case_id="156", offset=60),
# ----- Тест MessageInfo -----
leak_info_in_journal=CaseMarkers(test_case_id="154", offset=60),
# ----- Тест TuLeaksInfo -----
tu_leaks_info_test=CaseMarkers(test_case_id="157", offset=60),
# ----- Тест MainPageInfoContent -----
leak_is_confirm_on_main_page_test=CaseMarkers(test_case_id="182", offset=60),
# ----- Тест CommonSchemeContent -----
lds_status_during_leak_test=CaseMarkers(test_case_id="155", offset=60.5),
lds_status_after_confirming_leak_test=CaseMarkers(test_case_id="201", offset=61),
# ----- Тест AcknowledgeLeak -----
acknowledge_leak_test=CaseMarkers(test_case_id="6", offset=61),
acknowledge_leak_in_journal_test=CaseMarkers(test_case_id="212", offset=61.5),
# ----- Тест OutputSignals -----
output_signals_test=CaseMarkers(test_case_id="158", offset=62),
# ----- Тест ExportReports -----
export_leaks_report_test=CaseMarkers(test_case_id="234", offset=63),
),
)