Esempio n. 1
0
    def test_now(self):
        timezone_setting_value = 'US/Eastern'
        tz_utc = timezone.get_timezone('UTC')
        tz_us_eastern = timezone.get_timezone(timezone_setting_value)

        now = to_utc(datetime.utcnow())
        app_now = self.app.now()

        assert app_now.tzinfo is tz_utc
        assert app_now - now <= timedelta(seconds=1)

        # Check that timezone conversion is applied from configuration
        self.app.conf.enable_utc = False
        self.app.conf.timezone = timezone_setting_value
        # timezone is a cached property
        del self.app.timezone

        app_now = self.app.now()

        assert app_now.tzinfo.zone == tz_us_eastern.zone

        diff = to_utc(datetime.utcnow()) - localize(app_now, tz_utc)
        assert diff <= timedelta(seconds=1)

        # Verify that timezone setting overrides enable_utc=on setting
        self.app.conf.enable_utc = True
        del self.app.timezone
        app_now = self.app.now()
        assert self.app.timezone == tz_us_eastern
        assert app_now.tzinfo.zone == tz_us_eastern.zone
Esempio n. 2
0
    def test_now(self):
        timezone_setting_value = 'US/Eastern'
        tz_utc = timezone.get_timezone('UTC')
        tz_us_eastern = timezone.get_timezone(timezone_setting_value)

        now = to_utc(datetime.utcnow())
        app_now = self.app.now()

        assert app_now.tzinfo is tz_utc
        assert app_now - now <= timedelta(seconds=1)

        # Check that timezone conversion is applied from configuration
        self.app.conf.enable_utc = False
        self.app.conf.timezone = timezone_setting_value
        # timezone is a cached property
        del self.app.timezone

        app_now = self.app.now()

        assert app_now.tzinfo.zone == tz_us_eastern.zone

        diff = to_utc(datetime.utcnow()) - localize(app_now, tz_utc)
        assert diff <= timedelta(seconds=1)

        # Verify that timezone setting overrides enable_utc=on setting
        self.app.conf.enable_utc = True
        del self.app.timezone
        app_now = self.app.now()
        assert self.app.timezone == tz_us_eastern
        assert app_now.tzinfo.zone == tz_us_eastern.zone
Esempio n. 3
0
    def timezone(self):
        """Current timezone for this app.

        This is a cached property taking the time zone from the
        :setting:`timezone` setting.
        """
        conf = self.conf
        tz = conf.timezone
        if not tz:
            return (timezone.get_timezone('UTC') if conf.enable_utc
                    else timezone.local)
        return timezone.get_timezone(conf.timezone)
Esempio n. 4
0
    def timezone(self):
        """Current timezone for this app.

        This is a cached property taking the time zone from the
        :setting:`timezone` setting.
        """
        conf = self.conf
        tz = conf.timezone or 'UTC'
        if not tz:
            if conf.enable_utc:
                return timezone.get_timezone('UTC')
            else:
                if not conf.timezone:
                    return timezone.local
        return timezone.get_timezone(tz)
Esempio n. 5
0
    def timezone(self):
        """Current timezone for this app.

        This is a cached property taking the time zone from the
        :setting:`timezone` setting.
        """
        conf = self.conf
        tz = conf.timezone or 'UTC'
        if not tz:
            if conf.enable_utc:
                return timezone.get_timezone('UTC')
            else:
                if not conf.timezone:
                    return timezone.local
        return timezone.get_timezone(tz)
Esempio n. 6
0
    def test_rrule_timezone(self):
        tz = timezone.get_timezone('US/Eastern')

        start1 = datetime(2015, 12, 30, 12, 59, 22, tzinfo=timezone.utc)
        start2 = start1.astimezone(tz)

        r1 = rrule('MINUTELY', dtstart=start1, count=1)
        r2 = rrule('MINUTELY', dtstart=start2, count=1)

        r1_json = self.dumps(r1)
        r2_json = self.dumps(r2)

        r1_parsed = self.loads(r1_json)
        self.assertEqual(r1_parsed.dtstart.utcoffset(), r1.dtstart.utcoffset())

        r2_parsed = self.loads(r2_json)
        self.assertEqual(r2_parsed.dtstart.utcoffset(), r2.dtstart.utcoffset())

        self.assertEqual(r1_parsed.dtstart, r2_parsed.dtstart)
        self.assertNotEqual(r1_parsed.dtstart.utcoffset(), r2_parsed.dtstart.utcoffset())
Esempio n. 7
0
    def dict_to_object(self, d):
        if '__type__' not in d:
            return d

        objtype = d.pop('__type__')

        if objtype == 'datetime':
            zone = d.pop('timezone', 'UTC')
            try:
                tzinfo = FixedOffset(zone / 60)
            except TypeError:
                tzinfo = timezone.get_timezone(zone)
            return datetime(tzinfo=tzinfo, **d)

        if objtype == 'interval':
            return schedule(run_every=d['every'], relative=d['relative'])

        if objtype == 'crontab':
            return crontab(**d)

        if objtype == 'weekday':
            return weekday(**d)

        if objtype == 'rrule':
            # Decode timestamp values into datetime objects
            for key, tz_key in [('dtstart', 'dtstart_tz'),
                                ('until', 'until_tz')]:
                timestamp = d.get(key)
                tz_minutes = d.pop(tz_key, 0)
                if timestamp is not None:
                    d[key] = from_timestamp(timestamp, tz_minutes)
            return rrule(**d)

        d['__type__'] = objtype

        return d
Esempio n. 8
0
 def test_timezone__none_set(self):
     self.app.conf.timezone = None
     tz = self.app.timezone
     assert tz == timezone.get_timezone('UTC')
Esempio n. 9
0
 def test_timezone__none_set(self):
     self.app.conf.timezone = None
     tz = self.app.timezone
     self.assertEqual(tz, timezone.get_timezone('UTC'))
Esempio n. 10
0
 def test_get_timezone_with_pytz(self):
     assert timezone.get_timezone('UTC')
Esempio n. 11
0
 def test_get_timezone_with_pytz(self):
     assert timezone.get_timezone('UTC')
Esempio n. 12
0
 def test_datetime_with_timezone(self):
     d = self.datetime_as_dict(__type__='datetime', timezone='Asia/Shanghai')
     result = self.loads(json.dumps(d))
     d.pop('__type__')
     d.pop('timezone')
     self.assertEqual(result, datetime(tzinfo=timezone.get_timezone('Asia/Shanghai'), **d))
Esempio n. 13
0
    def test_datetime_with_tz(self):
        dt = self.now(tzinfo=timezone.get_timezone('Asia/Shanghai'))
        result = self.dumps(dt)

        expected = self.datetime_as_dict(timezone='Asia/Shanghai', __type__='datetime')
        self.assertEqual(json.loads(result), expected)
Esempio n. 14
0
 def test_timezone__none_set(self):
     self.app.conf.timezone = None
     tz = self.app.timezone
     assert tz == timezone.get_timezone('UTC')
Esempio n. 15
0
 def test_get_timezone_with_pytz(self):
     self.assertTrue(timezone.get_timezone('UTC'))