Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(71)

Side by Side Diff: infra_libs/time_functions/test/testing_test.py

Issue 2213143002: Add infra_libs as a bootstrap dependency. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Removed the ugly import hack Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 # Copyright 2015 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 import datetime
6 import mock
7 import pytz
8 import unittest
9
10 from infra_libs.time_functions.testing import mock_datetime_utc, mock_timezone
11
12 original_datetime = datetime.datetime
13
14 class TestFreezeTime(unittest.TestCase):
15 @mock_datetime_utc(2015, 11, 24, 7, 18, 23)
16 @mock_timezone('US/Pacific')
17 def test_mocks_datetime_and_timezone(self):
18 self.assertEqual(datetime.datetime.utcnow(),
19 datetime.datetime(2015, 11, 24, 7, 18, 23))
20 self.assertEqual(datetime.datetime.now(),
21 datetime.datetime(2015, 11, 23, 23, 18, 23))
22 self.assertEqual(datetime.datetime.now(tz=pytz.timezone('Europe/Berlin')),
23 datetime.datetime(2015, 11, 24, 8, 18, 23))
24 self.assertEqual(datetime.datetime.today(), datetime.date(2015, 11, 23))
25 self.assertEqual(datetime.date.today(), datetime.date(2015, 11, 23))
26 self.assertEqual(datetime.datetime.fromtimestamp(0),
27 datetime.datetime(1969, 12, 31, 16, 0, 0))
28 self.assertEqual(
29 datetime.datetime.fromtimestamp(0, tz=pytz.timezone('Europe/Berlin')),
30 datetime.datetime(1970, 1, 1, 1, 0, 0))
31 self.assertEqual(datetime.date.fromtimestamp(0),
32 datetime.date(1969, 12, 31))
33
34 # Try accessing standard class attributes and methods.
35 self.assertEqual(datetime.datetime.min, original_datetime.min)
36 self.assertEqual(datetime.datetime.utcfromtimestamp(0),
37 datetime.datetime(1970, 1, 1, 0, 0, 0))
38
39 # Check that creating normal datetimes and working with them works.
40 dt = datetime.datetime(2015, 10, 1, 1, 1, 1)
41 dt += datetime.timedelta(hours=2)
42 self.assertEqual(dt, datetime.datetime(2015, 10, 1, 3, 1, 1))
43 d = datetime.date(2015, 10, 1)
44 d += datetime.timedelta(days=5)
45 self.assertEqual(d, datetime.date(2015, 10, 6))
46
47 # Check that isinstance method works as expected.
48 dt = datetime.datetime.utcnow() # dt is _MockDateTime
49 self.assertTrue(isinstance(dt, datetime.datetime))
50 dt += datetime.timedelta(hours=1) # dt is vanilla datatime.datetime
51 self.assertTrue(isinstance(dt, datetime.datetime))
52 d = datetime.datetime.today() # d is _MockDate
53 self.assertTrue(isinstance(d, datetime.date))
54 d += datetime.timedelta(days=1) # d is vanilla datatime.date
55 self.assertTrue(isinstance(d, datetime.date))
56
57
58 @mock_datetime_utc(2015, 11, 24, 7, 0, 0)
59 def test_nested_mock_works(self):
60 self.assertEqual(datetime.datetime.utcnow().hour, 7)
61
62 @mock_datetime_utc(2015, 11, 24, 10, 0, 0)
63 def nested_func():
64 self.assertEqual(datetime.datetime.utcnow().hour, 10)
65 nested_func()
66
67 self.assertEqual(datetime.datetime.utcnow().hour, 7)
68
69 @mock_datetime_utc(2015, 11, 24, 9, 10, 15)
70 @mock_timezone('US/Pacific')
71 def test_winter_time_is_computed_correctly(self):
72 self.assertEqual(datetime.datetime.now(),
73 datetime.datetime(2015, 11, 24, 1, 10, 15))
74
75 @mock_datetime_utc(2015, 8, 24, 9, 10, 15)
76 @mock_timezone('US/Pacific')
77 def test_summer_time_is_computed_correctly(self):
78 self.assertEqual(datetime.datetime.now(),
79 datetime.datetime(2015, 8, 24, 2, 10, 15))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698