Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
test: fixed integration test
  • Loading branch information
ErikBjare committed Dec 6, 2020
1 parent 56e2f10 commit c6ee497
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 50 deletions.
3 changes: 3 additions & 0 deletions Makefile
Expand Up @@ -7,6 +7,9 @@ test:
python -c "import aw_client"
pytest -s -vv tests/test_requestqueue.py

test-integration:
pytest -v tests/test_client.py

typecheck:
MYPYPATH="${MYPYPATH}:../aw-core" mypy

Expand Down
7 changes: 2 additions & 5 deletions aw_client/client.py
Expand Up @@ -290,7 +290,7 @@ def query(
timeperiods: List[Tuple[datetime, datetime]],
name: str = None,
cache: bool = False,
) -> Any:
) -> List[Any]:
endpoint = "query/"
params = {} # type: Dict[str, Any]
if cache:
Expand All @@ -309,10 +309,7 @@ def query(
"query": query.split("\n"),
}
response = self._post(endpoint, data, params=params)
if response.text.isdigit():
return int(response.text)
else:
return response.json()
return response.json()

#
# Connect and disconnect
Expand Down
101 changes: 56 additions & 45 deletions tests/test_client.py
Expand Up @@ -17,49 +17,60 @@ def create_unique_event():
)


client_name = "aw-test-client"
bucket_name = "test-bucket"
bucket_etype = "test"

# Test context manager
with ActivityWatchClient(client_name, testing=True) as client:
time.sleep(1)

# Check that client name is set correctly
assert client.client_name == client_name

# Delete bucket before creating it, and handle error if it doesn't already exist
try:
def test_full():
now = datetime.now(timezone.utc)

client_name = "aw-test-client"
bucket_name = "test-bucket"
bucket_etype = "test"

# Test context manager
with ActivityWatchClient(client_name, testing=True) as client:
time.sleep(1)

# Check that client name is set correctly
assert client.client_name == client_name

# Delete bucket before creating it, and handle error if it doesn't already exist
try:
client.delete_bucket(bucket_name)
except HTTPError:
pass

# Create bucket
client.create_bucket(bucket_name, bucket_etype)

# Check bucket
buckets = client.get_buckets()
assert bucket_name in buckets
assert bucket_name == buckets[bucket_name]["id"]
assert bucket_etype == buckets[bucket_name]["type"]

# Insert events
e1 = create_unique_event()
e2 = create_unique_event()
e3 = create_unique_event()
events = [e1, e2, e3]
client.insert_events(bucket_name, events)

# Get events
fetched_events = client.get_events(bucket_name, limit=len(events))

# Assert events
assert [(e.timestamp, e.duration, e.data) for e in fetched_events] == [
(e.timestamp, e.duration, e.data) for e in events
]

# Check eventcount
eventcount = client.get_eventcount(bucket_name)
assert eventcount == len(events)

result = client.query(
f"RETURN = query_bucket('{bucket_name}');",
timeperiods=[(now - timedelta(hours=1), now + timedelta(hours=1))],
)
assert len(result) == 1
assert len(result[0]) == 3

# Delete bucket
client.delete_bucket(bucket_name)
except HTTPError as e:
pass

# Create bucket
client.create_bucket(bucket_name, bucket_etype)

# Check bucket
buckets = client.get_buckets()
assert bucket_name in buckets
assert bucket_name == buckets[bucket_name]["id"]
assert bucket_etype == buckets[bucket_name]["type"]

# Insert events
e1 = create_unique_event()
e2 = create_unique_event()
e3 = create_unique_event()
events = [e1, e2, e3]
client.insert_events(bucket_name, events)

# Get events
fetched_events = client.get_events(bucket_name, limit=len(events))

# Assert events
assert fetched_events == events
assert events[0]["data"]["label"] == e1["data"]["label"]

# Check eventcount
eventcount = client.get_eventcount(bucket_name)
assert eventcount == 1

# Delete bucket
client.delete_bucket(bucket_name)

0 comments on commit c6ee497

Please sign in to comment.