def test_test_now(): now = pendulum.datetime(2000, 11, 10, 12, 34, 56, 123456) pendulum.set_test_now(now) assert pendulum.has_test_now() assert now == pendulum.get_test_now() assert_datetime(pendulum.now(), 2000, 11, 10, 12, 34, 56, 123456) pendulum.set_test_now() assert not pendulum.has_test_now() assert pendulum.get_test_now() is None
def parse( text, **options ): # type: (str, **typing.Any) -> typing.Union[Date, Time, DateTime, Duration] # Use the mock now value if it exists options["now"] = options.get("now", pendulum.get_test_now()) return _parse(text, **options)
def test_set_test_now_is_global(self): now = pendulum.create(2000, 11, 10, 12, 34, 56, 123456) pendulum.set_test_now(now) self.assertEqual(now, pendulum.get_test_now()) self.assertEqual(now, pendulum.Pendulum.get_test_now()) self.assertEqual(now.date(), pendulum.Date.get_test_now()) self.assertEqual(now.time(), pendulum.Time.get_test_now()) self.assertPendulum(pendulum.Pendulum.now(), 2000, 11, 10, 12, 34, 56, 123456) self.assertDate(pendulum.Date.today(), 2000, 11, 10) self.assertTime(pendulum.Time.now(), 12, 34, 56, 123456)
def freeze_time(time=None, device=None): # Get current time if not provided if time is None: time = pendulum.now() # Freeze a single device if device is not None: with freeze_device_time(device, time) as time: yield time return # Parse time global __freeze_time_task if isinstance(time, str): time = pendulum.parse(time) # Save previous context previous_task = __freeze_time_task previous_time = pendulum.get_test_now() # Get current trio task try: current_task = trio.lowlevel.current_task() except RuntimeError: current_task = None # Ensure time has not been frozen from another coroutine assert previous_task in (None, current_task) try: # Set new context __freeze_time_task = current_task pendulum.set_test_now(time) try: from libparsec.types import freeze_time as _Rs_freeze_time except ImportError: pass else: _Rs_freeze_time(time) yield time finally: # Restore previous context __freeze_time_task = previous_task pendulum.set_test_now(previous_time) try: from libparsec.types import freeze_time as _Rs_freeze_time except ImportError: pass else: _Rs_freeze_time(previous_time)
def test_set_test_now_can_be_overridden(self): now = pendulum.create(2000, 11, 10, 12, 34, 56, 123456) pendulum.set_test_now(now) dt = pendulum.create(2001, 12, 11, 1, 2, 3, 987654) pendulum.Pendulum.set_test_now(dt) pendulum.Date.set_test_now(dt) pendulum.Time.set_test_now(dt) self.assertEqual(now, pendulum.get_test_now()) self.assertEqual(dt, pendulum.Pendulum.get_test_now()) self.assertEqual(dt.date(), pendulum.Date.get_test_now()) self.assertEqual(dt.time(), pendulum.Time.get_test_now()) self.assertPendulum(pendulum.Pendulum.now(), 2001, 12, 11, 1, 2, 3, 987654) self.assertDate(pendulum.Date.today(), 2001, 12, 11) self.assertTime(pendulum.Time.now(), 1, 2, 3, 987654)
def parse(text, **options): # type: (str, **typing.Any) -> str # Use the mock now value if it exists options["now"] = options.get("now", pendulum.get_test_now()) return _parse(text, **options)
def parse(text, **options): # Use the mock now value if it exists options['now'] = options.get('now', pendulum.get_test_now()) return _parse(text, **options)
def parse(text, **options): # Use the mock now value if it exists options["now"] = options.get("now", pendulum.get_test_now()) return _parse(text, **options)