def test_update_record_admin_role(self): resp = self.client.post('/record', data=json.dumps(self.params), headers={'content-type': 'application/json', 'Authorization': self.admin_token}) self.assertEqual(resp.status_code, 200) result = dbs.read_records(self.admin_token, {}) expected = [ {'date': date(2020, 9, 21), 'distance': 9369, 'lat': 38.7, 'lon': 46.2, 'rid': 1, 'time': 25, 'username': '******', 'weather': 'Clouds'}, {'date': date(2020, 9, 22), 'distance': 5000, 'lat': -8.3, 'lon': 37.9, 'rid': 2, 'time': 20, 'username': '******', 'weather': 'Rain'}, {'date': date(2020, 9, 21), 'distance': 8251, 'lat': -26.2, 'lon': -82.0, 'rid': 3, 'time': 10, 'username': '******', 'weather': 'Clear'}, {'date': date(2020, 9, 23), 'distance': 8743, 'lat': 27.1, 'lon': 19.9, 'rid': 4, 'time': 43, 'username': '******', 'weather': 'Clear'}, ] self.assertEqual(result, expected)
def read_records(): try: page = int(request.args.get('page', DEFAULT_PAGE_NUM)) page_size = int(request.args.get('pagesize', DEFAULT_PAGE_SIZE)) except Exception as e: return jsonify(status=1, msg=f'Invalid page or pagesize: {e}'), 400 try: filter_str = request.args.get('filter') filters = convert_str_to_filters(filter_str) except Exception as e: traceback.print_exc() return jsonify(status=1, msg=f'Invalid filter {filter_str}: {e}'), 400 token = request.headers.get('Authorization') try: logger.debug( f'Page {page}, page size: {page_size}, token {token}, filters {filters}' ) data = dbs.read_records(token, filters, page, page_size) return jsonify(status=0, msg='OK', data=data) except exceptions.UnauthenticatedError as e: return jsonify(status=1, msg=f'ERROR: {e}'), 401 except exceptions.NoAccessError as e: return jsonify(status=1, msg=f'ERROR: {e}'), 403 except Exception as e: traceback.print_exc() logger.error(f'Failed to read jogging records: {e}') return jsonify(status=1, msg=f'ERROR: {e}'), 500 finally: dbs.session.rollback()
def test_create_record_user_role(self): resp = self.client.put('/record', data=json.dumps(self.params), headers={ 'content-type': 'application/json', 'Authorization': self.user_token }) self.assertEqual(resp.status_code, 200) result = dbs.read_records(self.admin_token, {}) expected = [ { 'date': self.yesterday, 'distance': 9000, 'lat': 38.7, 'lon': 46.2, 'rid': 1, 'time': 25, 'username': '******', 'weather': ANY }, ] self.assertEqual(result, expected)