root/imapclient/test/test_fixed_offset.py

Revision 304:239f24fbd17c, 1.8 KB (checked in by Menno Smits <menno@…>, 2 weeks ago)

updated copyright date to 2012

Line 
1# Copyright (c) 2012, Menno Smits
2# Released subject to the New BSD License
3# Please see http://en.wikipedia.org/wiki/BSD_licenses
4
5from datetime import timedelta
6from imapclient.test.util import unittest
7from imapclient.fixed_offset import FixedOffset
8from imapclient.test.mock import patch
9
10class TestFixedOffset(unittest.TestCase):
11
12    def _check(self, offset, expected_delta, expected_name):
13        self.assert_(offset.utcoffset(None) == expected_delta)
14        self.assert_(offset.tzname(None) == expected_name)
15        self.assert_(offset.dst(None) == timedelta(0))
16
17    def test_GMT(self):
18        self._check(FixedOffset(0),
19                    timedelta(0), '+0000')
20
21    def test_positive(self):
22        self._check(FixedOffset(30),
23                    timedelta(minutes=30), '+0030')
24        self._check(FixedOffset(2 * 60),
25                    timedelta(hours=2), '+0200')
26        self._check(FixedOffset(11*60 + 30),
27                    timedelta(hours=11, minutes=30), '+1130')
28
29    def test_negative(self):
30        self._check(FixedOffset(-30),
31                    timedelta(minutes=-30), '-0030')
32        self._check(FixedOffset(-2 * 60),
33                    timedelta(hours=-2), '-0200')
34        self._check(FixedOffset(-11*60 - 30),
35                    timedelta(minutes=(-11*60) - 30), '-1130')
36
37    @patch('imapclient.fixed_offset.time.daylight', True)
38    @patch('imapclient.fixed_offset.time.altzone', 15*60*60)
39    def test_for_system_DST(self):
40        offset = FixedOffset.for_system()
41        self.assert_(offset.tzname(None) == '-1500')
42
43    @patch('imapclient.fixed_offset.time.daylight', False)
44    @patch('imapclient.fixed_offset.time.timezone', -15*60*60)
45    def test_for_system_no_DST(self):
46        offset = FixedOffset.for_system()
47        self.assert_(offset.tzname(None) == '+1500')
48
49if __name__ == '__main__':
50    unittest.main()
Note: See TracBrowser for help on using the browser.