def test_onhour(self):
     t = datetime.datetime(year=2015, month=12, day=1, hour=7, minute=5,
                           tzinfo=zoneinfo.gettz('America/New_York'))
     with mock_datetime_now(t, datetime):
         i = instance(Tags=[
             {'Key': 'maid_offhours', 'Value': 'tz=est'}])
         self.assertEqual(OnHour({})(i), True)
         self.assertEqual(OnHour({'onhour': 8})(i), False)
    def test_custom_bad_tz(self):
        t = datetime.datetime.now(zoneinfo.gettz('America/New_York'))
        t = t.replace(year=2016, month=5, day=26, hour=7, minute=00)
        with mock_datetime_now(t, datetime):
            i = instance(Tags=[{'Key': 'maid_offhours',
                                'Value': 'off=(m-f,19);on=(m-f,7);tz=et'}])
            self.assertEqual(OnHour({})(i), True)

            i = instance(Tags=[{'Key': 'maid_offhours',
                                'Value': 'off=(m-f,20);on=(m-f,7);tz=abc'}])
            self.assertEqual(OnHour({})(i), False)
Пример #3
0
 def test_tz_long_form_resolve(self):
     pacific = zoneinfo.gettz("America/Los_Angeles")
     nzt = zoneinfo.gettz("Pacific/Auckland")
     gmt = zoneinfo.gettz("Etc/GMT")
     easter_island = zoneinfo.gettz("Chile/EasterIsland")
     self.assertEqual(OnHour({}).get_tz('america/los_angeles'), pacific)
     self.assertEqual(OnHour({}).get_tz('pst'), pacific)
     self.assertEqual(OnHour({}).get_tz('pacific/auckland'), nzt)
     self.assertEqual(OnHour({}).get_tz('gmt'), gmt)
     self.assertEqual(
         OnHour({}).get_tz('chile/easterisland'), easter_island)
Пример #4
0
 def test_onhour(self):
     t = datetime.datetime(
         year=2015,
         month=12,
         day=1,
         hour=7,
         minute=5,
         tzinfo=zoneinfo.gettz("America/New_York"),
     )
     with mock_datetime_now(t, datetime):
         i = instance(Tags=[{"Key": "maid_offhours", "Value": "tz=est"}])
         self.assertEqual(OnHour({})(i), True)
         self.assertEqual(OnHour({"onhour": 8})(i), False)
Пример #5
0
    def test_arizona_tz(self):
        t = datetime.datetime.now(zoneinfo.gettz("America/New_York"))
        t = t.replace(year=2016, month=5, day=26, hour=7, minute=00)
        with mock_datetime_now(t, datetime):
            i = instance(Tags=[{
                "Key": "maid_offhours",
                "Value": "off=(m-f,19);on=(m-f,7);tz=at"
            }])
            self.assertEqual(OnHour({})(i), True)

            i = instance(Tags=[{
                "Key": "maid_offhours",
                "Value": "off=(m-f,20);on=(m-f,6);tz=ast"
            }])
            self.assertEqual(OnHour({})(i), False)
 def test_tz_only(self):
     t = datetime.datetime.now(zoneinfo.gettz('America/New_York'))
     t = t.replace(year=2016, month=5, day=26, hour=7, minute=00)
     with mock_datetime_now(t, datetime):
         i = instance(Tags=[{'Key': 'maid_offhours',
                             'Value': 'tz=est'}])
         self.assertEqual(OnHour({})(i), True)
Пример #7
0
    def test_opt_in_behavior(self):
        # Given the addition of opt out behavior, verify if its
        # not configured that we don't touch an instance that
        # has no downtime tag
        i = instance(Tags=[])
        i2 = instance(Tags=[{'Key': 'maid_offhours', 'Value': ''}])
        i3 = instance(Tags=[{'Key': 'maid_offhours', 'Value': 'on'}])

        t = datetime.datetime(
            year=2015, month=12, day=1, hour=19, minute=5,
            tzinfo=zoneinfo.gettz('America/New_York'))
        f = OffHour({})

        with mock_datetime_now(t, datetime):
            self.assertEqual(f(i), False)
            self.assertEqual(f(i2), True)
            self.assertEqual(f(i3), True)

        t = datetime.datetime(
            year=2015, month=12, day=1, hour=7, minute=5,
            tzinfo=zoneinfo.gettz('America/New_York'))
        f = OnHour({})

        with mock_datetime_now(t, datetime):
            self.assertEqual(f(i), False)
            self.assertEqual(f(i2), True)
            self.assertEqual(f(i3), True)
