Загрузка данных


now
class SiteKpKp(Enum):
    """controlledSiteId, segmentId"""

    TIXORECZKAYA_NOVOVELICHKOVSKAYA = (6012, 6013)
    NOVOVELICHKOVSKAYA_KRYMSKAYA = (6074, 6075)
    KRYMSKAYA_GRUSHOVAYA = (6220, 6221)
    BACKUP_ROUTE_BEJSUG = (6242, 6243)
    BACKUP_ROUTE_PONURA = (6076, 6077)
    BACKUP_ROUTE_KUBAN = (6088, 6089)
    NPZ_AFIPSKIJ = (6244, 6245)
    NPZ_ILINSKIJ = (6120, 6121)

    @property
    def controlledSiteId(self) -> int:
        return self.value[0]

    @property
    def segmentId(self) -> int:
        return self.value[1]

    @property
    def controlledSiteSegmentDict(self) -> dict:
        return {'controlledSiteId': self.controlledSiteId, 'segmentId': self.segmentId}











then
class SiteKpKp(Enum):
    """controlledSiteId, segmentId"""

    TIXORECZKAYA_NOVOVELICHKOVSKAYA = {'controlledSiteId': 6012, 'segmentId': 6013}
    NOVOVELICHKOVSKAYA_KRYMSKAYA = {'controlledSiteId': 6074, 'segmentId': 6075}
    KRYMSKAYA_GRUSHOVAYA = {'controlledSiteId': 6220, 'segmentId': 6221}
    BACKUP_ROUTE_BEJSUG = {'controlledSiteId': 6242, 'segmentId': 6243}
    BACKUP_ROUTE_PONURA = {'controlledSiteId': 6076, 'segmentId': 6077}
    BACKUP_ROUTE_KUBAN = {'controlledSiteId': 6088, 'segmentId': 6089}
    NPZ_AFIPSKIJ = {'controlledSiteId': 6244, 'segmentId': 6245}
    NPZ_ILINSKIJ = {'controlledSiteId': 6120, 'segmentId': 6121}














