Skip to content

Commit 701c999

Browse files
committed
ENH: async tests
1 parent c0825fb commit 701c999

File tree

7 files changed

+38
-19
lines changed

7 files changed

+38
-19
lines changed

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ Homepage = "https://github.com/dmgav/save-and-restore-api"
3838
dev = [
3939
"pytest >=6",
4040
"pytest-cov >=3",
41+
"pytest-asyncio",
4142
"pre-commit",
4243
"ruff",
4344
]

src/save_and_restore_api/_api_async.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,9 @@ async def send_request(
3333
return response
3434

3535
async def login(self, *, username=None, password=None):
36-
method, url, params = await self._prepare_login(username=username, password=password)
37-
self.send_request(method, url, params=params)
36+
method, url, params = self._prepare_login(username=username, password=password)
37+
await self.send_request(method, url, params=params)
38+
39+
async def get_node(self, node_uid):
40+
method, url = self._prepare_get_node(node_uid=node_uid)
41+
return await self.send_request(method, url)

src/save_and_restore_api/_api_base.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,6 @@
44

55
import httpx
66

7-
rest_api_method_map = {
8-
"login": ("POST", "/login"),
9-
}
10-
117

128
class RequestParameterError(Exception): ...
139

@@ -143,12 +139,13 @@ def _prepare_request(
143139
return kwargs
144140

145141
def _prepare_login(self, *, username=None, password=None):
146-
method, url = rest_api_method_map["login"]
142+
method, url = "POST", "/login"
147143
params = {"username": username, "password": password}
148144
return method, url, params
149145

150-
def get_node(self, node_uid):
151-
return self.send_request("GET", f"/node/{node_uid}")
146+
def _prepare_get_node(self, *, node_uid):
147+
method, url = "GET", f"/node/{node_uid}"
148+
return method, url
152149

153150
def get_children(self, node_uid):
154151
return self.send_request("GET", f"/node/{node_uid}/children")

src/save_and_restore_api/_api_threads.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,7 @@ def send_request(
3535
def login(self, *, username=None, password=None):
3636
method, url, params = self._prepare_login(username=username, password=password)
3737
self.send_request(method, url, params=params)
38+
39+
def get_node(self, node_uid):
40+
method, url = self._prepare_get_node(node_uid=node_uid)
41+
return self.send_request(method, url)

tests/__init__.py

Whitespace-only changes.

tests/common.py

Whitespace-only changes.

tests/test_package.py

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,37 @@
22

33
import importlib.metadata
44

5-
import save_and_restore_api as m
6-
from save_and_restore_api import SaveRestoreAPI
5+
import pytest
76

7+
import save_and_restore_api
8+
from save_and_restore_api import SaveRestoreAPI as SaveRestoreAPI_Threads
9+
from save_and_restore_api.aio import SaveRestoreAPI as SaveRestoreAPI_Async
810

9-
def test_version():
10-
assert importlib.metadata.version("save_and_restore_api") == m.__version__
11+
admin_username, admin_password = "admin", "adminPass"
12+
user_username, user_password = "user", "userPass"
13+
read_username, read_password = "johndoe", "1234"
14+
15+
base_url = "http://localhost:8080/save-restore"
1116

1217

13-
def test_import():
14-
from save_and_restore_api import SaveRestoreAPI # noqa: F401
18+
def test_version():
19+
assert importlib.metadata.version("save_and_restore_api") == save_and_restore_api.__version__
1520

1621

1722
def test_comm():
18-
SR = SaveRestoreAPI(base_url="http://localhost:8080/save-restore", timeout=2)
19-
# SR.set_username_password(username="johndoe", password="1234")
20-
SR.set_auth(username="user", password="userPass")
21-
# SR.set_username_password(username="admin", password="adminPass")
23+
SR = SaveRestoreAPI_Threads(base_url=base_url, timeout=2)
24+
SR.set_auth(username=user_username, password=user_password)
2225
SR.open()
2326
SR.login(username="user", password="userPass")
2427
SR.get_node(SR.ROOT_NODE_UID)
2528
SR.close()
29+
30+
31+
@pytest.mark.asyncio
32+
async def test_comm_async():
33+
SR = SaveRestoreAPI_Async(base_url=base_url, timeout=2)
34+
SR.set_auth(username="user", password="userPass")
35+
SR.open()
36+
await SR.login(username="user", password="userPass")
37+
await SR.get_node(SR.ROOT_NODE_UID)
38+
await SR.close()

0 commit comments

Comments
 (0)