PCQRSCANER/venv/Lib/site-packages/imapclient/test/test_fixed_offset.py

68 lines
2.4 KiB
Python
Raw Permalink Normal View History

2019-12-22 21:51:47 +01:00
# Copyright (c) 2014, Menno Smits
# Released subject to the New BSD License
# Please see http://en.wikipedia.org/wiki/BSD_licenses
from __future__ import unicode_literals
from datetime import timedelta
from mock import Mock, patch, DEFAULT
from imapclient.test.util import unittest
from imapclient.fixed_offset import FixedOffset
class TestFixedOffset(unittest.TestCase):
def _check(self, offset, expected_delta, expected_name):
self.assertEqual(offset.utcoffset(None), expected_delta)
self.assertEqual(offset.tzname(None), expected_name)
self.assertEqual(offset.dst(None), timedelta(0))
def test_GMT(self):
self._check(FixedOffset(0),
timedelta(0), '+0000')
def test_positive(self):
self._check(FixedOffset(30),
timedelta(minutes=30), '+0030')
self._check(FixedOffset(2 * 60),
timedelta(hours=2), '+0200')
self._check(FixedOffset(11 * 60 + 30),
timedelta(hours=11, minutes=30), '+1130')
def test_negative(self):
self._check(FixedOffset(-30),
timedelta(minutes=-30), '-0030')
self._check(FixedOffset(-2 * 60),
timedelta(hours=-2), '-0200')
self._check(FixedOffset(-11 * 60 - 30),
timedelta(minutes=(-11 * 60) - 30), '-1130')
@patch.multiple('imapclient.fixed_offset.time',
daylight=True, timezone=15 * 60 * 60, localtime=DEFAULT)
def test_for_system_DST_not_active(self, localtime):
localtime_mock = Mock()
localtime_mock.tm_isdst = False
localtime.return_value = localtime_mock
offset = FixedOffset.for_system()
self.assertEqual(offset.tzname(None), '-1500')
@patch.multiple('imapclient.fixed_offset.time',
daylight=True, altzone=15 * 60 * 60, localtime=DEFAULT)
def test_for_system_DST_active(self, localtime):
localtime_mock = Mock()
localtime_mock.tm_isdst = True
localtime.return_value = localtime_mock
offset = FixedOffset.for_system()
self.assertEqual(offset.tzname(None), '-1500')
@patch.multiple('imapclient.fixed_offset.time',
daylight=False, timezone=-15 * 60 * 60)
def test_for_system_no_DST(self):
offset = FixedOffset.for_system()
self.assertEqual(offset.tzname(None), '+1500')
if __name__ == '__main__':
unittest.main()