Пример #1
0
class TestStaticTzInfo(BaseTestCase):
    def setUp(self):
        super(TestStaticTzInfo, self).setUp()

    @parameterized.expand([
        param(given_date=datetime(2007, 1, 18, tzinfo=timezone('UTC'))),
        param(given_date=datetime(2003, 3, 31, tzinfo=timezone('US/Arizona'))),
        param(given_date=datetime(
            2000, 2, 20, tzinfo=timezone('Pacific/Samoa'))),
    ])
    def test_localize_raises_error_if_date_has_tzinfo(self, given_date):
        self.timezone_info = StaticTzInfo('UTC\\+00:00', timedelta(0))
        self.when_date_is_localized(given_date)
        self.then_error_was_raised(
            ValueError, ['Not naive datetime (tzinfo is already set)'])

    def when_date_is_localized(self, given_date):
        try:
            self.localized_date = self.timezone_info.localize(given_date)
        except Exception as error:
            self.error = error

    def then_localized_date_is(self, expected_date, expected_tzname):
        self.assertEqual(self.localized_date.date(), expected_date.date())
        self.assertEqual(self.localized_date.tzname(), expected_tzname)
Пример #2
0
def localize_timezone(date_time, tz_string):
    if date_time.tzinfo:
        return date_time

    tz = None

    try:
        tz = timezone(tz_string)
    except UnknownTimeZoneError as e:
        for name, info in _tz_offsets:
            if info['regex'].search(' %s' % tz_string):
                tz = StaticTzInfo(name, info['offset'])
                break
        else:
            raise e

    return tz.localize(date_time)
Пример #3
0
def localize_timezone(date_time, tz_string):
    if date_time.tzinfo:
        return date_time

    tz = None

    try:
        tz = timezone(tz_string)
    except UnknownTimeZoneError as e:
        for name, info in _tz_offsets:
            if info['regex'].search(' %s' % tz_string):
                tz = StaticTzInfo(name, info['offset'])
                break
        else:
            raise e

    return tz.localize(date_time)