Skip to content

Commit c6ee497

Browse files
committed
test: fixed integration test
1 parent 56e2f10 commit c6ee497

File tree

3 files changed

+61
-50
lines changed

3 files changed

+61
-50
lines changed

Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ test:
77
python -c "import aw_client"
88
pytest -s -vv tests/test_requestqueue.py
99

10+
test-integration:
11+
pytest -v tests/test_client.py
12+
1013
typecheck:
1114
MYPYPATH="${MYPYPATH}:../aw-core" mypy
1215

aw_client/client.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ def query(
290290
timeperiods: List[Tuple[datetime, datetime]],
291291
name: str = None,
292292
cache: bool = False,
293-
) -> Any:
293+
) -> List[Any]:
294294
endpoint = "query/"
295295
params = {} # type: Dict[str, Any]
296296
if cache:
@@ -309,10 +309,7 @@ def query(
309309
"query": query.split("\n"),
310310
}
311311
response = self._post(endpoint, data, params=params)
312-
if response.text.isdigit():
313-
return int(response.text)
314-
else:
315-
return response.json()
312+
return response.json()
316313

317314
#
318315
# Connect and disconnect

tests/test_client.py

Lines changed: 56 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -17,49 +17,60 @@ def create_unique_event():
1717
)
1818

1919

20-
client_name = "aw-test-client"
21-
bucket_name = "test-bucket"
22-
bucket_etype = "test"
23-
24-
# Test context manager
25-
with ActivityWatchClient(client_name, testing=True) as client:
26-
time.sleep(1)
27-
28-
# Check that client name is set correctly
29-
assert client.client_name == client_name
30-
31-
# Delete bucket before creating it, and handle error if it doesn't already exist
32-
try:
20+
def test_full():
21+
now = datetime.now(timezone.utc)
22+
23+
client_name = "aw-test-client"
24+
bucket_name = "test-bucket"
25+
bucket_etype = "test"
26+
27+
# Test context manager
28+
with ActivityWatchClient(client_name, testing=True) as client:
29+
time.sleep(1)
30+
31+
# Check that client name is set correctly
32+
assert client.client_name == client_name
33+
34+
# Delete bucket before creating it, and handle error if it doesn't already exist
35+
try:
36+
client.delete_bucket(bucket_name)
37+
except HTTPError:
38+
pass
39+
40+
# Create bucket
41+
client.create_bucket(bucket_name, bucket_etype)
42+
43+
# Check bucket
44+
buckets = client.get_buckets()
45+
assert bucket_name in buckets
46+
assert bucket_name == buckets[bucket_name]["id"]
47+
assert bucket_etype == buckets[bucket_name]["type"]
48+
49+
# Insert events
50+
e1 = create_unique_event()
51+
e2 = create_unique_event()
52+
e3 = create_unique_event()
53+
events = [e1, e2, e3]
54+
client.insert_events(bucket_name, events)
55+
56+
# Get events
57+
fetched_events = client.get_events(bucket_name, limit=len(events))
58+
59+
# Assert events
60+
assert [(e.timestamp, e.duration, e.data) for e in fetched_events] == [
61+
(e.timestamp, e.duration, e.data) for e in events
62+
]
63+
64+
# Check eventcount
65+
eventcount = client.get_eventcount(bucket_name)
66+
assert eventcount == len(events)
67+
68+
result = client.query(
69+
f"RETURN = query_bucket('{bucket_name}');",
70+
timeperiods=[(now - timedelta(hours=1), now + timedelta(hours=1))],
71+
)
72+
assert len(result) == 1
73+
assert len(result[0]) == 3
74+
75+
# Delete bucket
3376
client.delete_bucket(bucket_name)
34-
except HTTPError as e:
35-
pass
36-
37-
# Create bucket
38-
client.create_bucket(bucket_name, bucket_etype)
39-
40-
# Check bucket
41-
buckets = client.get_buckets()
42-
assert bucket_name in buckets
43-
assert bucket_name == buckets[bucket_name]["id"]
44-
assert bucket_etype == buckets[bucket_name]["type"]
45-
46-
# Insert events
47-
e1 = create_unique_event()
48-
e2 = create_unique_event()
49-
e3 = create_unique_event()
50-
events = [e1, e2, e3]
51-
client.insert_events(bucket_name, events)
52-
53-
# Get events
54-
fetched_events = client.get_events(bucket_name, limit=len(events))
55-
56-
# Assert events
57-
assert fetched_events == events
58-
assert events[0]["data"]["label"] == e1["data"]["label"]
59-
60-
# Check eventcount
61-
eventcount = client.get_eventcount(bucket_name)
62-
assert eventcount == 1
63-
64-
# Delete bucket
65-
client.delete_bucket(bucket_name)

0 commit comments

Comments
 (0)