def test_filter_day_time():
    label_runner = LabelRunner(None, None, None, None)

    pod = Pod(name="test", namespace="test")
    pod.labels = {
        "seal/start-time": "10-00-00",
        "seal/end-time": "17-30-00",
        "seal/days": "mon,tue,wed,thu,fri,sat,sun"
    }

    for day in range(7):
        now = datetime.now()
        # check that it works for all the days of the week, as specified above
        now.replace(day=day + 1)
        # set the microseconds to 0, to pass the inclusive start
        now.replace(microsecond=0)
        test_cases = [(now.replace(hour=8, minute=0,
                                   second=0), False, "far too early"),
                      (now.replace(hour=9, minute=59,
                                   second=59), False, "just too early"),
                      (now.replace(hour=10, minute=0,
                                   second=0), True, "inclusive start"),
                      (now.replace(hour=13, minute=0,
                                   second=0), True, "within"),
                      (now.replace(hour=17, minute=30,
                                   second=0), False, "exclusive end"),
                      (now.replace(hour=17, minute=30,
                                   second=1), False, "just too late"),
                      (now.replace(hour=20, minute=0,
                                   second=0), False, "far too late")]

        for test_case in test_cases:
            assert (len(label_runner.filter_day_time(
                [pod], test_case[0])) == 1) == test_case[1]
def test_filter_day_time():
    label_runner = LabelRunner(None, None, None, None)

    pod = MagicMock
    pod.labels = {"seal/start-time": "10-00-00", "seal/end-time": "17-30-00"}

    now = datetime.now()
    test_cases = [
        (now.replace(hour=8, minute=0, second=0), False, "far too early"),
        (now.replace(hour=9, minute=59, second=59), False, "just too early"),
        (now.replace(hour=10, minute=0, second=0), True, "inclusive start"),
        (now.replace(hour=13, minute=0, second=0), True, "within"),
        (now.replace(hour=17, minute=30, second=0), False, "exclusive end"),
        (now.replace(hour=17, minute=30, second=1), False, "just too late"),
        (now.replace(hour=20, minute=0, second=0), False, "far too late")
    ]

    for test_case in test_cases:
        assert (len(label_runner.filter_day_time(
            [pod], test_case[0])) == 1) == test_case[1]