Пример #1
0
def test_check_trend_time_period_ok():

    with freezegun.freeze_time('1970-01-01 00:01:00'):
        results = list(
            temperature._check_trend(
                {"temp.my_test.delta": (0, 5.)},
                10.,
                {
                    "period": 1,
                    "trend_levels": (50.0, 55.0),
                    "trend_levels_lower": (-50.0, -55.0),
                    "trend_timeleft": (5.0, 2.0),
                },
                "c",
                40.0,
                0.0,
                "my_test",
            ))

    assert isinstance(results[0], Result)
    assert results[0].state == state.OK
    assert results[0].summary == 'Temperature trend: +5.0°C per 1 min'

    assert isinstance(results[1], Result)
    assert results[1].state == state.OK
    assert results[1].summary == 'Time until temperature limit reached: 6 minutes 0 seconds'
Пример #2
0
def test_check_trend_time_period_zero_lower_bound():

    with freezegun.freeze_time('1970-01-01 00:01:00'):
        results = list(
            temperature._check_trend(
                {"temp.my_test.delta": (0, 10.)},
                5.,
                {
                    "period": 1,
                    "trend_levels": (50.0, 55.0),
                    "trend_levels_lower": (-50.0, -55.0),
                    "trend_timeleft": (8.0, 6.0),
                },
                "c",
                40.0,
                0.0,
                "my_test",
            ))

    assert isinstance(results[0], Result)
    assert results[0].state == state.OK
    assert results[0].summary == 'Temperature trend: -5.0°C per 1 min'

    assert isinstance(results[1], Result)
    assert results[1].state == state.CRIT
    assert results[
        1].summary == 'Time until temperature limit reached: 1 minute 0 seconds (warn/crit below 8 minutes 0 seconds/6 minutes 0 seconds)'
Пример #3
0
def test_check_trend_time_period_zero_lower_bound():
    with freezegun.freeze_time("1970-01-01 00:01:00"):
        results = list(
            temperature._check_trend(
                {"temp.my_test.delta": (0, 10.0)},
                5.0,
                {
                    "period": 1,
                    "trend_levels": (50.0, 55.0),
                    "trend_levels_lower": (-50.0, -55.0),
                    "trend_timeleft": (8.0, 6.0),
                },
                "c",
                40.0,
                0.0,
                "my_test",
            ))
    assert results == [
        Result(state=state.OK, summary="Temperature trend: -5.0°C per 1 min"),
        Result(
            state=state.CRIT,
            summary=
            "Time until temperature limit reached: 1 minute 0 seconds (warn/crit below 8 minutes 0 seconds/6 minutes 0 seconds)",
        ),
    ]
Пример #4
0
def test_check_trend_raises():
    with pytest.raises(IgnoreResultsError):
        _ = list(
            temperature._check_trend(
                {},  # uninitialized -> raise
                23.0,
                {"period": 2},
                "c",
                0.0,
                0.0,
                "my_test",
            ))
Пример #5
0
def test_check_trend_simple():
    with freezegun.freeze_time("1970-01-01 00:01:00"):
        results = list(
            temperature._check_trend(
                {"temp.my_test.delta": (0, 17.0)},
                23.0,
                {"period": 2},
                "c",
                0.0,
                0.0,
                "my_test",
            ))
    assert results == [
        Result(state=state.OK, summary="Temperature trend: +12.0°C per 2 min")
    ]
Пример #6
0
def test_check_trend_simple():

    with freezegun.freeze_time('1970-01-01 00:01:00'):
        results = list(
            temperature._check_trend(
                {"temp.my_test.delta": (0, 17.)},
                23.,
                {"period": 2},
                "c",
                0.,
                0.,
                "my_test",
            ))

    assert isinstance(results[0], Result)
    assert results[0].state == state.OK
    assert results[0].summary == 'Temperature trend: +12.0°C per 2 min'
