예제 #1
0
def add_data():
    from burnafterme import redis_client

    if not request.data:
        return '400 NO CONTENT', 400 

    key = generate_short()

    timeout = current_app.config['TIMEOUT']
    user_provided_timeout = request.args.get('t')
    print(user_provided_timeout)
    if user_provided_timeout:
        try:
            timeout = parse_timeout(user_provided_timeout)
        except TimeoutFormatException:
            return f'400 BAD TIMEOUT PROVIDED {request.args.get("t")}'
        except Exception:
            return f'400 LOGICAL TIMEOUT EXCEPTION'

    redis_client.setex(key, timeout, request.data)
    return f'{current_app.config["PROTOCOL"]}://{current_app.config["HOST"]}/{key}'
예제 #2
0
def test_parses_minute_timeout():
    assert parse_timeout("60s") == parse_timeout("1m")
예제 #3
0
def test_parses_second_timeout():
    assert parse_timeout("1s") == 1
    assert parse_timeout("300s") == 300
예제 #4
0
def test_parses_year_timeout():
    assert parse_timeout("365d") == parse_timeout("1y")
예제 #5
0
def test_parses_week_timeout():
    assert parse_timeout("2w") == parse_timeout("14d")
예제 #6
0
def test_parses_day_timeout():
    assert parse_timeout("2d") == parse_timeout("48h")
예제 #7
0
def test_parses_hour_timeout():
    assert parse_timeout("1h") == parse_timeout("60m")