File: time_utils.py

package info (click to toggle)
golang-github-google-certificate-transparency 0.0~git20160709.0.0f6e3d1~ds1-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, buster
  • size: 5,676 kB
  • sloc: cpp: 35,278; python: 11,838; java: 1,911; sh: 1,885; makefile: 950; xml: 520; ansic: 225
file content (27 lines) | stat: -rw-r--r-- 609 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
"""Utilities for testing time-sensitive code."""

import contextlib
import os
import time


def get_timezone_environ():
    return os.environ.get("TZ", '')

def set_timezone_environ(new_timezone):
    os.environ["TZ"] = new_timezone
    time.tzset()

@contextlib.contextmanager
def timezone(temp_tz):
    """Sets the timezone, yields, then resets the timezone.

    Args:
        temp_tz: See https://docs.python.org/2/library/time.html#time.tzset
    """
    original_tz = get_timezone_environ()
    set_timezone_environ(temp_tz)
    try:
        yield
    finally:
        set_timezone_environ(original_tz)