Пример #7
0
def test_check_trend_ok():
    with freezegun.freeze_time("1970-01-01 00:01:00"):
        results = list(
            temperature._check_trend(
                {"temp.my_test.delta": (0, 17.0)},
                23.0,
                {
                    "period": 2,
                    "trend_levels": (50.0, 55.0),
                    "trend_levels_lower": (-50.0, -55.5),
                },
                "c",
                0.0,
                0.0,
                "my_test",
            ))
    assert results == [
        Result(state=state.OK, summary="Temperature trend: +12.0°C per 2 min")
    ]
Пример #8
0
def test_check_trend_ok():

    with freezegun.freeze_time('1970-01-01 00:01:00'):
        results = list(
            temperature._check_trend(
                {"temp.my_test.delta": (0, 17.)},
                23.,
                {
                    "period": 2,
                    "trend_levels": (50.0, 55.0),
                    "trend_levels_lower": (-50.0, -55.5),
                },
                "c",
                0.,
                0.,
                "my_test",
            ))

    assert isinstance(results[0], Result)
    assert results[0].state == state.OK
    assert results[0].summary == 'Temperature trend: +12.0°C per 2 min'
Пример #9
0
def test_check_trend_crit_upper():

    with freezegun.freeze_time('1970-01-01 00:01:00'):
        results = list(
            temperature._check_trend(
                {"temp.my_test.delta": (0, 17.)},
                23.,
                {
                    "period": 2,
                    "trend_levels": (7.0, 10.0),
                    "trend_levels_lower": (-10.0, -15.0),
                },
                "c",
                0.,
                0.,
                "my_test",
            ))

    assert isinstance(results[0], Result)
    assert results[0].state == state.CRIT
    assert results[
        0].summary == 'Temperature trend: +12.0°C per 2 min (warn/crit at +7.0°C per 2 min/+10.0°C per 2 min)'
Пример #10
0
def test_check_trend_warn_upper():
    with freezegun.freeze_time("1970-01-01 00:01:00"):
        results = list(
            temperature._check_trend(
                {"temp.my_test.delta": (0, 17.0)},
                23.0,
                {
                    "period": 2,
                    "trend_levels": (10.0, 15.0),
                    "trend_levels_lower": (-10.0, -15.0),
                },
                "c",
                0.0,
                0.0,
                "my_test",
            ))
    assert results == [
        Result(
            state=state.WARN,
            summary=
            "Temperature trend: +12.0°C per 2 min (warn/crit at +10.0°C per 2 min/+15.0°C per 2 min)",
        )
    ]
Пример #11
0
def test_check_trend_crit_lower():
    with freezegun.freeze_time("1970-01-01 00:01:00"):
        results = list(
            temperature._check_trend(
                {"temp.my_test.delta": (0, -17.0)},
                -23.0,
                {
                    "period": 2,
                    "trend_levels": (50.0, 55.0),
                    "trend_levels_lower": (-5.0, -10.0),
                },
                "c",
                0.0,
                0.0,
                "my_test",
            ))
    assert results == [
        Result(
            state=state.CRIT,
            summary=
            "Temperature trend: -12.0°C per 2 min (warn/crit below -5.0°C per 2 min/-10.0°C per 2 min)",
        )
    ]
Пример #12
0
def test_check_trend_time_period_ok():
    with freezegun.freeze_time("1970-01-01 00:01:00"):
        results = list(
            temperature._check_trend(
                {"temp.my_test.delta": (0, 5.0)},
                10.0,
                {
                    "period": 1,
                    "trend_levels": (50.0, 55.0),
                    "trend_levels_lower": (-50.0, -55.0),
                    "trend_timeleft": (5.0, 2.0),
                },
                "c",
                40.0,
                0.0,
                "my_test",
            ))
    assert results == [
        Result(state=state.OK, summary="Temperature trend: +5.0°C per 1 min"),
        Result(
            state=state.OK,
            summary="Time until temperature limit reached: 6 minutes 0 seconds"
        ),
    ]