Пример #1
0
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
Пример #2
0
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)
Пример #3
0
    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)
Пример #4
0
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)
Пример #5
0
    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)
Пример #6
0
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)
Пример #7
0
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)
Пример #8
0
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)