Skip to content

Commit 8d03cf7

Browse files
authored
feat: entities endpoint (#117)
1 parent 5dd6b44 commit 8d03cf7

2 files changed

Lines changed: 79 additions & 0 deletions

File tree

client/api/entities.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
from client.resource import Resource
2+
3+
4+
class Entities(Resource):
5+
6+
def all(self, page=None, limit=100, **kwargs):
7+
extra_params = {name: kwargs[name] for name in kwargs if kwargs[name] is not None}
8+
params = {
9+
'page': page,
10+
'limit': limit,
11+
**extra_params
12+
}
13+
return self.request_get('entities', params)
14+
15+
def get(self, entity_id):
16+
return self.request_get('entities/{}'.format(entity_id))

tests/api/test_entities.py

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
import responses
2+
3+
from client import ArkClient
4+
5+
6+
def test_all_calls_correct_url_with_default_params():
7+
responses.add(
8+
responses.GET,
9+
'http://127.0.0.1:4002/entities',
10+
json={'success': True},
11+
status=200
12+
)
13+
14+
client = ArkClient('http://127.0.0.1:4002')
15+
client.entities.all()
16+
assert len(responses.calls) == 1
17+
assert responses.calls[0].request.url == 'http://127.0.0.1:4002/entities?limit=100'
18+
19+
20+
def test_all_calls_correct_url_with_passed_in_params():
21+
responses.add(
22+
responses.GET,
23+
'http://127.0.0.1:4002/entities',
24+
json={'success': True},
25+
status=200
26+
)
27+
28+
client = ArkClient('http://127.0.0.1:4002')
29+
client.entities.all(
30+
id='1337', address='address', publicKey='pk', isResigned='false', type=0, subType=0, **{'data.name': 'foo', 'data.ipfsData': 'bar'}, page=5, limit=69
31+
)
32+
assert len(responses.calls) == 1
33+
assert responses.calls[0].request.url.startswith('http://127.0.0.1:4002/entities?')
34+
assert 'id=1337' in responses.calls[0].request.url
35+
assert 'address=address' in responses.calls[0].request.url
36+
assert 'publicKey=pk' in responses.calls[0].request.url
37+
assert 'isResigned=false' in responses.calls[0].request.url
38+
assert 'type=0' in responses.calls[0].request.url
39+
assert 'subType=0' in responses.calls[0].request.url
40+
41+
assert 'data.name=foo' in responses.calls[0].request.url
42+
assert 'data.ipfsData=bar' in responses.calls[0].request.url
43+
44+
assert 'page=5' in responses.calls[0].request.url
45+
assert 'limit=69' in responses.calls[0].request.url
46+
47+
print(responses.calls[0].request.url)
48+
49+
50+
def test_get_calls_correct_url():
51+
entity_id = '12345'
52+
responses.add(
53+
responses.GET,
54+
'http://127.0.0.1:4002/entities/{}'.format(entity_id),
55+
json={'success': True},
56+
status=200
57+
)
58+
59+
client = ArkClient('http://127.0.0.1:4002')
60+
client.entities.get(entity_id)
61+
62+
assert len(responses.calls) == 1
63+
assert responses.calls[0].request.url == 'http://127.0.0.1:4002/entities/12345'

0 commit comments

Comments
 (0)