now
async def diagnostics_of_signals_after_initialization(ws_client, cfg: SmokeSuiteConfig, test_data: CaseData):
    """
    Проверка выходных сигналов после окончания режима Инициализация по причине "холодного" пуска СОУ.

    """
    # Распаковка данных для теста
    exp_first_site_reg_lu, exp_first_site_reg_sou = test_data.expected_result.get("exp_tixoreczkaya_novovelichkovskaya")
    exp_second_site_reg_lu, exp_second_site_reg_sou = test_data.expected_result.get("exp_novovelichkovskaya_krymskaya")
    exp_third_site_reg_lu, exp_third_site_reg_sou = test_data.expected_result.get("exp_krymskaya_grushovaya")
    exp_fourth_site_reg_lu, exp_fourth_site_reg_sou = test_data.expected_result.get("exp_backup_route_bejsug")
    exp_fifth_site_reg_lu, exp_fifth_site_reg_sou = test_data.expected_result.get("exp_backup_route_ponura")
    exp_sixth_site_reg_lu, exp_sixth_site_reg_sou = test_data.expected_result.get("exp_backup_route_kuban")
    exp_seventh_site_reg_lu, exp_seventh_site_reg_sou = test_data.expected_result.get("exp_npz_afipskij")
    exp_eighth_site_reg_lu, exp_eighth_site_reg_sou = test_data.expected_result.get("exp_npz_ilinskij")

    with allure.step("Подключение по ws, получение и обработка сообщения типа: OutputSignalsInfo"):
        payload = await t_utils.connect_and_subscribe_msg(
            ws_client,
            "OutputSignalsInfo",
            "SubscribeOutputSignalsRequest",
            {
                'objects': {
                    'linearParts': [],
                    'controlledSites': [
                        SiteKpKp.TIXORECZKAYA_NOVOVELICHKOVSKAYA.controlledSiteSegmentDict,
                        SiteKpKp.NOVOVELICHKOVSKAYA_KRYMSKAYA.controlledSiteSegmentDict,
                        SiteKpKp.KRYMSKAYA_GRUSHOVAYA.controlledSiteSegmentDict,
                        SiteKpKp.BACKUP_ROUTE_BEJSUG.controlledSiteSegmentDict,
                        SiteKpKp.BACKUP_ROUTE_PONURA.controlledSiteSegmentDict,
                        SiteKpKp.BACKUP_ROUTE_KUBAN.controlledSiteSegmentDict,
                        SiteKpKp.NPZ_AFIPSKIJ.controlledSiteSegmentDict,
                        SiteKpKp.NPZ_ILINSKIJ.controlledSiteSegmentDict,
                    ],
                },
                'signalTypes': 1023,
                'tuId': cfg.tu_id,
                'additionalProperties': None,
            },
        )

        parsed_payload = parser.parse_output_signals_info_msg(payload)
    with allure.step("Извлечение и подготовка данных для проверки"):

        controlled_site_messages = getattr(parsed_payload.replyContent, 'controlledSiteSignals', [])

        all_signals_dict = t_utils.extract_signal_on_site_and_segment(controlled_site_messages)

        pump_tixoreczkaya = t_utils.get_signal_value(
            all_signals_dict, SiteKpKp.TIXORECZKAYA_NOVOVELICHKOVSKAYA.value, SignalType.REGLU
        )
        sou_tixoreczkaya = t_utils.get_signal_value(
            all_signals_dict, SiteKpKp.TIXORECZKAYA_NOVOVELICHKOVSKAYA.value, SignalType.REGSOU
        )
        gravity_tixoreczkaya = t_utils.get_signal_value(
            all_signals_dict, SiteKpKp.TIXORECZKAYA_NOVOVELICHKOVSKAYA.value, SignalType.GRAVITYPIPE
        )
        pump_novovelichkovskay = t_utils.get_signal_value(
            all_signals_dict, SiteKpKp.NOVOVELICHKOVSKAYA_KRYMSKAYA.value, SignalType.REGLU
        )
        sou_novovelichkovskay = t_utils.get_signal_value(
            all_signals_dict, SiteKpKp.NOVOVELICHKOVSKAYA_KRYMSKAYA.value, SignalType.REGSOU
        )
        gravity_novovelichkovskay = t_utils.get_signal_value(
            all_signals_dict, SiteKpKp.NOVOVELICHKOVSKAYA_KRYMSKAYA.value, SignalType.GRAVITYPIPE
        )
        pump_krymskay = t_utils.get_signal_value(
            all_signals_dict, SiteKpKp.KRYMSKAYA_GRUSHOVAYA.value, SignalType.REGLU
        )
        sou_krymskay = t_utils.get_signal_value(
            all_signals_dict, SiteKpKp.KRYMSKAYA_GRUSHOVAYA.value, SignalType.REGSOU
        )
        gravity_krymskay = t_utils.get_signal_value(
            all_signals_dict, SiteKpKp.KRYMSKAYA_GRUSHOVAYA.value, SignalType.GRAVITYPIPE
        )
        pump_bejsug = t_utils.get_signal_value(all_signals_dict, SiteKpKp.BACKUP_ROUTE_BEJSUG.value, SignalType.REGLU)
        sou_bejsug = t_utils.get_signal_value(all_signals_dict, SiteKpKp.BACKUP_ROUTE_BEJSUG.value, SignalType.REGSOU)
        gravity_bejsug = t_utils.get_signal_value(
            all_signals_dict, SiteKpKp.BACKUP_ROUTE_BEJSUG.value, SignalType.GRAVITYPIPE
        )
        pump_ponura = t_utils.get_signal_value(all_signals_dict, SiteKpKp.BACKUP_ROUTE_PONURA.value, SignalType.REGLU)
        sou_ponura = t_utils.get_signal_value(all_signals_dict, SiteKpKp.BACKUP_ROUTE_PONURA.value, SignalType.REGSOU)
        gravity_ponura = t_utils.get_signal_value(
            all_signals_dict, SiteKpKp.BACKUP_ROUTE_PONURA.value, SignalType.GRAVITYPIPE
        )
        pump_kuban = t_utils.get_signal_value(all_signals_dict, SiteKpKp.BACKUP_ROUTE_KUBAN.value, SignalType.REGLU)
        sou_kuban = t_utils.get_signal_value(all_signals_dict, SiteKpKp.BACKUP_ROUTE_KUBAN.value, SignalType.REGSOU)
        gravity_kuban = t_utils.get_signal_value(
            all_signals_dict, SiteKpKp.BACKUP_ROUTE_KUBAN.value, SignalType.GRAVITYPIPE
        )
        pump_afipskij = t_utils.get_signal_value(all_signals_dict, SiteKpKp.NPZ_AFIPSKIJ.value, SignalType.REGLU)
        sou_afipskij = t_utils.get_signal_value(all_signals_dict, SiteKpKp.NPZ_AFIPSKIJ.value, SignalType.REGSOU)
        gravity_afipskij = t_utils.get_signal_value(
            all_signals_dict, SiteKpKp.NPZ_AFIPSKIJ.value, SignalType.GRAVITYPIPE
        )
        pump_ilinskij = t_utils.get_signal_value(all_signals_dict, SiteKpKp.NPZ_ILINSKIJ.value, SignalType.REGLU)
        sou_ilinskij = t_utils.get_signal_value(all_signals_dict, SiteKpKp.NPZ_ILINSKIJ.value, SignalType.REGSOU)
        gravity_ilinskij = t_utils.get_signal_value(
            all_signals_dict, SiteKpKp.NPZ_ILINSKIJ.value, SignalType.GRAVITYPIPE
        )

    with SoftAssertions() as soft_failures:
        StepCheck(
            "Проверка сигнала - режим МТ на участке Тихорецкая-Нововеличковская",
            "Режим МТ",
            soft_failures,
        ).actual(pump_tixoreczkaya).expected(exp_first_site_reg_lu).equal_to()
        StepCheck(
            "Проверка сигнала - режим СОУ на участке Тихорецкая-Нововеличковская",
            "Режим СОУ",
            soft_failures,
        ).actual(sou_tixoreczkaya).expected(exp_first_site_reg_sou).equal_to()
        StepCheck(
            f"Проверка {GravityPipe.absent_gravity.description} \n" f"на участке Тихорецкая-Нововеличковская",
            "Количество самотеков",
            soft_failures,
        ).actual(gravity_tixoreczkaya).expected(GravityPipe.absent_gravity.id).equal_to()
        StepCheck(
            "Проверка сигнала - режим МТ на участке Нововеличковская-Крымская",
            "Режим МТ",
            soft_failures,
        ).actual(pump_novovelichkovskay).expected(exp_second_site_reg_lu).equal_to()
        StepCheck(
            f"Проверка {GravityPipe.absent_gravity.description}\n" f"на участке Нововеличковская-Крымская",
            "Количество самотеков",
            soft_failures,
        ).actual(gravity_novovelichkovskay).expected(GravityPipe.absent_gravity.id).equal_to()
        StepCheck(
            "Проверка сигнала - режим СОУ на участке Нововеличковская-Крымская",
            "Режим СОУ",
            soft_failures,
        ).actual(sou_novovelichkovskay).expected(exp_second_site_reg_sou).equal_to()
        StepCheck(
            "Проверка сигнала - режим МТ на участке Крымская-Грушовая",
            "Режим МТ",
            soft_failures,
        ).actual(
            pump_krymskay
        ).expected(exp_third_site_reg_lu).equal_to()
        StepCheck(
            f"Проверка {GravityPipe.present_gravity.description} на участке Крымская-Грушовая",
            "Количество самотеков",
            soft_failures,
        ).actual(gravity_krymskay).expected(GravityPipe.present_gravity.id).equal_to()
        StepCheck(
            "Проверка сигнала - режим СОУ на участке Крымская-Грушовая",
            "Режим СОУ",
            soft_failures,
        ).actual(
            sou_krymskay
        ).expected(exp_third_site_reg_sou).equal_to()
        StepCheck(
            "Проверка сигнала - режим МТ на резервной нитке Бейсуг",
            "Режим МТ",
            soft_failures,
        ).actual(
            pump_bejsug
        ).expected(exp_fourth_site_reg_lu).equal_to()
        StepCheck(
            f"Проверка {GravityPipe.absent_gravity.description} на резервной нитке Бейсуг",
            "Количество самотеков",
            soft_failures,
        ).actual(gravity_bejsug).expected(GravityPipe.absent_gravity.id).equal_to()
        StepCheck(
            "Проверка сигнала - режим СОУ на резервной нитке Бейсуг",
            "Режим СОУ",
            soft_failures,
        ).actual(
            sou_bejsug
        ).expected(exp_fourth_site_reg_sou).equal_to()
        StepCheck(
            "Проверка сигнала - режим МТ на резервной нитке Понура",
            "Режим МТ",
            soft_failures,
        ).actual(
            pump_ponura
        ).expected(exp_fifth_site_reg_lu).equal_to()
        StepCheck(
            "Проверка сигнала - режим СОУ на резервной нитке Понура",
            "Режим СОУ",
            soft_failures,
        ).actual(
            sou_ponura
        ).expected(exp_fifth_site_reg_sou).equal_to()
        StepCheck(
            f"Проверка {GravityPipe.absent_gravity.description} на резервной нитке Понура",
            "Количество самотеков",
            soft_failures,
        ).actual(gravity_ponura).expected(GravityPipe.absent_gravity.id).equal_to()
        StepCheck(
            "Проверка сигнала - режим МТ на резервной нитке Кубань",
            "Режим МТ",
            soft_failures,
        ).actual(
            pump_kuban
        ).expected(exp_sixth_site_reg_lu).equal_to()
        StepCheck(
            "Проверка сигнала - режим СОУ на резервной нитке Кубань",
            "Режим СОУ",
            soft_failures,
        ).actual(
            sou_kuban
        ).expected(exp_sixth_site_reg_sou).equal_to()
        StepCheck(
            f"Проверка {GravityPipe.absent_gravity.description} на резервной нитке Кубань",
            "Количество самотеков",
            soft_failures,
        ).actual(gravity_kuban).expected(GravityPipe.absent_gravity.id).equal_to()
        StepCheck(
            "Проверка сигнала - режим МТ на НПЗ Афипский",
            "Режим МТ",
            soft_failures,
        ).actual(
            pump_afipskij
        ).expected(exp_seventh_site_reg_lu).equal_to()
        StepCheck(
            "Проверка сигнала - режим СОУ на НПЗ Афипский",
            "Режим СОУ",
            soft_failures,
        ).actual(
            sou_afipskij
        ).expected(exp_seventh_site_reg_sou).equal_to()
        StepCheck(
            f"Проверка {GravityPipe.absent_gravity.description} на НПЗ Афипский",
            "Количество самотеков",
            soft_failures,
        ).actual(gravity_afipskij).expected(GravityPipe.absent_gravity.id).equal_to()
        StepCheck(
            "Проверка сигнала - режим МТ на НПЗ Ильинский",
            "Режим МТ",
            soft_failures,
        ).actual(
            pump_ilinskij
        ).expected(exp_eighth_site_reg_lu).equal_to()
        StepCheck(
            "Проверка сигнала - режим СОУ на НПЗ Ильинский",
            "Режим СОУ",
            soft_failures,
        ).actual(
            sou_ilinskij
        ).expected(exp_eighth_site_reg_sou).equal_to()
        StepCheck(
            f"Проверка {GravityPipe.absent_gravity.description} на НПЗ Ильинский",
            "Количество самотеков",
            soft_failures,
        ).actual(gravity_ilinskij).expected(GravityPipe.absent_gravity.id).equal_to()



























