Polishing tests
This commit is contained in:
parent
7c973009ac
commit
903132e56d
2 changed files with 95 additions and 87 deletions
|
@ -1,6 +1,7 @@
|
||||||
import requests
|
import requests
|
||||||
import string
|
import string
|
||||||
import random
|
import random
|
||||||
|
import json
|
||||||
|
|
||||||
# Helper function for the TTime API testing suite
|
# Helper function for the TTime API testing suite
|
||||||
|
|
||||||
|
@ -34,7 +35,7 @@ getUpdateWeeklyReportPath = base_url + "/api/updateWeeklyReport"
|
||||||
removeProjectPath = base_url + "/api/removeProject"
|
removeProjectPath = base_url + "/api/removeProject"
|
||||||
promoteToPmPath = base_url + "/api/promoteToPm"
|
promoteToPmPath = base_url + "/api/promoteToPm"
|
||||||
|
|
||||||
debug_output = False
|
debug_output = True
|
||||||
|
|
||||||
|
|
||||||
def gprint(*args, **kwargs):
|
def gprint(*args, **kwargs):
|
||||||
|
@ -82,7 +83,9 @@ def register_and_login(username: string, password: string) -> string:
|
||||||
return response.json()["token"]
|
return response.json()["token"]
|
||||||
|
|
||||||
|
|
||||||
def create_project(token: string, project_name: string, description: string = "Test description"):
|
def create_project(
|
||||||
|
token: string, project_name: string, description: string = "Test description"
|
||||||
|
):
|
||||||
dprint("Creating project with name: ", project_name)
|
dprint("Creating project with name: ", project_name)
|
||||||
response = requests.post(
|
response = requests.post(
|
||||||
addProjectPath,
|
addProjectPath,
|
||||||
|
@ -119,3 +122,30 @@ def promoteToManager(token: string, username: string, project_name: string):
|
||||||
)
|
)
|
||||||
dprint(response.text)
|
dprint(response.text)
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
|
||||||
|
def submitReport(token: string, report):
|
||||||
|
dprint("Submitting report: ", report)
|
||||||
|
response = requests.post(
|
||||||
|
submitReportPath,
|
||||||
|
json=report,
|
||||||
|
headers={"Authorization": "Bearer " + token},
|
||||||
|
)
|
||||||
|
return response
|
||||||
|
|
||||||
|
|
||||||
|
def getReport(token: string, username: string, projectName: string):
|
||||||
|
# Retrieve the report ID
|
||||||
|
response = requests.get(
|
||||||
|
getWeeklyReportPath,
|
||||||
|
headers={"Authorization": "Bearer " + token},
|
||||||
|
params={"username": username, "projectName": projectName, "week": 1},
|
||||||
|
)
|
||||||
|
return response.json()
|
||||||
|
|
||||||
|
|
||||||
|
def signReport(project_manager_token: string, report_id: int):
|
||||||
|
return requests.put(
|
||||||
|
signReportPath + "/" + str(report_id),
|
||||||
|
headers={"Authorization": "Bearer " + project_manager_token},
|
||||||
|
)
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import requests
|
import requests
|
||||||
import string
|
|
||||||
|
|
||||||
# This modules contains helper functions for the tests
|
# This modules contains helper functions for the tests
|
||||||
from helpers import *
|
from helpers import *
|
||||||
|
@ -10,16 +9,15 @@ print("Running Tests...")
|
||||||
username = "user_" + randomString()
|
username = "user_" + randomString()
|
||||||
projectName = "project_" + randomString()
|
projectName = "project_" + randomString()
|
||||||
|
|
||||||
#ta bort auth i handlern för att få testet att gå igenom
|
|
||||||
|
# ta bort auth i handlern för att få testet att gå igenom
|
||||||
def test_ProjectRoleChange():
|
def test_ProjectRoleChange():
|
||||||
dprint("Testing ProjectRoleChange")
|
dprint("Testing ProjectRoleChange")
|
||||||
localUsername = randomString()
|
localUsername = randomString()
|
||||||
localProjectName = randomString()
|
localProjectName = randomString()
|
||||||
register(localUsername, "username_password")
|
register(localUsername, "username_password")
|
||||||
|
|
||||||
token = login(localUsername, "username_password").json()[
|
token = login(localUsername, "username_password").json()["token"]
|
||||||
"token"
|
|
||||||
]
|
|
||||||
|
|
||||||
# Just checking since this test is built somewhat differently than the others
|
# Just checking since this test is built somewhat differently than the others
|
||||||
assert token != None, "Login failed"
|
assert token != None, "Login failed"
|
||||||
|
@ -78,6 +76,7 @@ def test_create_user():
|
||||||
assert response.status_code == 200, "Registration failed"
|
assert response.status_code == 200, "Registration failed"
|
||||||
gprint("test_create_user successful")
|
gprint("test_create_user successful")
|
||||||
|
|
||||||
|
|
||||||
# Test function to add a project
|
# Test function to add a project
|
||||||
def test_add_project():
|
def test_add_project():
|
||||||
loginResponse = login(username, "always_same")
|
loginResponse = login(username, "always_same")
|
||||||
|
@ -91,6 +90,7 @@ def test_add_project():
|
||||||
assert response.status_code == 200, "Add project failed"
|
assert response.status_code == 200, "Add project failed"
|
||||||
gprint("test_add_project successful")
|
gprint("test_add_project successful")
|
||||||
|
|
||||||
|
|
||||||
# Test function to submit a report
|
# Test function to submit a report
|
||||||
def test_submit_report():
|
def test_submit_report():
|
||||||
token = login(username, "always_same").json()["token"]
|
token = login(username, "always_same").json()["token"]
|
||||||
|
@ -112,6 +112,7 @@ def test_submit_report():
|
||||||
assert response.status_code == 200, "Submit report failed"
|
assert response.status_code == 200, "Submit report failed"
|
||||||
gprint("test_submit_report successful")
|
gprint("test_submit_report successful")
|
||||||
|
|
||||||
|
|
||||||
# Test function to get a weekly report
|
# Test function to get a weekly report
|
||||||
def test_get_weekly_report():
|
def test_get_weekly_report():
|
||||||
token = login(username, "always_same").json()["token"]
|
token = login(username, "always_same").json()["token"]
|
||||||
|
@ -140,15 +141,15 @@ def test_get_project():
|
||||||
# Test function to add a user to a project
|
# Test function to add a user to a project
|
||||||
def test_add_user_to_project():
|
def test_add_user_to_project():
|
||||||
# User to create
|
# User to create
|
||||||
pm_user = "user"+randomString()
|
pm_user = "user" + randomString()
|
||||||
pm_passwd = "password"
|
pm_passwd = "password"
|
||||||
|
|
||||||
# User to add
|
# User to add
|
||||||
member_user = "member"+randomString()
|
member_user = "member" + randomString()
|
||||||
member_passwd = "password"
|
member_passwd = "password"
|
||||||
|
|
||||||
# Name of the project to be created
|
# Name of the project to be created
|
||||||
project_name = "project"+randomString()
|
project_name = "project" + randomString()
|
||||||
|
|
||||||
pm_token = register_and_login(pm_user, pm_passwd)
|
pm_token = register_and_login(pm_user, pm_passwd)
|
||||||
register(member_user, member_passwd)
|
register(member_user, member_passwd)
|
||||||
|
@ -160,51 +161,37 @@ def test_add_user_to_project():
|
||||||
response = addToProject(pm_token, member_user, project_name)
|
response = addToProject(pm_token, member_user, project_name)
|
||||||
assert response.status_code == 200, "Add user to project failed"
|
assert response.status_code == 200, "Add user to project failed"
|
||||||
|
|
||||||
|
|
||||||
# Test function to sign a report
|
# Test function to sign a report
|
||||||
def test_sign_report():
|
def test_sign_report():
|
||||||
# Create a project manager user
|
# Pm user
|
||||||
project_manager = randomString()
|
pm_username = "pm" + randomString()
|
||||||
register(project_manager, "project_manager_password")
|
pm_password = "admin_password2"
|
||||||
|
|
||||||
# Register an admin
|
# User to add
|
||||||
admin_username = randomString()
|
member_user = "member" + randomString()
|
||||||
admin_password = "admin_password2"
|
member_passwd = "password"
|
||||||
dprint(
|
|
||||||
"Registering with username: ", admin_username, " and password: ", admin_password
|
|
||||||
)
|
|
||||||
response = requests.post(
|
|
||||||
registerPath, json={"username": admin_username, "password": admin_password}
|
|
||||||
)
|
|
||||||
dprint(response.text)
|
|
||||||
|
|
||||||
# Log in as the admin
|
# Name of the project to be created
|
||||||
admin_token = login(admin_username, admin_password).json()["token"]
|
project_name = "project" + randomString()
|
||||||
response = requests.post(
|
|
||||||
promoteToAdminPath,
|
|
||||||
json={"username": admin_username},
|
|
||||||
headers={"Authorization": "Bearer " + admin_token},
|
|
||||||
)
|
|
||||||
|
|
||||||
response = requests.put(
|
# Register and get the tokens for both users
|
||||||
addUserToProjectPath + "/" + projectName,
|
pm_token = register_and_login(pm_username, pm_password)
|
||||||
headers={"Authorization": "Bearer " + admin_token},
|
member_token = register_and_login(member_user, member_passwd)
|
||||||
params={"userName": project_manager}
|
|
||||||
)
|
|
||||||
assert response.status_code == 200, "Add project manager to project failed"
|
|
||||||
dprint("Project manager added to project successfully")
|
|
||||||
|
|
||||||
# Log in as the project manager
|
# Create the project
|
||||||
project_manager_token = login(project_manager, "project_manager_password").json()[
|
response = create_project(pm_token, project_name)
|
||||||
"token"
|
assert response.status_code == 200, "Create project failed"
|
||||||
]
|
|
||||||
|
# Add the user to the project
|
||||||
|
response = addToProject(pm_token, member_user, project_name)
|
||||||
|
|
||||||
# Submit a report for the project
|
# Submit a report for the project
|
||||||
token = login(username, "always_same").json()["token"]
|
response = submitReport(
|
||||||
response = requests.post(
|
member_token,
|
||||||
submitReportPath,
|
{
|
||||||
json={
|
"projectName": project_name,
|
||||||
"projectName": projectName,
|
"week": 1,
|
||||||
"week": 2,
|
|
||||||
"developmentTime": 10,
|
"developmentTime": 10,
|
||||||
"meetingTime": 5,
|
"meetingTime": 5,
|
||||||
"adminTime": 5,
|
"adminTime": 5,
|
||||||
|
@ -212,37 +199,23 @@ def test_sign_report():
|
||||||
"studyTime": 10,
|
"studyTime": 10,
|
||||||
"testingTime": 10,
|
"testingTime": 10,
|
||||||
},
|
},
|
||||||
headers={"Authorization": "Bearer " + token},
|
|
||||||
)
|
)
|
||||||
assert response.status_code == 200, "Submit report failed"
|
assert response.status_code == 200, "Submit report failed"
|
||||||
dprint("Submit report successful")
|
|
||||||
|
|
||||||
# Retrieve the report ID
|
# Retrieve the report ID
|
||||||
response = requests.get(
|
report_id = getReport(member_token, member_user, project_name)["reportId"]
|
||||||
getWeeklyReportPath,
|
|
||||||
headers={"Authorization": "Bearer " + token},
|
|
||||||
params={"username": username, "projectName": projectName, "week": 1},
|
|
||||||
)
|
|
||||||
dprint(response.text)
|
|
||||||
report_id = response.json()["reportId"]
|
|
||||||
|
|
||||||
# Sign the report as the project manager
|
# Sign the report as the project manager
|
||||||
response = requests.put(
|
response = signReport(pm_token, report_id)
|
||||||
signReportPath + "/" + str(report_id),
|
|
||||||
headers={"Authorization": "Bearer " + project_manager_token},
|
|
||||||
)
|
|
||||||
assert response.status_code == 200, "Sign report failed"
|
assert response.status_code == 200, "Sign report failed"
|
||||||
dprint("Sign report successful")
|
dprint("Sign report successful")
|
||||||
|
|
||||||
# Retrieve the report ID again for confirmation
|
# Retrieve the report ID again for confirmation
|
||||||
response = requests.get(
|
report_id = getReport(member_token, member_user, project_name)["reportId"]
|
||||||
getWeeklyReportPath,
|
assert report_id != None, "Get report failed"
|
||||||
headers={"Authorization": "Bearer " + token},
|
|
||||||
params={"username": username, "projectName": projectName, "week": 1},
|
|
||||||
)
|
|
||||||
dprint(response.text)
|
|
||||||
gprint("test_sign_report successful")
|
gprint("test_sign_report successful")
|
||||||
|
|
||||||
|
|
||||||
# Test function to get weekly reports for a user in a project
|
# Test function to get weekly reports for a user in a project
|
||||||
def test_get_weekly_reports_user():
|
def test_get_weekly_reports_user():
|
||||||
# Log in as the user
|
# Log in as the user
|
||||||
|
@ -259,7 +232,6 @@ def test_get_weekly_reports_user():
|
||||||
gprint("test_get_weekly_reports_user successful")
|
gprint("test_get_weekly_reports_user successful")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Test function to check if a user is a project manager
|
# Test function to check if a user is a project manager
|
||||||
def test_check_if_project_manager():
|
def test_check_if_project_manager():
|
||||||
# Log in as the user
|
# Log in as the user
|
||||||
|
@ -275,6 +247,7 @@ def test_check_if_project_manager():
|
||||||
assert response.status_code == 200, "Check if project manager failed"
|
assert response.status_code == 200, "Check if project manager failed"
|
||||||
gprint("test_check_if_project_manager successful")
|
gprint("test_check_if_project_manager successful")
|
||||||
|
|
||||||
|
|
||||||
def test_ensure_manager_of_created_project():
|
def test_ensure_manager_of_created_project():
|
||||||
# Create a new user to add to the project
|
# Create a new user to add to the project
|
||||||
newUser = "karen_" + randomString()
|
newUser = "karen_" + randomString()
|
||||||
|
@ -298,6 +271,7 @@ def test_ensure_manager_of_created_project():
|
||||||
assert response.json()["isProjectManager"] == True, "User is not project manager"
|
assert response.json()["isProjectManager"] == True, "User is not project manager"
|
||||||
gprint("test_ensure_admin_of_created_project successful")
|
gprint("test_ensure_admin_of_created_project successful")
|
||||||
|
|
||||||
|
|
||||||
def test_change_user_name():
|
def test_change_user_name():
|
||||||
# Register a new user
|
# Register a new user
|
||||||
new_user = randomString()
|
new_user = randomString()
|
||||||
|
@ -335,6 +309,7 @@ def test_change_user_name():
|
||||||
assert response.status_code == 200, "Change user name failed"
|
assert response.status_code == 200, "Change user name failed"
|
||||||
gprint("test_change_user_name successful")
|
gprint("test_change_user_name successful")
|
||||||
|
|
||||||
|
|
||||||
def test_list_all_users_project():
|
def test_list_all_users_project():
|
||||||
# Log in as a user who is a member of the project
|
# Log in as a user who is a member of the project
|
||||||
admin_username = randomString()
|
admin_username = randomString()
|
||||||
|
@ -363,6 +338,7 @@ def test_list_all_users_project():
|
||||||
assert response.status_code == 200, "List all users project failed"
|
assert response.status_code == 200, "List all users project failed"
|
||||||
gprint("test_list_all_users_project sucessful")
|
gprint("test_list_all_users_project sucessful")
|
||||||
|
|
||||||
|
|
||||||
def test_update_weekly_report():
|
def test_update_weekly_report():
|
||||||
# Log in as the user
|
# Log in as the user
|
||||||
token = login(username, "always_same").json()["token"]
|
token = login(username, "always_same").json()["token"]
|
||||||
|
@ -428,17 +404,19 @@ def test_remove_project():
|
||||||
assert response.status_code == 200, "Remove project failed"
|
assert response.status_code == 200, "Remove project failed"
|
||||||
gprint("test_remove_project successful")
|
gprint("test_remove_project successful")
|
||||||
|
|
||||||
|
|
||||||
def test_get_unsigned_reports():
|
def test_get_unsigned_reports():
|
||||||
# Log in as the user
|
# Log in as the user
|
||||||
token = login("user2", "123").json()["token"]
|
token = login("user2", "123").json()["token"]
|
||||||
|
|
||||||
|
# Make a request to get all unsigned reports
|
||||||
|
response = requests.get(
|
||||||
|
getUnsignedReportsPath + "/" + projectName,
|
||||||
|
headers={"Authorization": "Bearer " + token},
|
||||||
|
)
|
||||||
|
assert response.status_code == 200, "Get unsigned reports failed"
|
||||||
|
gprint("test_get_unsigned_reports successful")
|
||||||
|
|
||||||
# Make a request to get all unsigned reports
|
|
||||||
response = requests.get(
|
|
||||||
getUnsignedReportsPath + "/" + projectName,
|
|
||||||
headers={"Authorization": "Bearer " + token},
|
|
||||||
)
|
|
||||||
assert response.status_code == 200, "Get unsigned reports failed"
|
|
||||||
gprint("test_get_unsigned_reports successful")
|
|
||||||
|
|
||||||
def test_get_other_users_report_as_pm():
|
def test_get_other_users_report_as_pm():
|
||||||
# Create user
|
# Create user
|
||||||
|
@ -463,7 +441,7 @@ def test_get_other_users_report_as_pm():
|
||||||
# Add other user to project
|
# Add other user to project
|
||||||
response = requests.put(
|
response = requests.put(
|
||||||
addUserToProjectPath + "/" + project,
|
addUserToProjectPath + "/" + project,
|
||||||
headers={"Authorization": "Bearer " + pm_token}, # note pm_token
|
headers={"Authorization": "Bearer " + pm_token}, # note pm_token
|
||||||
params={"userName": other_user},
|
params={"userName": other_user},
|
||||||
)
|
)
|
||||||
assert response.status_code == 200, "Add user to project failed"
|
assert response.status_code == 200, "Add user to project failed"
|
||||||
|
@ -493,17 +471,18 @@ def test_get_other_users_report_as_pm():
|
||||||
)
|
)
|
||||||
assert response.status_code == 200, "Get weekly report failed"
|
assert response.status_code == 200, "Get weekly report failed"
|
||||||
|
|
||||||
|
|
||||||
def test_promote_to_manager():
|
def test_promote_to_manager():
|
||||||
# User to create
|
# User to create
|
||||||
pm_user = "user"+randomString()
|
pm_user = "user" + randomString()
|
||||||
pm_passwd = "password"
|
pm_passwd = "password"
|
||||||
|
|
||||||
# User to promote
|
# User to promote
|
||||||
member_user = "member"+randomString()
|
member_user = "member" + randomString()
|
||||||
member_passwd = "password"
|
member_passwd = "password"
|
||||||
|
|
||||||
# Name of the project to be created
|
# Name of the project to be created
|
||||||
project_name = "project"+randomString()
|
project_name = "project" + randomString()
|
||||||
|
|
||||||
pm_token = register_and_login(pm_user, pm_passwd)
|
pm_token = register_and_login(pm_user, pm_passwd)
|
||||||
member_token = register_and_login(member_user, member_passwd)
|
member_token = register_and_login(member_user, member_passwd)
|
||||||
|
@ -526,7 +505,7 @@ if __name__ == "__main__":
|
||||||
test_submit_report()
|
test_submit_report()
|
||||||
test_get_weekly_report()
|
test_get_weekly_report()
|
||||||
test_get_project()
|
test_get_project()
|
||||||
#test_sign_report()
|
test_sign_report()
|
||||||
test_add_user_to_project()
|
test_add_user_to_project()
|
||||||
test_get_weekly_reports_user()
|
test_get_weekly_reports_user()
|
||||||
test_check_if_project_manager()
|
test_check_if_project_manager()
|
||||||
|
@ -537,4 +516,3 @@ if __name__ == "__main__":
|
||||||
test_change_user_name()
|
test_change_user_name()
|
||||||
test_update_weekly_report()
|
test_update_weekly_report()
|
||||||
test_get_other_users_report_as_pm()
|
test_get_other_users_report_as_pm()
|
||||||
|
|
Loading…
Reference in a new issue