~ubuntu-branches/ubuntu/quantal/python-django/quantal-security

« back to all changes in this revision

Viewing changes to tests/regressiontests/dateformat/tests.py

  • Committer: Bazaar Package Importer
  • Author(s): Chris Lamb
  • Date: 2010-05-21 07:52:55 UTC
  • mfrom: (1.3.6 upstream)
  • mto: This revision was merged to the branch mainline in revision 28.
  • Revision ID: james.westby@ubuntu.com-20100521075255-ii78v1dyfmyu3uzx
Tags: upstream-1.2
ImportĀ upstreamĀ versionĀ 1.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
r"""
2
 
>>> format(my_birthday, '')
3
 
u''
4
 
>>> format(my_birthday, 'a')
5
 
u'p.m.'
6
 
>>> format(my_birthday, 'A')
7
 
u'PM'
8
 
>>> format(my_birthday, 'd')
9
 
u'08'
10
 
>>> format(my_birthday, 'j')
11
 
u'8'
12
 
>>> format(my_birthday, 'l')
13
 
u'Sunday'
14
 
>>> format(my_birthday, 'L')
15
 
u'False'
16
 
>>> format(my_birthday, 'm')
17
 
u'07'
18
 
>>> format(my_birthday, 'M')
19
 
u'Jul'
20
 
>>> format(my_birthday, 'b')
21
 
u'jul'
22
 
>>> format(my_birthday, 'n')
23
 
u'7'
24
 
>>> format(my_birthday, 'N')
25
 
u'July'
26
 
>>> no_tz or format(my_birthday, 'O') == '+0100'
27
 
True
28
 
>>> format(my_birthday, 'P')
29
 
u'10 p.m.'
30
 
>>> no_tz or format(my_birthday, 'r') == 'Sun, 8 Jul 1979 22:00:00 +0100'
31
 
True
32
 
>>> format(my_birthday, 's')
33
 
u'00'
34
 
>>> format(my_birthday, 'S')
35
 
u'th'
36
 
>>> format(my_birthday, 't')
37
 
u'31'
38
 
>>> no_tz or format(my_birthday, 'T') == 'CET'
39
 
True
40
 
>>> no_tz or format(my_birthday, 'U') == '300315600'
41
 
True
42
 
>>> format(my_birthday, 'w')
43
 
u'0'
44
 
>>> format(my_birthday, 'W')
45
 
u'27'
46
 
>>> format(my_birthday, 'y')
47
 
u'79'
48
 
>>> format(my_birthday, 'Y')
49
 
u'1979'
50
 
>>> format(my_birthday, 'z')
51
 
u'189'
52
 
>>> no_tz or format(my_birthday, 'Z') == '3600'
53
 
True
54
 
 
55
 
>>> no_tz or format(summertime, 'I') == '1'
56
 
True
57
 
>>> no_tz or format(summertime, 'O') == '+0200'
58
 
True
59
 
>>> no_tz or format(wintertime, 'I') == '0'
60
 
True
61
 
>>> no_tz or format(wintertime, 'O') == '+0100'
62
 
True
63
 
 
64
 
>>> format(my_birthday, r'Y z \C\E\T')
65
 
u'1979 189 CET'
66
 
 
67
 
>>> format(my_birthday, r'jS o\f F')
68
 
u'8th of July'
69
 
 
70
 
>>> format(the_future, r'Y')
71
 
u'2100'
72
 
"""
73
1
 
74
2
from django.utils import dateformat, translation
 
3
from unittest import TestCase
75
4
import datetime, os, time
76
5
 
77
 
format = dateformat.format
78
 
os.environ['TZ'] = 'Europe/Copenhagen'
79
 
translation.activate('en-us')
80
 
 
81
 
try:
82
 
    time.tzset()
83
 
    no_tz = False
84
 
except AttributeError:
85
 
    no_tz = True
86
 
 
87
 
my_birthday = datetime.datetime(1979, 7, 8, 22, 00)
88
 
summertime = datetime.datetime(2005, 10, 30, 1, 00)
89
 
wintertime = datetime.datetime(2005, 10, 30, 4, 00)
90
 
the_future = datetime.datetime(2100, 10, 25, 0, 00)
 
6
class DateFormatTests(TestCase):
 
7
    def setUp(self):
 
8
        self.old_TZ = os.environ.get('TZ')
 
9
        os.environ['TZ'] = 'Europe/Copenhagen'
 
10
        translation.activate('en-us')
 
11
 
 
12
        try:
 
13
            # Check if a timezone has been set
 
14
            time.tzset()
 
15
            self.tz_tests = True
 
16
        except AttributeError:
 
17
            # No timezone available. Don't run the tests that require a TZ
 
18
            self.tz_tests = False
 
19
 
 
20
    def tearDown(self):
 
21
        if self.old_TZ is None:
 
22
            del os.environ['TZ']
 
23
        else:
 
24
            os.environ['TZ'] = self.old_TZ
 
