timelapse.py 630 B

123456789101112131415161718192021222324252627282930
  1. import contextlib
  2. import datetime
  3. class Timer(object):
  4. def start(self):
  5. self.start = datetime.datetime.now()
  6. def stop(self):
  7. self.stop = datetime.datetime.now()
  8. def elapsed(self):
  9. return self.stop - self.start
  10. def assertHasDate(self, date):
  11. assert self.start <= date <= self.stop, "%s was not during the timer" % date
  12. def assertNotHasDate(self, date):
  13. assert not (self.start <= date <= self.stop), "%s was during the timer" % date
  14. @contextlib.contextmanager
  15. def timekeeper():
  16. t = Timer()
  17. t.start()
  18. try:
  19. yield t
  20. finally:
  21. t.stop()