Skip to content

Commit

Permalink
Merge pull request #429 from hannseman/as_args-kwargs
Browse files Browse the repository at this point in the history
Pass all arguments on recursive freeze_time calls
  • Loading branch information
boxed committed Mar 18, 2022
2 parents a87388e + 7eb6fd3 commit 367e7df
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 3 deletions.
6 changes: 3 additions & 3 deletions freezegun/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -809,14 +809,14 @@ def freeze_time(time_to_freeze=None, tz_offset=0, ignore=None, tick=False, as_ar
raise SystemError('Calling freeze_time with tick=True is only compatible with CPython')

if isinstance(time_to_freeze, types.FunctionType):
return freeze_time(time_to_freeze(), tz_offset, ignore, tick, auto_tick_seconds)
return freeze_time(time_to_freeze(), tz_offset, ignore, tick, as_arg, as_kwarg, auto_tick_seconds)

if isinstance(time_to_freeze, types.GeneratorType):
return freeze_time(next(time_to_freeze), tz_offset, ignore, tick, auto_tick_seconds)
return freeze_time(next(time_to_freeze), tz_offset, ignore, tick, as_arg, as_kwarg, auto_tick_seconds)

if MayaDT is not None and isinstance(time_to_freeze, MayaDT):
return freeze_time(time_to_freeze.datetime(), tz_offset, ignore,
tick, as_arg)
tick, as_arg, as_kwarg, auto_tick_seconds)

if ignore is None:
ignore = []
Expand Down
5 changes: 5 additions & 0 deletions tests/test_datetimes.py
Original file line number Diff line number Diff line change
Expand Up @@ -530,6 +530,11 @@ def test_method_decorator_works_on_unittest_kwarg_hello(self, **kwargs):
self.assertEqual(datetime.date(2013, 4, 9), datetime.date.today())
self.assertEqual(datetime.date(2013, 4, 9), kwargs.get('hello').time_to_freeze.today())

@freeze_time(lambda: datetime.date(year=2013, month=4, day=9), as_kwarg='frozen_time')
def test_method_decorator_works_on_unittest_kwarg_frozen_time_with_func(self, frozen_time):
self.assertEqual(datetime.date(2013, 4, 9), datetime.date.today())
self.assertEqual(datetime.date(2013, 4, 9), frozen_time.time_to_freeze.today())


@freeze_time('2013-04-09')
class TestUnitTestClassDecorator(unittest.TestCase):
Expand Down

0 comments on commit 367e7df

Please sign in to comment.