25
 
 
26
        # Cleanup - force re-evaluation of TZ environment variable.
 
27
        if self.tz_tests:
 
28
            time.tzset()
 
29
 
 
30
    def test_empty_format(self):
 
31
        my_birthday = datetime.datetime(1979, 7, 8, 22, 00)
 
32
 
 
33
        self.assertEquals(dateformat.format(my_birthday, ''), u'')
 
34
 
 
35
    def test_am_pm(self):
 
36
        my_birthday = datetime.datetime(1979, 7, 8, 22, 00)
 
37
 
 
38
        self.assertEquals(dateformat.format(my_birthday, 'a'), u'p.m.')
 
39
 
 
40
    def test_date_formats(self):
 
41
        my_birthday = datetime.datetime(1979, 7, 8, 22, 00)
 
42
        timestamp = datetime.datetime(2008, 5, 19, 11, 45, 23, 123456)
 
43
 
 
44
        self.assertEquals(dateformat.format(my_birthday, 'A'), u'PM')
 
45
        self.assertEquals(dateformat.format(timestamp, 'c'), u'2008-05-19T11:45:23.123456')
 
46
        self.assertEquals(dateformat.format(my_birthday, 'd'), u'08')
 
47
        self.assertEquals(dateformat.format(my_birthday, 'j'), u'8')
 
48
        self.assertEquals(dateformat.format(my_birthday, 'l'), u'Sunday')
 
49
        self.assertEquals(dateformat.format(my_birthday, 'L'), u'False')
 
50
        self.assertEquals(dateformat.format(my_birthday, 'm'), u'07')
 
51
        self.assertEquals(dateformat.format(my_birthday, 'M'), u'Jul')
 
52
        self.assertEquals(dateformat.format(my_birthday, 'b'), u'jul')
 
53
        self.assertEquals(dateformat.format(my_birthday, 'n'), u'7')
 
54
        self.assertEquals(dateformat.format(my_birthday, 'N'), u'July')
 
55
 
 
56
    def test_time_formats(self):
 
57
        my_birthday = datetime.datetime(1979, 7, 8, 22, 00)
 
58
 
 
59
        self.assertEquals(dateformat.format(my_birthday, 'P'), u'10 p.m.')
 
60
        self.assertEquals(dateformat.format(my_birthday, 's'), u'00')
 
61
        self.assertEquals(dateformat.format(my_birthday, 'S'), u'th')
 
62
        self.assertEquals(dateformat.format(my_birthday, 't'), u'31')
 
63
        self.assertEquals(dateformat.format(my_birthday, 'w'), u'0')
 
64
        self.assertEquals(dateformat.format(my_birthday, 'W'), u'27')
 
65
        self.assertEquals(dateformat.format(my_birthday, 'y'), u'79')
 
66
        self.assertEquals(dateformat.format(my_birthday, 'Y'), u'1979')
 
67
        self.assertEquals(dateformat.format(my_birthday, 'z'), u'189')
 
68
 
 
69
    def test_dateformat(self):
 
70
        my_birthday = datetime.datetime(1979, 7, 8, 22, 00)
 
71
 
 
72
        self.assertEquals(dateformat.format(my_birthday, r'Y z \C\E\T'), u'1979 189 CET')
 
73
 
 
74
        self.assertEquals(dateformat.format(my_birthday, r'jS o\f F'), u'8th of July')
 
75
 
 
76
    def test_futuredates(self):
 
77
        the_future = datetime.datetime(2100, 10, 25, 0, 00)
 
78
        self.assertEquals(dateformat.format(the_future, r'Y'), u'2100')
 
79
 
 
80
    def test_timezones(self):
 
81
        my_birthday = datetime.datetime(1979, 7, 8, 22, 00)
 
82
        summertime = datetime.datetime(2005, 10, 30, 1, 00)
 
83
        wintertime = datetime.datetime(2005, 10, 30, 4, 00)
 
84
        timestamp = datetime.datetime(2008, 5, 19, 11, 45, 23, 123456)
 
85
 
 
86
        if self.tz_tests:
 
87
            self.assertEquals(dateformat.format(my_birthday, 'O'), u'+0100')
 
88
            self.assertEquals(dateformat.format(my_birthday, 'r'), u'Sun, 8 Jul 1979 22:00:00 +0100')
 
89
            self.assertEquals(dateformat.format(my_birthday, 'T'), u'CET')
 
90
            self.assertEquals(dateformat.format(my_birthday, 'U'), u'300315600')
 
91
            self.assertEquals(dateformat.format(timestamp, 'u'), u'123456')
 
92
            self.assertEquals(dateformat.format(my_birthday, 'Z'), u'3600')
 
93
            self.assertEquals(dateformat.format(summertime, 'I'), u'1')
 
94
            self.assertEquals(dateformat.format(summertime, 'O'), u'+0200')
 
95
            self.assertEquals(dateformat.format(wintertime, 'I'), u'0')
 
96
            self.assertEquals(dateformat.format(wintertime, 'O'), u'+0100')