diff options
Diffstat (limited to 'warteraum/test/test_integration.py')
-rwxr-xr-x | warteraum/test/test_integration.py | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/warteraum/test/test_integration.py b/warteraum/test/test_integration.py index 31fbb82..2819366 100755 --- a/warteraum/test/test_integration.py +++ b/warteraum/test/test_integration.py @@ -1,7 +1,9 @@ -import requests from flipdot_gschichtler import FlipdotGschichtlerClient, FlipdotGschichtlerError +import math import pytest +import requests import sys +import time BASE_URL = 'http://localhost:9000' TOKEN = 'hannes' @@ -53,6 +55,7 @@ def test_queue_404_format(): def test_announcement_formats(): my_text = 'important news' + my_timestamp = 1607356134 r = requests.delete(BASE_URL + '/api/v2/announcement', data = { 'token' : TOKEN }) assert r.status_code == 204 @@ -60,19 +63,27 @@ def test_announcement_formats(): r1 = requests.get(BASE_URL + '/api/v2/announcement') assert r1.status_code == 404 assert r1.json()['announcement'] == None + assert r1.json()['expiry_utc'] == None r2 = requests.put(BASE_URL + '/api/v2/announcement', data = { 'text' : my_text, 'token' : TOKEN }) assert r2.status_code == 200 assert r2.json()['announcement'] == my_text + assert r1.json()['expiry_utc'] == None r3 = requests.get(BASE_URL + '/api/v2/announcement') assert r3.status_code == 200 assert r3.json()['announcement'] == my_text + assert r1.json()['expiry_utc'] == None # check that token is required r4 = requests.put(BASE_URL + '/api/v2/announcement', data = { 'text' : 'oops' }) assert r4.status_code == 400 + r5 = requests.put(BASE_URL + '/api/v2/announcement', data = { 'text' : my_text, 'token' : TOKEN, 'expiry_utc' : my_timestamp }) + assert r5.status_code == 200 + assert r5.json()['announcement'] == my_text + assert r5.json()['expiry_utc'] == my_timestamp + # /api/v2/queue/add input validation and normalization def test_strip_whitespace(): @@ -197,3 +208,17 @@ def test_reassigning_only_after_emptying(): assert api.add('only text') == 0 assert len(api.queue()) == 1 assert api.queue()[0]['id'] == 0 + +# announcement properties + +def test_announcement_expiring(): + my_text = 'this announcement will become irrelevant' + in_thirty = math.floor(time.time()) + 30 + + api.set_announcement(my_text, expiry = in_thirty) + + assert api.announcement(with_expiry = True) == { 'text' : my_text, 'expiry' : in_thirty } + + time.sleep(35) + + assert api.announcement() == None |