~ubuntu-branches/debian/sid/python-django/sid

« back to all changes in this revision

Viewing changes to tests/utils_tests/test_timezone.py

  • Committer: Package Import Robot
  • Author(s): Luke Faraone
  • Date: 2013-11-07 15:33:49 UTC
  • mfrom: (1.3.12)
  • Revision ID: package-import@ubuntu.com-20131107153349-e31sc149l2szs3jb
Tags: 1.6-1
* New upstream version. Closes: #557474, #724637.
* python-django now also suggests the installation of ipython,
  bpython, python-django-doc, and libgdal1.
  Closes: #636511, #686333, #704203
* Set package maintainer to Debian Python Modules Team.
* Bump standards version to 3.9.5, no changes needed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
import copy
 
2
import datetime
 
3
import pickle
 
4
from django.test.utils import override_settings
 
5
from django.utils import six
 
6
from django.utils import timezone
 
7
from django.utils.tzinfo import FixedOffset
 
8
from django.utils import unittest
 
9
 
 
10
 
 
11
EAT = FixedOffset(180)      # Africa/Nairobi
 
12
ICT = FixedOffset(420)      # Asia/Bangkok
 
13
 
 
14
 
 
15
class TimezoneTests(unittest.TestCase):
 
16
 
 
17
    def test_localtime(self):
 
18
        now = datetime.datetime.utcnow().replace(tzinfo=timezone.utc)
 
19
        local_tz = timezone.LocalTimezone()
 
20
        local_now = timezone.localtime(now, local_tz)
 
21
        self.assertEqual(local_now.tzinfo, local_tz)
 
22
 
 
23
    def test_localtime_out_of_range(self):
 
24
        local_tz = timezone.LocalTimezone()
 
25
        long_ago = datetime.datetime(1900, 1, 1, tzinfo=timezone.utc)
 
26
        try:
 
27
            timezone.localtime(long_ago, local_tz)
 
28
        except (OverflowError, ValueError) as exc:
 
29
            self.assertIn("install pytz", exc.args[0])
 
30
        else:
 
31
            raise unittest.SkipTest("Failed to trigger an OverflowError or ValueError")
 
32
 
 
33
    def test_now(self):
 
34
        with override_settings(USE_TZ=True):
 
35
            self.assertTrue(timezone.is_aware(timezone.now()))
 
36
        with override_settings(USE_TZ=False):
 
37
            self.assertTrue(timezone.is_naive(timezone.now()))
 
38
 
 
39
    def test_override(self):
 
40
        default = timezone.get_default_timezone()
 
41
        try:
 
42
            timezone.activate(ICT)
 
43
 
 
44
            with timezone.override(EAT):
 
45
                self.assertIs(EAT, timezone.get_current_timezone())
 
46
            self.assertIs(ICT, timezone.get_current_timezone())
 
47
 
 
48
            with timezone.override(None):
 
49
                self.assertIs(default, timezone.get_current_timezone())
 
50
            self.assertIs(ICT, timezone.get_current_timezone())
 
51
 
 
52
            timezone.deactivate()
 
53
 
 
54
            with timezone.override(EAT):
 
55
                self.assertIs(EAT, timezone.get_current_timezone())
 
56
            self.assertIs(default, timezone.get_current_timezone())
 
57
 
 
58
            with timezone.override(None):
 
59
                self.assertIs(default, timezone.get_current_timezone())
 
60
            self.assertIs(default, timezone.get_current_timezone())
 
61
        finally:
 
62
            timezone.deactivate()
 
63
 
 
64
    def test_copy(self):
 
65
        self.assertIsInstance(copy.copy(timezone.UTC()), timezone.UTC)
 
66
        self.assertIsInstance(copy.copy(timezone.LocalTimezone()), timezone.LocalTimezone)
 
67
 
 
68
    def test_deepcopy(self):
 
69
        self.assertIsInstance(copy.deepcopy(timezone.UTC()), timezone.UTC)
 
70
        self.assertIsInstance(copy.deepcopy(timezone.LocalTimezone()), timezone.LocalTimezone)
 
71
 
 
72
    def test_pickling_unpickling(self):
 
73
        self.assertIsInstance(pickle.loads(pickle.dumps(timezone.UTC())), timezone.UTC)
 
74
        self.assertIsInstance(pickle.loads(pickle.dumps(timezone.LocalTimezone())), timezone.LocalTimezone)