Пример #8
0
    def test_custom_onhours(self):
        t = datetime.datetime.now(tzutil.gettz("America/New_York"))
        t = t.replace(year=2016, month=5, day=26, hour=7, minute=00)
        results = []

        with mock_datetime_now(t, datetime):
            for i in [
                instance(
                    Tags=[
                        {
                            "Key": "maid_offhours",
                            "Value": "off=(m-f,19);on=(m-f,7);tz=et",
                        }
                    ]
                ),
                instance(
                    Tags=[
                        {
                            "Key": "maid_offhours",
                            "Value": "off=(m-f,20);on=(m-f,9);tz=et",
                        }
                    ]
                ),
            ]:
                results.append(OnHour({})(i))
            self.assertEqual(results, [True, False])
    def test_custom_onhours(self):
        t = datetime.datetime.now(zoneinfo.gettz('America/New_York'))
        t = t.replace(year=2016, month=5, day=26, hour=7, minute=00)
        results = []

        with mock_datetime_now(t, datetime):
            for i in [instance(Tags=[{'Key': 'maid_offhours',
                                'Value': 'off=(m-f,19);on=(m-f,7);tz=et'}]),
                      instance(Tags=[{'Key': 'maid_offhours',
                                'Value': 'off=(m-f,20);on=(m-f,9);tz=et'}])]:
                results.append(OnHour({})(i))
            self.assertEqual(results, [True, False])
Пример #10
0
 def test_everyday_onhour(self):
     # weekends on means we match times on the weekend
     start_day = 14  # sunday
     t = datetime.datetime(year=2016, day=start_day, month=8, hour=7, minute=20)
     i = instance(Tags=[{"Key": "maid_offhours", "Value": "tz=est"}])
     f = OnHour({"weekends": False})
     results = []
     with mock_datetime_now(t, datetime) as dt:
         for n in range(7):
             dt.target = t.replace(day=start_day + n)
             results.append(f(i))
     self.assertEqual(results, [True] * 7)
Пример #11
0
 def test_weekends_only_offhour_support(self):
     # start day is a sunday, weekend only means we only stop
     # on friday evening.
     start_day = 14
     t = datetime.datetime(year=2016, day=start_day, month=8, hour=7, minute=20)
     i = instance(Tags=[{"Key": "maid_offhours", "Value": "tz=est"}])
     f = OnHour({"weekends-only": True})
     results = []
     with mock_datetime_now(t, datetime) as dt:
         for n in range(7):
             dt.target = t.replace(day=start_day + n)
             results.append(f(i))
     self.assertEqual(results, [False, True, False, False, False, False, False])
Пример #12
0
    def xtest_time_match_stops_after_skew(self):
        hour = 7
        t = datetime.datetime(
            year=2015, month=12, day=1, hour=hour, minute=5,
            tzinfo=zoneinfo.gettz('America/New_York'))
        i = instance(Tags=[
            {'Key': 'maid_offhours', 'Value': 'tz=est'}])
        f = OnHour({'skew': 1})
        results = []

        with mock_datetime_now(t, datetime) as dt:
            for n in range(0, 4):
                dt.target = t.replace(hour=hour + n)
                results.append(f(i))
        self.assertEqual(results, [True, True, False, False])
Пример #13
0
    def xtest_time_match_stops_after_skew(self):
        hour = 7
        t = datetime.datetime(
            year=2015,
            month=12,
            day=1,
            hour=hour,
            minute=5,
            tzinfo=tzutil.gettz("America/New_York"),
        )
        i = instance(Tags=[{"Key": "maid_offhours", "Value": "tz=est"}])
        f = OnHour({"skew": 1})
        results = []

        with mock_datetime_now(t, datetime) as dt:
            for n in range(0, 4):
                dt.target = t.replace(hour=hour + n)
                results.append(f(i))
        self.assertEqual(results, [True, True, False, False])
Пример #14
0
 def test_on_tag(self):
     t = datetime.datetime.now(zoneinfo.gettz("America/New_York"))
     t = t.replace(year=2016, month=5, day=26, hour=7, minute=00)
     with mock_datetime_now(t, datetime):
         i = instance(Tags=[{"Key": "maid_offhours", "Value": "on"}])
         self.assertEqual(OnHour({})(i), True)
Пример #15
0
 def test_tz_long_form_resolve(self):
     pacific = zoneinfo.gettz("America/Los_Angeles")
     nzt = zoneinfo.gettz("Pacific/Auckland")
     self.assertEqual(OnHour({}).get_tz('america/los_angeles'), pacific)
     self.assertEqual(OnHour({}).get_tz('pacific/auckland'), nzt)