From 8cecab2861d128ed31bf18eb3fbb941e56baedc8 Mon Sep 17 00:00:00 2001 From: Aden Krakman Date: Sat, 26 Nov 2022 01:07:12 -0600 Subject: [PATCH] fix return errors and type errors --- src/backend/app.py | 22 +++++++++++----------- src/backend/pages/userpage.py | 2 +- src/backend/tests/test_userpage.py | 24 ++++++++++++++---------- 3 files changed, 26 insertions(+), 22 deletions(-) diff --git a/src/backend/app.py b/src/backend/app.py index b7b61a737..757dda282 100644 --- a/src/backend/app.py +++ b/src/backend/app.py @@ -54,10 +54,10 @@ def userpage(): """Handles userpage requests""" if session.get("username", None) is None: return "user does not exist", 404 - username = session.get("username") + username = session.get("username") or "" page = UserPage(username) if request.method == "POST": - json_form = request.get_json(force=True) # deserialize data + json_form = request.get_json(force=True) or {} # deserialize data # see which field was True and therefore should be changed is_password = json_form.get("is_password", False) is_email = json_form.get("is_email", False) @@ -65,27 +65,27 @@ def userpage(): is_get_liked = json_form.get("is_get_liked", False) result = False if is_password: - result = page.update_password(json_form.get("password")) + result = page.update_password(json_form.get("password") or "") elif is_email: - result = page.update_email(json_form.get("email")) + result = page.update_email(json_form.get("email") or "") elif is_phone: - result = page.update_phone(json_form.get("phone")) + result = page.update_phone(json_form.get("phone") or "") elif is_get_liked: - liked_apts = page.get_liked(json_form.get("user_id")) + liked_apts = page.get_liked(json_form.get("user_id") or 0) return dataclasses_into_json(liked_apts), 201 if not result: - return result, 400 - return result, 201 + return "invalid request", 400 + return "success", 201 user = page.get_user(username) # request.method == "GET" data_dict = dataclasses.asdict(user) - return json.dumps(data_dict), username, 201 + return json.dumps(data_dict), 201 @app.route("/logout") def logout(): """Removes session object""" - res = session.pop("username", None) # session object is None if pop fails - return res, 201 + session.pop("username", None) # remove session object + return "", 201 @app.route("/", methods=["GET", "POST"]) diff --git a/src/backend/pages/userpage.py b/src/backend/pages/userpage.py index 0125feea1..6c5187985 100644 --- a/src/backend/pages/userpage.py +++ b/src/backend/pages/userpage.py @@ -25,7 +25,7 @@ def get_user(self, username: str) -> User: (query_sql,), ).fetchone() if user_query is None: - return None + return User("", "", "", "", "") user_id, password, email, phone = user_query return User(user_id, username, password, email, phone) diff --git a/src/backend/tests/test_userpage.py b/src/backend/tests/test_userpage.py index 82d161d22..70b476cc0 100644 --- a/src/backend/tests/test_userpage.py +++ b/src/backend/tests/test_userpage.py @@ -13,7 +13,7 @@ class TestUserPage: phone = "012-345-6789" password = "newpassword1234" email = "newemail@gmail.com" - userpage = None + userpage = UserPage(username) main_page_staging = MainPageStaging() @use_database @@ -48,14 +48,18 @@ def test_invalid_input(self): @use_test def test_get_user(self): - """get_user returns correct Use""" + """get_user returns correct User""" self.initialize() res = self.userpage.get_user(self.username) + print(res) assert res.username == self.username assert res.password == "beginpassword" assert res.email == "beginemail@gmail.com" assert res.phone == "111-555-0022" - assert self.userpage.get_user("sd") is None + assert ( + self.userpage.get_user("sd").email == "" + and self.userpage.get_user("sd").user_id == "" + ) self.test_cleanup_db() @use_test @@ -116,18 +120,18 @@ def test_get_liked(self): self.main_page_staging.initialize_all() connection = sqlite3.connect("database/database_test.db") cursor = connection.cursor() - minh_phan_id = cursor.execute( - "SELECT user_id FROM Users WHERE (username = 'Minh Phan')" + big_finger_id = cursor.execute( + "SELECT user_id FROM Users WHERE (username = 'Big_finger')" ).fetchone()[0] - sherman_id = cursor.execute( - "SELECT apt_id FROM Apartments WHERE (apt_name = 'Sherman')" + far_id = cursor.execute( + "SELECT apt_id FROM Apartments WHERE (apt_name = 'FAR')" ).fetchone()[0] - res = self.userpage.get_liked(minh_phan_id) + res = self.userpage.get_liked(big_finger_id) liked = [] - liked.append(Apt(sherman_id, "Sherman", "909 S 5th St", 0.333, 5500, 6500)) + liked.append(Apt(far_id, "FAR", "901 W College Ct", 1, 6000, 7000)) self.main_page_staging.clean_all() self.test_cleanup_db() - assert res == liked + assert res[1] == liked[0] @use_test def test_cleanup_db(self):