+ 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
This commit is contained in:
shockrah 2021-05-11 17:16:50 -07:00
parent b4c55b72ea
commit 664b837f13
2 changed files with 28 additions and 8 deletions

View File

@ -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}')

View File

@ -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)