Codebase list freezegun / 26e9b8d
Update upstream source from tag 'upstream/1.0.0' Update to upstream version '1.0.0' with Debian dir 1675e992f9ab869dbc503fa54f54e984d3bfcc62 Federico Ceratto 3 years ago
16 changed file(s) with 118 addition(s) and 74 deletion(s). Raw diff Collapse all Expand all
1414 - `Alex Ehlke <https://github.com/aehlke>`_
1515 - `James Lu <github.com/CrazyPython>`_
1616 - `Dan Elkis <github.com/rinslow>`_
17 - `Bastien Vallet <github.com/djailla>`_
22
33 Latest
44 ------
5
6 1.0.0
7 ------
8
9 * Dropped Py2 support
10 * Added as_kwarg argument in order to have the frozen time object passed with the name provided in as_kwarg argument
511
612 0.3.15
713 ------
00 Metadata-Version: 1.2
11 Name: freezegun
2 Version: 0.3.15
2 Version: 1.0.0
33 Summary: Let your Python tests travel through time
44 Home-page: https://github.com/spulec/freezegun
55 Author: Steve Pulec
5050 def test_the_class(self):
5151 assert datetime.datetime.now() == datetime.datetime(2012, 1, 14)
5252
53 # Or method decorator, might also pass frozen time object as kwarg
54
55 class TestUnitTestMethodDecorator(unittest.TestCase):
56 @freeze_time('2013-04-09')
57 def test_method_decorator_works_on_unittest(self):
58 self.assertEqual(datetime.date(2013, 4, 9), datetime.date.today())
59
60 @freeze_time('2013-04-09', as_kwarg='frozen_time')
61 def test_method_decorator_works_on_unittest(self, frozen_time):
62 self.assertEqual(datetime.date(2013, 4, 9), datetime.date.today())
63 self.assertEqual(datetime.date(2013, 4, 9), frozen_time.time_to_freeze.today())
64
65 @freeze_time('2013-04-09', as_kwarg='hello')
66 def test_method_decorator_works_on_unittest(self, **kwargs):
67 self.assertEqual(datetime.date(2013, 4, 9), datetime.date.today())
68 self.assertEqual(datetime.date(2013, 4, 9), kwargs.get('hello').time_to_freeze.today())
69
5370 Context manager
5471 ~~~~~~~~~~~~~~~
5572
244261
245262 Platform: UNKNOWN
246263 Classifier: License :: OSI Approved :: Apache Software License
247 Classifier: Programming Language :: Python :: 2
248 Classifier: Programming Language :: Python :: 2.7
249264 Classifier: Programming Language :: Python :: 3
250265 Classifier: Programming Language :: Python :: 3.5
251266 Classifier: Programming Language :: Python :: 3.6
253268 Classifier: Programming Language :: Python :: 3.8
254269 Classifier: Programming Language :: Python :: Implementation :: CPython
255270 Classifier: Programming Language :: Python :: Implementation :: PyPy
256 Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*
271 Requires-Python: >=3.5
4242 def test_the_class(self):
4343 assert datetime.datetime.now() == datetime.datetime(2012, 1, 14)
4444
45 # Or method decorator, might also pass frozen time object as kwarg
46
47 class TestUnitTestMethodDecorator(unittest.TestCase):
48 @freeze_time('2013-04-09')
49 def test_method_decorator_works_on_unittest(self):
50 self.assertEqual(datetime.date(2013, 4, 9), datetime.date.today())
51
52 @freeze_time('2013-04-09', as_kwarg='frozen_time')
53 def test_method_decorator_works_on_unittest(self, frozen_time):
54 self.assertEqual(datetime.date(2013, 4, 9), datetime.date.today())
55 self.assertEqual(datetime.date(2013, 4, 9), frozen_time.time_to_freeze.today())
56
57 @freeze_time('2013-04-09', as_kwarg='hello')
58 def test_method_decorator_works_on_unittest(self, **kwargs):
59 self.assertEqual(datetime.date(2013, 4, 9), datetime.date.today())
60 self.assertEqual(datetime.date(2013, 4, 9), kwargs.get('hello').time_to_freeze.today())
61
4562 Context manager
4663 ~~~~~~~~~~~~~~~
4764
88 from .api import freeze_time
99
1010 __title__ = 'freezegun'
11 __version__ = '0.3.15'
11 __version__ = '1.0.0'
1212 __author__ = 'Steve Pulec'
1313 __license__ = 'Apache License 2.0'
1414 __copyright__ = 'Copyright 2012 Steve Pulec'
00 import functools
1
2 import asyncio
31
42
53 def wrap_coroutine(api, coroutine):
512512
513513 class _freeze_time(object):
514514
515
516 def __init__(self, time_to_freeze_str, tz_offset, ignore, tick, as_arg, auto_tick_seconds):
515 def __init__(self, time_to_freeze_str, tz_offset, ignore, tick, as_arg, as_kwarg, auto_tick_seconds):
517516 self.time_to_freeze = _parse_time_to_freeze(time_to_freeze_str)
518517 self.tz_offset = _parse_tz_offset(tz_offset)
519518 self.ignore = tuple(ignore)
522521 self.undo_changes = []
523522 self.modules_at_start = set()
524523 self.as_arg = as_arg
524 self.as_kwarg = as_kwarg
525525
526526 def __call__(self, func):
527527 if inspect.isclass(func):
692692 continue
693693 elif mod_name.startswith(self.ignore) or mod_name.endswith('.six.moves'):
694694 continue
695 elif (not hasattr(module, "__name__") or module.__name__ in ('datetime', 'time')):
695 elif not hasattr(module, "__name__") or module.__name__ in ('datetime', 'time'):
696696 continue
697697 for module_attribute in dir(module):
698698
728728 def decorate_callable(self, func):
729729 def wrapper(*args, **kwargs):
730730 with self as time_factory:
731 if self.as_arg:
731 if self.as_arg and self.as_kwarg:
732 assert False, "You can't specify both as_arg and as_kwarg at the same time. Pick one."
733 elif self.as_arg:
732734 result = func(time_factory, *args, **kwargs)
735 elif self.as_kwarg:
736 kwargs[self.as_kwarg] = time_factory
737 result = func(*args, **kwargs)
733738 else:
734739 result = func(*args, **kwargs)
735740 return result
742747 return wrapper
743748
744749
745 def freeze_time(time_to_freeze=None, tz_offset=0, ignore=None, tick=False, as_arg=False, auto_tick_seconds=0):
750 def freeze_time(time_to_freeze=None, tz_offset=0, ignore=None, tick=False, as_arg=False, as_kwarg='',
751 auto_tick_seconds=0):
746752 acceptable_times = (type(None), _string_type, datetime.date, datetime.timedelta,
747753 types.FunctionType, types.GeneratorType)
748754
769775 if ignore is None:
770776 ignore = []
771777 ignore = ignore[:]
772 ignore.append('nose.plugins')
773 ignore.append('six.moves')
774 ignore.append('django.utils.six.moves')
775 ignore.append('google.gax')
776 ignore.append('threading')
777 ignore.append('Queue')
778 ignore.append('selenium')
779 ignore.append('_pytest.terminal.')
780 ignore.append('_pytest.runner.')
781
782 return _freeze_time(time_to_freeze, tz_offset, ignore, tick, as_arg, auto_tick_seconds)
778 ignore.extend(['nose.plugins',
779 'six.moves',
780 'django.utils.six.moves',
781 'google.gax',
782 'threading',
783 'Queue',
784 'selenium',
785 '_pytest.terminal.',
786 '_pytest.runner.',
787 'gi',
788 ])
789
790 return _freeze_time(time_to_freeze, tz_offset, ignore, tick, as_arg, as_kwarg, auto_tick_seconds)
783791
784792
785793 # Setup adapters for sqlite
00 Metadata-Version: 1.2
11 Name: freezegun
2 Version: 0.3.15
2 Version: 1.0.0
33 Summary: Let your Python tests travel through time
44 Home-page: https://github.com/spulec/freezegun
55 Author: Steve Pulec
5050 def test_the_class(self):
5151 assert datetime.datetime.now() == datetime.datetime(2012, 1, 14)
5252
53 # Or method decorator, might also pass frozen time object as kwarg
54
55 class TestUnitTestMethodDecorator(unittest.TestCase):
56 @freeze_time('2013-04-09')
57 def test_method_decorator_works_on_unittest(self):
58 self.assertEqual(datetime.date(2013, 4, 9), datetime.date.today())
59
60 @freeze_time('2013-04-09', as_kwarg='frozen_time')
61 def test_method_decorator_works_on_unittest(self, frozen_time):
62 self.assertEqual(datetime.date(2013, 4, 9), datetime.date.today())
63 self.assertEqual(datetime.date(2013, 4, 9), frozen_time.time_to_freeze.today())
64
65 @freeze_time('2013-04-09', as_kwarg='hello')
66 def test_method_decorator_works_on_unittest(self, **kwargs):
67 self.assertEqual(datetime.date(2013, 4, 9), datetime.date.today())
68 self.assertEqual(datetime.date(2013, 4, 9), kwargs.get('hello').time_to_freeze.today())
69
5370 Context manager
5471 ~~~~~~~~~~~~~~~
5572
244261
245262 Platform: UNKNOWN
246263 Classifier: License :: OSI Approved :: Apache Software License
247 Classifier: Programming Language :: Python :: 2
248 Classifier: Programming Language :: Python :: 2.7
249264 Classifier: Programming Language :: Python :: 3
250265 Classifier: Programming Language :: Python :: 3.5
251266 Classifier: Programming Language :: Python :: 3.6
253268 Classifier: Programming Language :: Python :: 3.8
254269 Classifier: Programming Language :: Python :: Implementation :: CPython
255270 Classifier: Programming Language :: Python :: Implementation :: PyPy
256 Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*
271 Requires-Python: >=3.5
0 six
1 python-dateutil!=2.0,>=1.0
0 python-dateutil>=2.7
00 #!/usr/bin/env python
11
2 import sys
32 from setuptools import setup
4
5 requires = ['six']
6 tests_require = [
7 'mock;python_version<"3.4"',
8 'nose'
9 ]
10
11 if sys.version_info.major == 2:
12 requires += ['python-dateutil>=1.0, != 2.0']
13 else:
14 # Py3k
15 requires += ['python-dateutil>=2.0']
16
173
184 with open('README.rst') as f:
195 readme = f.read()
206
217 setup(
228 name='freezegun',
23 version='0.3.15',
9 version='1.0.0',
2410 description='Let your Python tests travel through time',
2511 long_description=readme,
2612 author='Steve Pulec',
2713 author_email='spulec@gmail.com',
2814 url='https://github.com/spulec/freezegun',
2915 packages=['freezegun'],
30 install_requires=requires,
31 tests_require=tests_require,
16 install_requires=['python-dateutil>=2.7'],
3217 include_package_data=True,
3318 license='Apache 2.0',
34 python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*',
19 python_requires='>=3.5',
3520 classifiers=[
3621 'License :: OSI Approved :: Apache Software License',
37 'Programming Language :: Python :: 2',
38 'Programming Language :: Python :: 2.7',
3922 'Programming Language :: Python :: 3',
4023 'Programming Language :: Python :: 3.5',
4124 'Programming Language :: Python :: 3.6',
0 from datetime import datetime
1 from datetime import date
0 from datetime import date, datetime
21 from time import time, localtime, gmtime, strftime
32
43
0 import asyncio
01 import datetime
12 from textwrap import dedent
23 from unittest import SkipTest
34
4
55 from freezegun import freeze_time
6
7 try:
8 import asyncio
9 except ImportError:
10 asyncio = False
116
127
138 def test_time_freeze_coroutine():
149 if not asyncio:
1510 raise SkipTest('asyncio required')
16 @asyncio.coroutine
11
1712 @freeze_time('1970-01-01')
18 def frozen_coroutine():
13 async def frozen_coroutine():
1914 assert datetime.date.today() == datetime.date(1970, 1, 1)
2015
2116 asyncio.get_event_loop().run_until_complete(frozen_coroutine())
1414
1515 try:
1616 import maya
17
1817 except ImportError:
1918 maya = None
2019
260259
261260
262261 def test_real_strftime_fall_through():
263 with freeze_time(ignore=['_pytest']):
264 time.strftime('%Y')
265 time.strftime('%Y', (2001, 1, 1, 1, 1, 1, 1, 1, 1)) == '2001'
262 this_real_year = datetime.datetime.now().year
263 with freeze_time():
264 assert time.strftime('%Y') == str(this_real_year)
265 assert time.strftime('%Y', (2001, 1, 1, 1, 1, 1, 1, 1, 1)) == '2001'
266266
267267
268268 def test_date_object():
481481
482482 today = datetime.date.today()
483483 assert isinstance(today, datetime.date)
484
485
486 class TestUnitTestMethodDecorator(unittest.TestCase):
487 @freeze_time('2013-04-09')
488 def test_method_decorator_works_on_unittest(self):
489 self.assertEqual(datetime.date(2013, 4, 9), datetime.date.today())
490
491 @freeze_time('2013-04-09', as_kwarg='frozen_time')
492 def test_method_decorator_works_on_unittest_kwarg_frozen_time(self, frozen_time):
493 self.assertEqual(datetime.date(2013, 4, 9), datetime.date.today())
494 self.assertEqual(datetime.date(2013, 4, 9), frozen_time.time_to_freeze.today())
495
496 @freeze_time('2013-04-09', as_kwarg='hello')
497 def test_method_decorator_works_on_unittest_kwarg_hello(self, **kwargs):
498 self.assertEqual(datetime.date(2013, 4, 9), datetime.date.today())
499 self.assertEqual(datetime.date(2013, 4, 9), kwargs.get('hello').time_to_freeze.today())
484500
485501
486502 @freeze_time('2013-04-09')
00 import datetime
11 import time
2 try:
3 from unittest import mock
4 except (ImportError, AttributeError):
5 import mock
2
3 from unittest import mock
64 import pytest
75
86 from freezegun import freeze_time
0 from unittest import SkipTest
1
2 try:
3 from unittest import mock
4 except (ImportError, AttributeError):
5 import mock
0 from unittest import SkipTest, mock
61
72 from freezegun import api
83 from tests import utils
0 from __future__ import print_function, absolute_import, unicode_literals
10 import datetime
21 import uuid
32