then
async def diagnostics_of_signals_after_initialization(ws_client, cfg: SmokeSuiteConfig, test_data: CaseData):
    """
    Проверка выходных сигналов после окончания режима Инициализация по причине "холодного" пуска СОУ.

    """
    # Распаковка данных для теста
    exp_first_site_reg_lu, exp_first_site_reg_sou = test_data.expected_result.get("exp_tixoreczkaya_novovelichkovskaya")
    exp_second_site_reg_lu, exp_second_site_reg_sou = test_data.expected_result.get("exp_novovelichkovskaya_krymskaya")
    exp_third_site_reg_lu, exp_third_site_reg_sou = test_data.expected_result.get("exp_krymskaya_grushovaya")
    exp_fourth_site_reg_lu, exp_fourth_site_reg_sou = test_data.expected_result.get("exp_backup_route_bejsug")
    exp_fifth_site_reg_lu, exp_fifth_site_reg_sou = test_data.expected_result.get("exp_backup_route_ponura")
    exp_sixth_site_reg_lu, exp_sixth_site_reg_sou = test_data.expected_result.get("exp_backup_route_kuban")
    exp_seventh_site_reg_lu, exp_seventh_site_reg_sou = test_data.expected_result.get("exp_npz_afipskij")
    exp_eighth_site_reg_lu, exp_eighth_site_reg_sou = test_data.expected_result.get("exp_npz_ilinskij")

    with allure.step("Подключение по ws, получение и обработка сообщения типа: OutputSignalsInfo"):
        payload = await t_utils.connect_and_subscribe_msg(
            ws_client,
            "OutputSignalsInfo",
            "SubscribeOutputSignalsRequest",
            {
                'objects': {
                    'linearParts': [],
                    'controlledSites': [
                        SiteKpKp.TIXORECZKAYA_NOVOVELICHKOVSKAYA.value,
                        SiteKpKp.NOVOVELICHKOVSKAYA_KRYMSKAYA.value,
                        SiteKpKp.KRYMSKAYA_GRUSHOVAYA.value,
                        SiteKpKp.BACKUP_ROUTE_BEJSUG.value,
                        SiteKpKp.BACKUP_ROUTE_PONURA.value,
                        SiteKpKp.BACKUP_ROUTE_KUBAN.value,
                        SiteKpKp.NPZ_AFIPSKIJ.value,
                        SiteKpKp.NPZ_ILINSKIJ.value,
                    ],
                },
                'signalTypes': 1023,
                'tuId': cfg.tu_id,
                'additionalProperties': None,
            },
        )

        parsed_payload = parser.parse_output_signals_info_msg(payload)
    with allure.step("Извлечение и подготовка данных для проверки"):
        controlled_site_dict = {
            "controlled_site_first": SiteKpKp.TIXORECZKAYA_NOVOVELICHKOVSKAYA.value,
            "controlled_site_second": SiteKpKp.NOVOVELICHKOVSKAYA_KRYMSKAYA.value,
            "controlled_site_third": SiteKpKp.KRYMSKAYA_GRUSHOVAYA.value,
            "controlled_site_fourth": SiteKpKp.BACKUP_ROUTE_BEJSUG.value,
            "controlled_site_fifth": SiteKpKp.BACKUP_ROUTE_PONURA.value,
            "controlled_site_sixth": SiteKpKp.BACKUP_ROUTE_KUBAN.value,
            "controlled_site_seventh": SiteKpKp.NPZ_AFIPSKIJ.value,
            "controlled_site_eight": SiteKpKp.NPZ_ILINSKIJ.value,
        }

        controlled_site_messages = {}
        for name, key in controlled_site_dict.items():
            controlled_site_messages[name] = t_utils.find_object_by_a_few_fields(
                parsed_payload.replyContent.controlledSiteSignals, key
            )

        all_signals = {}
        for site_name, site_message in controlled_site_messages.items():
            signal_dict = {'pump': None, 'sou': None, 'gravity': None}
            if site_message:
                all_signals[site_name] = {
                    'pump': t_utils.get_signal(site_message, SignalType.REGLU),
                    'sou': t_utils.get_signal(site_message, SignalType.REGSOU),
                    'gravity': t_utils.get_signal(site_message, SignalType.GRAVITYPIPE),
                }
            else:
                all_signals[site_name] = signal_dict

        first_kp_kp = all_signals.get("controlled_site_first") or {}

        if first_kp_kp:
            first_site_signal_pump = (
                StationaryStatus(int(get_value(first_kp_kp.get("pump")))) if first_kp_kp.get("pump") else None
            )
            first_site_signal_sou = (
                LdsStatus(int(get_value(first_kp_kp.get("sou")))) if first_kp_kp.get("sou") else None
            )
            first_site_signal_gravity = get_value(first_kp_kp.get("gravity"))

        second_kp_kp = all_signals.get("controlled_site_second") or {}
        if second_kp_kp:
            second_site_signal_pump = (
                StationaryStatus(int(get_value(second_kp_kp.get("pump")))) if second_kp_kp.get("pump") else None
            )
            second_site_signal_sou = (
                LdsStatus(int(get_value(second_kp_kp.get("sou")))) if second_kp_kp.get("sou") else None
            )
            second_site_signal_gravity = get_value(second_kp_kp.get("gravity"))

        third_kp_kp = all_signals.get("controlled_site_third") or {}
        if third_kp_kp:
            third_site_signal_pump = (
                StationaryStatus(int(get_value(third_kp_kp.get("pump")))) if third_kp_kp.get("pump") else None
            )
            third_site_signal_sou = (
                LdsStatus(int(get_value(third_kp_kp.get("sou")))) if third_kp_kp.get("sou") else None
            )
            third_site_signal_gravity = get_value(third_kp_kp.get("gravity"))

        fourth_kp_kp = all_signals.get("controlled_site_fourth") or {}
        if fourth_kp_kp:
            fourth_site_signal_pump = (
                StationaryStatus(int(get_value(fourth_kp_kp.get("pump")))) if fourth_kp_kp.get("pump") else None
            )
            fourth_site_signal_sou = (
                LdsStatus(int(get_value(fourth_kp_kp.get("sou")))) if fourth_kp_kp.get("sou") else None
            )
            fourth_site_signal_gravity = get_value(fourth_kp_kp.get("gravity"))

        fifth_kp_kp = all_signals.get("controlled_site_fifth") or {}
        if fifth_kp_kp:
            fifth_site_signal_pump = (
                StationaryStatus(int(get_value(fifth_kp_kp.get("pump")))) if fifth_kp_kp.get("pump") else None
            )
            fifth_site_signal_sou = (
                LdsStatus(int(get_value(fifth_kp_kp.get("sou")))) if fifth_kp_kp.get("sou") else None
            )
            fifth_site_signal_gravity = get_value(fifth_kp_kp.get("gravity"))

        sixth_kp_kp = all_signals.get("controlled_site_sixth") or {}
        if sixth_kp_kp:
            sixth_site_signal_pump = (
                StationaryStatus(int(get_value(sixth_kp_kp.get("pump")))) if sixth_kp_kp.get("pump") else None
            )
            sixth_site_signal_sou = (
                LdsStatus(int(get_value(sixth_kp_kp.get("sou")))) if sixth_kp_kp.get("sou") else None
            )
            sixth_site_signal_gravity = get_value(sixth_kp_kp.get("gravity"))

        seventh_kp_kp = all_signals.get("controlled_site_seventh") or {}
        if seventh_kp_kp:
            seventh_site_signal_pump = (
                StationaryStatus(int(get_value(seventh_kp_kp.get("pump")))) if seventh_kp_kp.get("pump") else None
            )
            seventh_site_signal_sou = (
                LdsStatus(int(get_value(seventh_kp_kp.get("sou")))) if seventh_kp_kp.get("sou") else None
            )
            seventh_site_signal_gravity = get_value(seventh_kp_kp.get("gravity"))

        eighth_kp_kp = all_signals.get("controlled_site_eight") or {}
        if eighth_kp_kp:
            eight_site_signal_pump = (
                StationaryStatus(int(get_value(eighth_kp_kp.get("pump")))) if eighth_kp_kp.get("pump") else None
            )
            eight_site_signal_sou = (
                LdsStatus(int(get_value(eighth_kp_kp.get("sou")))) if eighth_kp_kp.get("sou") else None
            )
            eight_site_signal_gravity = get_value(eighth_kp_kp.get("gravity"))

    with SoftAssertions() as soft_failures:
        StepCheck(
            "Проверка сигнала - режим МТ на участке Тихорецкая-Нововеличковская",
            "Режим МТ",
            soft_failures,
        ).actual(first_site_signal_pump).expected(exp_first_site_reg_lu).equal_to()
        StepCheck(
            "Проверка сигнала - режим СОУ на участке Тихорецкая-Нововеличковская",
            "Режим СОУ",
            soft_failures,
        ).actual(first_site_signal_sou).expected(exp_first_site_reg_sou).equal_to()
        StepCheck(
            f"Проверка {GravityPipe.absent_gravity.description} \n" f"на участке Тихорецкая-Нововеличковская",
            "Количество самотеков",
            soft_failures,
        ).actual(first_site_signal_gravity).expected(str(GravityPipe.absent_gravity.id)).equal_to()
        StepCheck(
            "Проверка сигнала - режим МТ на участке Нововеличковская-Крымская",
            "Режим МТ",
            soft_failures,
        ).actual(second_site_signal_pump).expected(exp_second_site_reg_lu).equal_to()
        StepCheck(
            f"Проверка {GravityPipe.absent_gravity.description}\n" f"на участке Нововеличковская-Крымская",
            "Количество самотеков",
            soft_failures,
        ).actual(second_site_signal_gravity).expected(str(GravityPipe.absent_gravity.id)).equal_to()
        StepCheck(
            "Проверка сигнала - режим СОУ на участке Нововеличковская-Крымская",
            "Режим СОУ",
            soft_failures,
        ).actual(second_site_signal_sou).expected(exp_second_site_reg_sou).equal_to()
        StepCheck(
            "Проверка сигнала - режим МТ на участке Крымская-Грушовая",
            "Режим МТ",
            soft_failures,
        ).actual(
            third_site_signal_pump
        ).expected(exp_third_site_reg_lu).equal_to()
        StepCheck(
            f"Проверка {GravityPipe.present_gravity.description} на участке Крымская-Грушовая",
            "Количество самотеков",
            soft_failures,
        ).actual(third_site_signal_gravity).expected(str(GravityPipe.present_gravity.id)).equal_to()
        StepCheck(
            "Проверка сигнала - режим СОУ на участке Крымская-Грушовая",
            "Режим СОУ",
            soft_failures,
        ).actual(
            third_site_signal_sou
        ).expected(exp_third_site_reg_sou).equal_to()
        StepCheck(
            "Проверка сигнала - режим МТ на резервной нитке Бейсуг",
            "Режим МТ",
            soft_failures,
        ).actual(
            fourth_site_signal_pump
        ).expected(exp_fourth_site_reg_lu).equal_to()
        StepCheck(
            f"Проверка {GravityPipe.absent_gravity.description} на резервной нитке Бейсуг",
            "Количество самотеков",
            soft_failures,
        ).actual(fourth_site_signal_gravity).expected(str(GravityPipe.absent_gravity.id)).equal_to()
        StepCheck(
            "Проверка сигнала - режим СОУ на резервной нитке Бейсуг",
            "Режим СОУ",
            soft_failures,
        ).actual(
            fourth_site_signal_sou
        ).expected(exp_fourth_site_reg_sou).equal_to()
        StepCheck(
            "Проверка сигнала - режим МТ на резервной нитке Понура",
            "Режим МТ",
            soft_failures,
        ).actual(
            fifth_site_signal_pump
        ).expected(exp_fifth_site_reg_lu).equal_to()
        StepCheck(
            "Проверка сигнала - режим СОУ на резервной нитке Понура",
            "Режим СОУ",
            soft_failures,
        ).actual(
            fifth_site_signal_sou
        ).expected(exp_fifth_site_reg_sou).equal_to()
        StepCheck(
            f"Проверка {GravityPipe.absent_gravity.description} на резервной нитке Понура",
            "Количество самотеков",
            soft_failures,
        ).actual(fifth_site_signal_gravity).expected(str(GravityPipe.absent_gravity.id)).equal_to()
        StepCheck(
            "Проверка сигнала - режим МТ на резервной нитке Кубань",
            "Режим МТ",
            soft_failures,
        ).actual(
            sixth_site_signal_pump
        ).expected(exp_sixth_site_reg_lu).equal_to()
        StepCheck(
            "Проверка сигнала - режим СОУ на резервной нитке Кубань",
            "Режим СОУ",
            soft_failures,
        ).actual(
            sixth_site_signal_sou
        ).expected(exp_sixth_site_reg_sou).equal_to()
        StepCheck(
            f"Проверка {GravityPipe.absent_gravity.description} на резервной нитке Кубань",
            "Количество самотеков",
            soft_failures,
        ).actual(sixth_site_signal_gravity).expected(str(GravityPipe.absent_gravity.id)).equal_to()
        StepCheck(
            "Проверка сигнала - режим МТ на НПЗ Афипский",
            "Режим МТ",
            soft_failures,
        ).actual(
            seventh_site_signal_pump
        ).expected(exp_seventh_site_reg_lu).equal_to()
        StepCheck(
            "Проверка сигнала - режим СОУ на НПЗ Афипский",
            "Режим СОУ",
            soft_failures,
        ).actual(
            seventh_site_signal_sou
        ).expected(exp_seventh_site_reg_sou).equal_to()
        StepCheck(
            f"Проверка {GravityPipe.absent_gravity.description} на НПЗ Афипский",
            "Количество самотеков",
            soft_failures,
        ).actual(seventh_site_signal_gravity).expected(str(GravityPipe.absent_gravity.id)).equal_to()
        StepCheck(
            "Проверка сигнала - режим МТ на НПЗ Ильинский",
            "Режим МТ",
            soft_failures,
        ).actual(
            eight_site_signal_pump
        ).expected(exp_eighth_site_reg_lu).equal_to()
        StepCheck(
            "Проверка сигнала - режим СОУ на НПЗ Ильинский",
            "Режим СОУ",
            soft_failures,
        ).actual(
            eight_site_signal_sou
        ).expected(exp_eighth_site_reg_sou).equal_to()
        StepCheck(
            f"Проверка {GravityPipe.absent_gravity.description} на НПЗ Ильинский",
            "Количество самотеков",
            soft_failures,
        ).actual(eight_site_signal_gravity).expected(str(GravityPipe.absent_gravity.id)).equal_to()