示例#1
0
    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)
示例#2
0
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()
示例#3
0
    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)