diff --git a/testing.py b/testing.py
index 7be2290..5a181ec 100644
--- a/testing.py
+++ b/testing.py
@@ -257,13 +257,9 @@ def test_sign_report():
     )
 
     response = requests.put(
-        addUserToProjectPath,
-        json={
-            "projectName": projectName,
-            "username": project_manager,
-            "role": "project_manager",
-        },
+        addUserToProjectPath + "/" + projectName,
         headers={"Authorization": "Bearer " + admin_token},
+        params={"userName": project_manager}
     )
     assert response.status_code == 200, "Add project manager to project failed"
     dprint("Project manager added to project successfully")
@@ -515,6 +511,58 @@ def test_get_unsigned_reports():
         assert response.status_code == 200, "Get unsigned reports failed"
         gprint("test_get_unsigned_reports successful")
 
+def test_get_other_users_report_as_pm():
+    # Create user
+    user = randomString()
+    register(user, "password")
+
+    # Create project
+    project = randomString()
+    pm_token = login(user, "password").json()["token"]
+    response = requests.post(
+        addProjectPath,
+        json={"name": project, "description": "This is a project"},
+        headers={"Authorization": "Bearer " + pm_token},
+    )
+    assert response.status_code == 200, "Add project failed"
+
+    # Create other user
+    other_user = randomString()
+    register(other_user, "password")
+    user_token = login(other_user, "password").json()["token"]
+
+    # Add other user to project
+    response = requests.put(
+        addUserToProjectPath + "/" + project,
+        headers={"Authorization": "Bearer " + pm_token}, # note pm_token
+        params={"userName": other_user},
+    )
+    assert response.status_code == 200, "Add user to project failed"
+
+    # Submit report as other user
+    response = requests.post(
+        submitReportPath,
+        json={
+            "projectName": project,
+            "week": 1,
+            "developmentTime": 10,
+            "meetingTime": 5,
+            "adminTime": 5,
+            "ownWorkTime": 10,
+            "studyTime": 10,
+            "testingTime": 10,
+        },
+        headers={"Authorization": "Bearer " + user_token},
+    )
+    assert response.status_code == 200, "Submit report failed"
+
+    # Get report as project manager
+    response = requests.get(
+        getWeeklyReportPath,
+        headers={"Authorization": "Bearer " + pm_token},
+        params={"targetUser": other_user, "projectName": project, "week": 1},
+    )
+    assert response.status_code == 200, "Get weekly report failed"
 
 if __name__ == "__main__":
     test_remove_project()
@@ -535,4 +583,5 @@ if __name__ == "__main__":
     test_list_all_users_project()
     test_change_user_name()
     test_update_weekly_report()
+    test_get_other_users_report_as_pm()
     
\ No newline at end of file