Beispiel #1
0
def seed_db():
    db.session.add(
        User(username='******', email="*****@*****.**", password="******"))
    db.session.add(
        User(username='******',
             email="*****@*****.**",
             password="******"))
    db.session.commit()
Beispiel #2
0
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
Beispiel #3
0
def seed_db():
    db.session.add(
        User(username='******',
             email="*****@*****.**",
             password="******"))
    db.session.add(
        User(username='******',
             email="*****@*****.**",
             password="******"))
    db.session.commit()
Beispiel #4
0
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()
Beispiel #5
0
    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.")
Beispiel #6
0
 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
Beispiel #7
0
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"]
Beispiel #8
0
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"]
Beispiel #9
0
 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")
Beispiel #10
0
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"]
Beispiel #11
0
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"]
Beispiel #12
0
    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
Beispiel #13
0
 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()
Beispiel #15
0
 def _add_user(username, email):
     user = User(username=username, email=email)
     db.session.add(user)
     db.session.commit()
     return user
Beispiel #16
0
def add_user(username, email, password):
    user = User(username=username, email=email, password=password)
    db.session.add(user)
    db.session.commit()
    return user
Beispiel #17
0
def seed_db():
    db.session.add(User(username="******", email="*****@*****.**"))
    db.session.add(User(username="******", email="*****@*****.**"))
    db.session.commit()
Beispiel #18
0
 def mock_get_user_by_email(email):
     user = User(username="******", email=email, password="******")
     user.id = 1
     return user
Beispiel #19
0
 def mock_get_user_by_id(user_id):
     return User(username="******", email="*****@*****.**", password="******")
Beispiel #20
0
 def mock_get_user_by_email(email):
     return User(username="******", email=email, password="******")
Beispiel #21
0
def seed_db():
    db.session.add(
        User(username='******', email="*****@*****.**", password="******"))
    db.session.add(
        User(username='******', email="*****@*****.**", password="******"))
    db.session.commit()
Beispiel #22
0
 def mock_get_user_by_email(email):
     return User(username="******", email="*****@*****.**", password="******")