sapling/eden/scm/tests/fakedate.py
Jun Wu 5da0c6903d util: switch to Rust time parsing
Summary:
The Rust bindings now provide a subset of time parsing features.  Replace the
old Python implementation. This has multiple benefits:
- Strong gurarnatee that Rust and Python behave the same.
- Parse relative time (ex. `5 minutes ago`)
- Parse date beyound i32 range (ex. >= year 2038)

Reviewed By: DurhamG

Differential Revision: D18946332

fbshipit-source-id: 721f47bc5b2835d7ca0a05ab34ea4faa1a411a4e
2020-01-09 11:51:31 -08:00

24 lines
525 B
Python

import datetime
import time
import bindings
from edenscm.mercurial import util
def extsetup(ui):
fakedate = ui.config("fakedate", "date", "1996-03-07 14:00:01Z")
bindings.hgtime.setnowfortesting(fakedate)
fakedate = util.parsedate(fakedate)[0]
class fakedatetime(datetime.datetime):
@staticmethod
def now(tz=None):
return datetime.datetime.fromtimestamp(fakedate, tz)
datetime.datetime = fakedatetime
def faketime():
return fakedate
time.time = faketime