Exemplo n.º 1
0
def test_isotime_local():
    local_date = now_as_local()
    local_format = re.compile(r'[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{6}.*')

    assert isinstance(local_date, str)
    assert local_format.match(local_date)
    assert epoch_to_local(local_to_epoch(local_date)) == local_date
    assert local_date == epoch_to_local(iso_to_epoch(epoch_to_iso(local_to_epoch(local_date))))
Exemplo n.º 2
0
def test_isotime_iso():
    iso_date = now_as_iso()
    iso_format = re.compile(r'[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{6}Z')

    assert isinstance(iso_date, str)
    assert iso_format.match(iso_date)
    assert epoch_to_iso(iso_to_epoch(iso_date)) == iso_date
    assert iso_date == epoch_to_iso(local_to_epoch(epoch_to_local(iso_to_epoch(iso_date))))
def test_isotime_rounding_error():
    for t in ["2020-01-29 18:41:25.758416", "2020-01-29 18:41:25.127600"]:
        epoch = local_to_epoch(t)
        local = epoch_to_local(epoch)
        assert local == t
def test_isotime_epoch():
    epoch_date = now(200)

    assert epoch_date == local_to_epoch(epoch_to_local(epoch_date))
    assert epoch_date == iso_to_epoch(epoch_to_iso(epoch_date))
    assert isinstance(epoch_date, float)
Exemplo n.º 5
0
                           port=config.core.redis.nonpersistent.port,
                           db=config.core.redis.nonpersistent.db)

persist = redis.StrictRedis(host=config.core.redis.persistent.host,
                            port=config.core.redis.persistent.port,
                            db=config.core.redis.persistent.db)

time_diff = 60 * 5  # Anything older than 5 minutes...
quota_time_diff = 60 * 60  # Anything older than 1 hour...

while True:
    # API Quota tracking
    data = client.hgetall('c-tracker-quota')
    if data:
        for key, value in data.iteritems():
            epoch = isotime.local_to_epoch(json.loads(value))
            now = time.time()
            if now - epoch >= time_diff:
                user = key.split(" ")[0]
                client.hdel('c-tracker-quota', key)
                client.decr('quota-{user}'.format(user=user))
                logger.warning(
                    "API request: \"{key}\" was removed from ongoing "
                    "request because it reached the timeout.".format(key=key))
            else:
                logger.debug(
                    "{key} is ok. [{now} - {value} < {time_diff}]".format(
                        key=key, now=now, value=epoch, time_diff=time_diff))
    # Submission Quota tracking
    for key in persist.keys('submissions-*'):
        data = persist.hgetall(key)