def seed_db(): db.session.add( User(username='******', email="*****@*****.**", password="******")) db.session.add( User(username='******', email="*****@*****.**", password="******")) db.session.commit()
def test_decode_token(test_app, test_database, add_user): user = add_user("justatest", "*****@*****.**", "test") token = user.encode_token(user.id, "access") assert isinstance(token, bytes) assert User.decode_token(token) == user.id token = user.encode_token(user.id, "refresh") assert isinstance(token, bytes) assert User.decode_token(token) == user.id
def seed_db(): db.session.add(User(username='******', email="*****@*****.**")) db.session.add(User(username='******', email="*****@*****.**")) db.session.commit() mdata = get_mapdata() for data in mdata: db.session.add( Place(lat=data['lat'], lon=data['lon'], name=data['name'], types=data['types'])) db.session.commit()
def post(self): post_data = request.get_json() refresh_token = post_data.get("refresh_token") response_object = {} try: resp = User.decode_token(refresh_token) user = get_user_by_id(resp) if not user: auth_namespace.abort(401, "Invalid token") access_token = user.encode_token(user.id, "access") refresh_token = user.encode_token(user.id, "refresh") response_object = { "access_token": access_token.decode(), "refresh_token": refresh_token.decode(), } return response_object, 200 except jwt.ExpiredSignatureError: auth_namespace.abort(401, "Signature expired. Please log in again.") return "Signature expired. Please log in again." except jwt.InvalidTokenError: auth_namespace.abort(401, "Invalid token. Please log in again.")
def post(self): """Returns all deliveries of specified user.""" post_data = request.get_json() token = post_data.get("token") user_id = User.decode_token(token) user = get_user_by_id(user_id) if not user: deliveries_namespace.abort(404, f"User {user_id} does not exist") return user.deliveries, 200
def test_user_status_not_exist(test_app, test_database): client = test_app.test_client() access_token = User.encode_token(999, "access").decode() resp = client.get( "/auth/status", headers={"Authorization": f"Bearer {access_token}"}, content_type="application/json", ) data = json.loads(resp.data.decode()) assert resp.status_code == 401 assert resp.content_type == "application/json" assert "Invalid token" in data["message"]
def test_refresh_not_exist_user(test_app, test_database): client = test_app.test_client() refresh_token = User.encode_token(999, "refresh") resp = client.post( "/auth/refresh", data=json.dumps({"refresh_token": refresh_token.decode()}), content_type="application/json", ) data = json.loads(resp.data.decode()) assert resp.status_code == 401 assert resp.content_type == "application/json" assert "Invalid token" in data["message"]
def get(self): auth_header = request.headers.get("Authorization") if auth_header: try: access_token = auth_header.split(" ")[1] resp = User.decode_token(access_token) user = get_user_by_id(resp) if not user: auth_namespace.abort(401, "Invalid token") return user, 200 except jwt.ExpiredSignatureError: auth_namespace.abort(401, "Signature expired. Please log in again.") return "Signature expired. Please log in again." except jwt.InvalidTokenError: auth_namespace.abort(401, "Invalid token. Please log in again.") else: auth_namespace.abort(403, "Token required")
def test_refresh_not_exist_user(test_app, monkeypatch): def mock_get_user_by_id(user_id): return None monkeypatch.setattr(src.api.users.auth, "get_user_by_id", mock_get_user_by_id) client = test_app.test_client() refresh_token = User.encode_token(999, "refresh") resp = client.post( "/auth/refresh", data=json.dumps({"refresh_token": refresh_token.decode()}), content_type="application/json", ) data = json.loads(resp.data.decode()) assert resp.status_code == 401 assert resp.content_type == "application/json" assert "Invalid token" in data["message"]
def test_user_status_not_exist(test_app, monkeypatch): def mock_get_user_by_id(user_id): return None monkeypatch.setattr(src.api.users.auth, "get_user_by_id", mock_get_user_by_id) client = test_app.test_client() access_token = User.encode_token(999, "access").decode() resp = client.get( "/auth/status", headers={"Authorization": f"Bearer {access_token}"}, content_type="application/json", ) data = json.loads(resp.data.decode()) assert resp.status_code == 401 assert resp.content_type == "application/json" assert "Invalid token" in data["message"]
def post(self): """Creates a new delivery.""" post_data = request.get_json() token = post_data.get("token") user_id = User.decode_token(token) user = get_user_by_id(user_id) if not user: deliveries_namespace.abort(404, f"User {user_id} does not exist") end_date_time = post_data.get("end_date_time") end_date_time = datetime.strptime(post_data.get("end_date_time"), '%Y-%m-%dT%H:%M:%S.%fZ') lat = post_data.get("lat") lng = post_data.get("lng") response_object = {} delivery = add_delivery(user_id=user_id, end_date_time=end_date_time, lat=lat, lng=lng) user.deliveries.append(delivery) print(user.deliveries) response_object["message"] = f"{user_id}" return response_object, 201
def mock_add_user(username, email, password): return User(username=username, email=email, password=password)
def seed_db(): db.session.add(User(username='******', email='*****@*****.**')) db.session.add(User(username='******', email='*****@*****.**')) db.session.commit()
def _add_user(username, email): user = User(username=username, email=email) db.session.add(user) db.session.commit() return user
def add_user(username, email, password): user = User(username=username, email=email, password=password) db.session.add(user) db.session.commit() return user
def seed_db(): db.session.add(User(username="******", email="*****@*****.**")) db.session.add(User(username="******", email="*****@*****.**")) db.session.commit()
def mock_get_user_by_email(email): user = User(username="******", email=email, password="******") user.id = 1 return user
def mock_get_user_by_id(user_id): return User(username="******", email="*****@*****.**", password="******")
def mock_get_user_by_email(email): return User(username="******", email=email, password="******")
def mock_get_user_by_email(email): return User(username="******", email="*****@*****.**", password="******")