From 664b837f130b425a4525b26fe1e8023e99741898 Mon Sep 17 00:00:00 2001 From: shockrah Date: Tue, 11 May 2021 17:16:50 -0700 Subject: [PATCH] + More tests for /neighbor routes ! put /neighbor/update is failing due to a failure to parse the body correctly on thebackend Further investigation is required + Kinda minor but I'm also adding the ability to `put` things now + Also an if statement to avoid failing on checkf for NoneType responses --- json-api/client-tests/main.py | 24 ++++++++++++++++++++---- json-api/client-tests/request.py | 12 ++++++++---- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/json-api/client-tests/main.py b/json-api/client-tests/main.py index 4c092f5..a3f7470 100644 --- a/json-api/client-tests/main.py +++ b/json-api/client-tests/main.py @@ -2,6 +2,7 @@ from time import time from request import Request from config import create_admin, Admin from config import Server +from json import dumps as to_json RESPONSES = [] VOICE_CHAN = 1 @@ -73,7 +74,6 @@ def make_and_receive_invite(admin: Admin) -> (Request, Request): return (make_inv_req, None) # Setup to fire the second request, .fire() is safe to blindly use at this point - print('Response text from /join ', make_inv_req.response.status_code, ' ', make_inv_req.response.text) new_invite_body = make_inv_req.response.json()['invite'] code = new_invite_body['id'] user_inv_req = req(admin , 'get' , '/join', {'code': code}, 200, verbose=True) @@ -108,6 +108,19 @@ if __name__ == '__main__': # Invite test # Container for most/all the generic requests we want to fire off + now = time() + tmp_neighbor = { + 'name': str(now), + 'wsurl': 'wsurl', + 'url': str(now), + 'description': 'asdf', + 'tags': ['red','blue'] + } + # This neighbor is used to "update" the tmp one above in /neighbor tests + updated_neighbor = tmp_neighbor.copy() + updated_neighbor['name'] = 'new' + print('Updated neighbor as json ', to_json(updated_neighbor)) + requests.extend([ req(fake_user, 'get', '/channels/list', {}, 401), req(admin, 'post', '/channels/list', {'kind': TEXT_CHAN}, 404), @@ -121,12 +134,14 @@ if __name__ == '__main__': req(admin, 'get', '/message/recent', {'channel_id': 123, 'limit': 20}, 404), req(admin, 'get', '/members/me', {}, 200), req(admin, 'get', '/members/get_online', {}, 200), - req(admin, 'post', '/members/me/nickname', {'nick': f'randy-{time()}'}, 200), + req(admin, 'post', '/members/me/nickname', {'nick': f'randy-{now}'}, 200), req(admin , 'get', '/invite/join', {'code': 123}, 404), req(admin , "get", "/meta", {}, 200), req(admin, 'get', '/neighbor/list', {}, 200), - req(admin,'post', '/neighbor/add', {'name':'name','url':'url','wsurl':'wsurl','description':'asdf','tags':'["red","blue"]'}, 200), - req(admin, 'get', '/neighbor/list', {}, 200, verbose=True) + req(admin,'post', '/neighbor/add', {}, 200, body=to_json(tmp_neighbor)), + req(admin, 'get', '/neighbor/list', {}, 200, verbose=True), + req(admin, 'put', '/neighbor/update', {'url':str(now)}, 200, body=to_json(updated_neighbor)), + req(admin, 'get', '/neighbor/list', {}, 200, verbose=True), ]) # add this after fire the generic tests @@ -150,6 +165,7 @@ if __name__ == '__main__': r.show_response() if r.passing: pass_count += 1 + req_count = len(requests) print(f'Passing {pass_count}/{req_count}') diff --git a/json-api/client-tests/request.py b/json-api/client-tests/request.py index 91362a7..1979d47 100644 --- a/json-api/client-tests/request.py +++ b/json-api/client-tests/request.py @@ -40,6 +40,8 @@ class Request: self.response = requests.post(self.url, headers=self.headers, params=self.qs, data=self.body) elif self.method == 'delete': self.response = requests.delete(self.url, headers=self.headers, params=self.qs) + elif self.method == 'put': + self.response = requests.put(self.url, headers=self.headers, params=self.qs) return self.response except Exception as e: @@ -49,13 +51,15 @@ class Request: def show_response(self): - if not self.passing: - print(RED + 'Fail' + NC + ' ' + self.url) - return - real_code = self.response.status_code + real_code = None + if self.response is not None: + real_code = self.response.status_code + if self.hope != real_code: abstract = RED + 'Fail ' + NC + 'Expected ' + str(self.hope) + ' Got ' + str(real_code) + if self.response is None: + print('\tNo Response to show for') print(abstract) print('\t', self.method, ' ', self.url)