Very large changes related to database and its interface
This commit is contained in:
parent
22f4fba36a
commit
cdea2dce1c
5 changed files with 179 additions and 148 deletions
|
@ -40,8 +40,6 @@ type Database interface {
|
|||
IsSiteAdmin(username string) (bool, error)
|
||||
IsProjectManager(username string, projectname string) (bool, error)
|
||||
GetTotalTimePerActivity(projectName string) (map[string]int, error)
|
||||
|
||||
|
||||
}
|
||||
|
||||
// This struct is a wrapper type that holds the database connection
|
||||
|
@ -63,14 +61,16 @@ var sampleData embed.FS
|
|||
|
||||
// TODO: Possibly break these out into separate files bundled with the embed package?
|
||||
const userInsert = "INSERT INTO users (username, password) VALUES (?, ?)"
|
||||
const projectInsert = "INSERT INTO projects (name, description, owner_user_id) SELECT ?, ?, id FROM users WHERE username = ?"
|
||||
const projectInsert = "INSERT INTO projects (name, description, owner_user_id) VALUES (?, ?, (SELECT id FROM users WHERE username = ?))"
|
||||
const promoteToAdmin = "INSERT INTO site_admin (admin_id) SELECT id FROM users WHERE username = ?"
|
||||
const addWeeklyReport = `WITH UserLookup AS (SELECT id FROM users WHERE username = ?),
|
||||
ProjectLookup AS (SELECT id FROM projects WHERE name = ?)
|
||||
INSERT INTO weekly_reports (project_id, user_id, week, development_time, meeting_time, admin_time, own_work_time, study_time, testing_time)
|
||||
VALUES ((SELECT id FROM ProjectLookup), (SELECT id FROM UserLookup),?, ?, ?, ?, ?, ?, ?);`
|
||||
const addUserToProject = "INSERT INTO user_roles (user_id, project_id, p_role) VALUES (?, ?, ?)"
|
||||
const changeUserRole = "UPDATE user_roles SET p_role = ? WHERE user_id = ? AND project_id = ?"
|
||||
const addUserToProject = `INSERT OR IGNORE INTO user_roles (user_id, project_id, p_role)
|
||||
VALUES ((SELECT id FROM users WHERE username = ?),
|
||||
(SELECT id FROM projects WHERE name = ?), ?)`
|
||||
const changeUserRole = "UPDATE user_roles SET p_role = ? WHERE user_id = (SELECT id FROM users WHERE username = ?) AND project_id = (SELECT id FROM projects WHERE name = ?)"
|
||||
const getProjectsForUser = `SELECT p.id, p.name, p.description FROM projects p
|
||||
JOIN user_roles ur ON p.id = ur.project_id
|
||||
JOIN users u ON ur.user_id = u.id
|
||||
|
@ -78,6 +78,11 @@ const getProjectsForUser = `SELECT p.id, p.name, p.description FROM projects p
|
|||
const deleteProject = `DELETE FROM projects
|
||||
WHERE id = ? AND owner_username = ?`
|
||||
|
||||
const isProjectManagerQuery = `SELECT COUNT(*) > 0 FROM user_roles
|
||||
JOIN users ON user_roles.user_id = users.id
|
||||
JOIN projects ON user_roles.project_id = projects.id
|
||||
WHERE users.username = ? AND projects.name = ? AND user_roles.p_role = 'project_manager'`
|
||||
|
||||
// DbConnect connects to the database
|
||||
func DbConnect(dbpath string) Database {
|
||||
// Open the database
|
||||
|
@ -135,41 +140,15 @@ func (d *Db) AddWeeklyReport(projectName string, userName string, week int, deve
|
|||
|
||||
// AddUserToProject adds a user to a project with a specified role.
|
||||
func (d *Db) AddUserToProject(username string, projectname string, role string) error {
|
||||
var userid int
|
||||
userid, err := d.GetUserId(username)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
var projectid int
|
||||
projectid, err2 := d.GetProjectId(projectname)
|
||||
if err2 != nil {
|
||||
panic(err2)
|
||||
}
|
||||
|
||||
_, err3 := d.Exec(addUserToProject, userid, projectid, role)
|
||||
return err3
|
||||
_, err := d.Exec(addUserToProject, username, projectname, role)
|
||||
return err
|
||||
}
|
||||
|
||||
// ChangeUserRole changes the role of a user within a project.
|
||||
func (d *Db) ChangeUserRole(username string, projectname string, role string) error {
|
||||
// Get the user ID
|
||||
var userid int
|
||||
userid, err := d.GetUserId(username)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
// Get the project ID
|
||||
var projectid int
|
||||
projectid, err2 := d.GetProjectId(projectname)
|
||||
if err2 != nil {
|
||||
panic(err2)
|
||||
}
|
||||
|
||||
// Execute the SQL query to change the user's role
|
||||
_, err3 := d.Exec(changeUserRole, role, userid, projectid)
|
||||
return err3
|
||||
_, err := d.Exec(changeUserRole, role, username, projectname)
|
||||
return err
|
||||
}
|
||||
|
||||
// ChangeUserName changes the username of a user.
|
||||
|
@ -218,6 +197,7 @@ func (d *Db) GetProjectId(projectname string) (int, error) {
|
|||
// Creates a new project in the database, associated with a user
|
||||
func (d *Db) AddProject(name string, description string, username string) error {
|
||||
tx := d.MustBegin()
|
||||
// Insert the project into the database
|
||||
_, err := tx.Exec(projectInsert, name, description, username)
|
||||
if err != nil {
|
||||
if err := tx.Rollback(); err != nil {
|
||||
|
@ -225,7 +205,9 @@ func (d *Db) AddProject(name string, description string, username string) error
|
|||
}
|
||||
return err
|
||||
}
|
||||
_, err = tx.Exec(changeUserRole, "project_manager", username, name)
|
||||
|
||||
// Add creator to project as project manager
|
||||
_, err = tx.Exec(addUserToProject, username, name, "project_manager")
|
||||
if err != nil {
|
||||
if err := tx.Rollback(); err != nil {
|
||||
return err
|
||||
|
@ -465,23 +447,9 @@ func (d *Db) GetWeeklyReportsUser(username string, projectName string) ([]types.
|
|||
|
||||
// IsProjectManager checks if a given username is a project manager for the specified project
|
||||
func (d *Db) IsProjectManager(username string, projectname string) (bool, error) {
|
||||
// Define the SQL query to check if the user is a project manager for the project
|
||||
query := `
|
||||
SELECT COUNT(*) FROM user_roles
|
||||
JOIN users ON user_roles.user_id = users.id
|
||||
JOIN projects ON user_roles.project_id = projects.id
|
||||
WHERE users.username = ? AND projects.name = ? AND user_roles.p_role = 'project_manager'
|
||||
`
|
||||
|
||||
// Execute the query
|
||||
var count int
|
||||
err := d.Get(&count, query, username, projectname)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
||||
// If count is greater than 0, the user is a project manager for the project
|
||||
return count > 0, nil
|
||||
var manager bool
|
||||
err := d.Get(&manager, isProjectManagerQuery, username, projectname)
|
||||
return manager, err
|
||||
}
|
||||
|
||||
// MigrateSampleData applies sample data to the database.
|
||||
|
@ -525,38 +493,38 @@ func (d *Db) MigrateSampleData() error {
|
|||
|
||||
func (d *Db) GetTotalTimePerActivity(projectName string) (map[string]int, error) {
|
||||
|
||||
query := `
|
||||
query := `
|
||||
SELECT development_time, meeting_time, admin_time, own_work_time, study_time, testing_time
|
||||
FROM weekly_reports
|
||||
JOIN projects ON weekly_reports.project_id = projects.id
|
||||
WHERE projects.name = ?
|
||||
`
|
||||
|
||||
rows, err := d.DB.Query(query, projectName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
rows, err := d.DB.Query(query, projectName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
totalTime := make(map[string]int)
|
||||
totalTime := make(map[string]int)
|
||||
|
||||
for rows.Next() {
|
||||
var developmentTime, meetingTime, adminTime, ownWorkTime, studyTime, testingTime int
|
||||
if err := rows.Scan(&developmentTime, &meetingTime, &adminTime, &ownWorkTime, &studyTime, &testingTime); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for rows.Next() {
|
||||
var developmentTime, meetingTime, adminTime, ownWorkTime, studyTime, testingTime int
|
||||
if err := rows.Scan(&developmentTime, &meetingTime, &adminTime, &ownWorkTime, &studyTime, &testingTime); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
totalTime["development"] += developmentTime
|
||||
totalTime["meeting"] += meetingTime
|
||||
totalTime["admin"] += adminTime
|
||||
totalTime["own_work"] += ownWorkTime
|
||||
totalTime["study"] += studyTime
|
||||
totalTime["testing"] += testingTime
|
||||
}
|
||||
totalTime["development"] += developmentTime
|
||||
totalTime["meeting"] += meetingTime
|
||||
totalTime["admin"] += adminTime
|
||||
totalTime["own_work"] += ownWorkTime
|
||||
totalTime["study"] += studyTime
|
||||
totalTime["testing"] += testingTime
|
||||
}
|
||||
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return totalTime, nil
|
||||
return totalTime, nil
|
||||
}
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package database
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"testing"
|
||||
)
|
||||
|
||||
|
@ -17,12 +16,61 @@ func setupState() (Database, error) {
|
|||
return db, nil
|
||||
}
|
||||
|
||||
// This is a more advanced setup that includes more data in the database.
|
||||
// This is useful for more complex testing scenarios.
|
||||
func setupAdvancedState() (Database, error) {
|
||||
db, err := setupState()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Add a user
|
||||
if err = db.AddUser("demouser", "password"); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Add a project
|
||||
if err = db.AddProject("projecttest", "description", "demouser"); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Add a weekly report
|
||||
if err = db.AddWeeklyReport("projecttest", "demouser", 1, 1, 1, 1, 1, 1, 1); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return db, nil
|
||||
}
|
||||
|
||||
// TestDbConnect tests the connection to the database
|
||||
func TestDbConnect(t *testing.T) {
|
||||
db := DbConnect(":memory:")
|
||||
_ = db
|
||||
}
|
||||
|
||||
func TestSetupAdvancedState(t *testing.T) {
|
||||
db, err := setupAdvancedState()
|
||||
if err != nil {
|
||||
t.Error("setupAdvancedState failed:", err)
|
||||
}
|
||||
|
||||
// Check if the user was added
|
||||
if _, err = db.GetUserId("demouser"); err != nil {
|
||||
t.Error("GetUserId failed:", err)
|
||||
}
|
||||
|
||||
// Check if the project was added
|
||||
projects, err := db.GetAllProjects()
|
||||
if err != nil {
|
||||
t.Error("GetAllProjects failed:", err)
|
||||
}
|
||||
if len(projects) != 1 {
|
||||
t.Error("GetAllProjects failed: expected 1, got", len(projects))
|
||||
}
|
||||
|
||||
// To be continued...
|
||||
}
|
||||
|
||||
// TestDbAddUser tests the AddUser function of the database
|
||||
func TestDbAddUser(t *testing.T) {
|
||||
db, err := setupState()
|
||||
|
@ -58,12 +106,12 @@ func TestDbGetUserId(t *testing.T) {
|
|||
|
||||
// TestDbAddProject tests the AddProject function of the database
|
||||
func TestDbAddProject(t *testing.T) {
|
||||
db, err := setupState()
|
||||
db, err := setupAdvancedState()
|
||||
if err != nil {
|
||||
t.Error("setupState failed:", err)
|
||||
}
|
||||
|
||||
err = db.AddProject("test", "description", "test")
|
||||
err = db.AddProject("test", "description", "demouser")
|
||||
if err != nil {
|
||||
t.Error("AddProject failed:", err)
|
||||
}
|
||||
|
@ -168,20 +216,15 @@ func TestChangeUserRole(t *testing.T) {
|
|||
t.Error("AddProject failed:", err)
|
||||
}
|
||||
|
||||
err = db.AddUserToProject("testuser", "testproject", "user")
|
||||
if err != nil {
|
||||
t.Error("AddUserToProject failed:", err)
|
||||
}
|
||||
|
||||
role, err := db.GetUserRole("testuser", "testproject")
|
||||
if err != nil {
|
||||
t.Error("GetUserRole failed:", err)
|
||||
}
|
||||
if role != "user" {
|
||||
t.Error("GetUserRole failed: expected user, got", role)
|
||||
if role != "project_manager" {
|
||||
t.Error("GetUserRole failed: expected project_manager, got", role)
|
||||
}
|
||||
|
||||
err = db.ChangeUserRole("testuser", "testproject", "admin")
|
||||
err = db.ChangeUserRole("testuser", "testproject", "member")
|
||||
if err != nil {
|
||||
t.Error("ChangeUserRole failed:", err)
|
||||
}
|
||||
|
@ -190,8 +233,8 @@ func TestChangeUserRole(t *testing.T) {
|
|||
if err != nil {
|
||||
t.Error("GetUserRole failed:", err)
|
||||
}
|
||||
if role != "admin" {
|
||||
t.Error("GetUserRole failed: expected admin, got", role)
|
||||
if role != "member" {
|
||||
t.Error("GetUserRole failed: expected member, got", role)
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -480,7 +523,6 @@ func TestSignWeeklyReport(t *testing.T) {
|
|||
if err != nil {
|
||||
t.Error("GetUserId failed:", err)
|
||||
}
|
||||
fmt.Println("Project Manager's ID:", projectManagerID)
|
||||
|
||||
// Sign the report with the project manager
|
||||
err = db.SignWeeklyReport(report.ReportId, projectManagerID)
|
||||
|
@ -519,7 +561,7 @@ func TestSignWeeklyReportByAnotherProjectManager(t *testing.T) {
|
|||
t.Error("AddUser failed:", err)
|
||||
}
|
||||
|
||||
// Add project
|
||||
// Add project, projectManager is the owner
|
||||
err = db.AddProject("testproject", "description", "projectManager")
|
||||
if err != nil {
|
||||
t.Error("AddProject failed:", err)
|
||||
|
@ -543,14 +585,25 @@ func TestSignWeeklyReportByAnotherProjectManager(t *testing.T) {
|
|||
t.Error("GetWeeklyReport failed:", err)
|
||||
}
|
||||
|
||||
anotherManagerID, err := db.GetUserId("projectManager")
|
||||
managerID, err := db.GetUserId("projectManager")
|
||||
if err != nil {
|
||||
t.Error("GetUserId failed:", err)
|
||||
}
|
||||
|
||||
err = db.SignWeeklyReport(report.ReportId, anotherManagerID)
|
||||
if err == nil {
|
||||
t.Error("Expected SignWeeklyReport to fail with a project manager who is not in the project, but it didn't")
|
||||
err = db.SignWeeklyReport(report.ReportId, managerID)
|
||||
if err != nil {
|
||||
t.Error("SignWeeklyReport failed:", err)
|
||||
}
|
||||
|
||||
// Retrieve the report again to check if it's signed
|
||||
signedReport, err := db.GetWeeklyReport("testuser", "testproject", 1)
|
||||
if err != nil {
|
||||
t.Error("GetWeeklyReport failed:", err)
|
||||
}
|
||||
|
||||
// Ensure the report is signed by the project manager
|
||||
if *signedReport.SignedBy != managerID {
|
||||
t.Errorf("Expected SignedBy to be %d, got %d", managerID, *signedReport.SignedBy)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -715,6 +768,12 @@ func TestEnsureManagerOfCreatedProject(t *testing.T) {
|
|||
t.Error("AddProject failed:", err)
|
||||
}
|
||||
|
||||
// Set user to a project manager
|
||||
// err = db.AddUserToProject("testuser", "testproject", "project_manager")
|
||||
// if err != nil {
|
||||
// t.Error("AddUserToProject failed:", err)
|
||||
// }
|
||||
|
||||
managerState, err := db.IsProjectManager("testuser", "testproject")
|
||||
if err != nil {
|
||||
t.Error("IsProjectManager failed:", err)
|
||||
|
|
|
@ -65,8 +65,8 @@ func (gs *GState) ProjectRoleChange(c *fiber.Ctx) error {
|
|||
//check token and get username of current user
|
||||
user := c.Locals("user").(*jwt.Token)
|
||||
claims := user.Claims.(jwt.MapClaims)
|
||||
projectManagerUsername := claims["name"].(string)
|
||||
log.Info(projectManagerUsername)
|
||||
username := claims["name"].(string)
|
||||
|
||||
// Extract the necessary parameters from the request
|
||||
data := new(types.RoleChange)
|
||||
if err := c.BodyParser(data); err != nil {
|
||||
|
@ -74,18 +74,19 @@ func (gs *GState) ProjectRoleChange(c *fiber.Ctx) error {
|
|||
return c.Status(400).SendString(err.Error())
|
||||
}
|
||||
|
||||
// dubble diping and checcking if current user is
|
||||
log.Info("Changing role for user: ", username, " in project: ", data.Projectname, " to: ", data.Role)
|
||||
|
||||
if ismanager, err := gs.Db.IsProjectManager(projectManagerUsername, data.Projectname); err != nil {
|
||||
// Dubble diping and checcking if current user is
|
||||
if ismanager, err := gs.Db.IsProjectManager(username, data.Projectname); err != nil {
|
||||
log.Warn("Error checking if projectmanager:", err)
|
||||
return c.Status(500).SendString(err.Error())
|
||||
} else if !ismanager {
|
||||
log.Warn("tried chaning role when not projectmanager:", err)
|
||||
return c.Status(401).SendString("you can not change role when not projectManager")
|
||||
log.Warn("User is not projectmanager")
|
||||
return c.Status(401).SendString("User is not projectmanager")
|
||||
}
|
||||
|
||||
// Change the user's role within the project in the database
|
||||
if err := gs.Db.ChangeUserRole(data.Username, data.Projectname, data.Role); err != nil {
|
||||
if err := gs.Db.ChangeUserRole(username, data.Projectname, data.Role); err != nil {
|
||||
return c.Status(500).SendString(err.Error())
|
||||
}
|
||||
|
||||
|
@ -218,7 +219,9 @@ func (gs *GState) IsProjectManagerHandler(c *fiber.Ctx) error {
|
|||
username := claims["name"].(string)
|
||||
|
||||
// Extract necessary parameters from the request query string
|
||||
projectName := c.Query("projectName")
|
||||
projectName := c.Params("projectName")
|
||||
|
||||
log.Info("Checking if user ", username, " is a project manager for project ", projectName)
|
||||
|
||||
// Check if the user is a project manager for the specified project
|
||||
isManager, err := gs.Db.IsProjectManager(username, projectName)
|
||||
|
@ -228,10 +231,5 @@ func (gs *GState) IsProjectManagerHandler(c *fiber.Ctx) error {
|
|||
}
|
||||
|
||||
// Return the result as JSON
|
||||
return c.JSON(map[string]bool{"isProjectManager": isManager})
|
||||
}
|
||||
|
||||
func (gs *GState) CreateTask(c *fiber.Ctx) error {
|
||||
|
||||
return nil
|
||||
return c.JSON(fiber.Map{"isProjectManager": isManager})
|
||||
}
|
||||
|
|
|
@ -14,9 +14,12 @@ type NewProject struct {
|
|||
Description string `json:"description"`
|
||||
}
|
||||
|
||||
// Used to change the role of a user in a project.
|
||||
// If name is identical to the name contained in the token, the role can be changed.
|
||||
// If the name is different, only a project manager can change the role.
|
||||
type RoleChange struct {
|
||||
UserName string `json:"username"`
|
||||
Role string `json:"role" tstype:"'project_manager' | 'user'"`
|
||||
Username string `json:"username"`
|
||||
Projectname string `json:"projectname"`
|
||||
}
|
||||
|
||||
|
|
71
testing.py
71
testing.py
|
@ -20,8 +20,8 @@ def randomString(len=10):
|
|||
|
||||
|
||||
# Defined once per test run
|
||||
username = randomString()
|
||||
projectName = randomString()
|
||||
username = "user_" + randomString()
|
||||
projectName = "project_" + randomString()
|
||||
|
||||
# The base URL of the API
|
||||
base_url = "http://localhost:8080"
|
||||
|
@ -45,30 +45,37 @@ getUsersProjectPath = base_url + "/api/getUsersProject"
|
|||
#ta bort auth i handlern för att få testet att gå igenom
|
||||
def test_ProjectRoleChange():
|
||||
dprint("Testing ProjectRoleChange")
|
||||
project_manager = randomString()
|
||||
register(project_manager, "project_manager_password")
|
||||
localUsername = randomString()
|
||||
localProjectName = randomString()
|
||||
register(localUsername, "username_password")
|
||||
|
||||
token = login(project_manager, "project_manager_password").json()[
|
||||
token = login(localUsername, "username_password").json()[
|
||||
"token"
|
||||
]
|
||||
|
||||
# Just checking since this test is built somewhat differently than the others
|
||||
assert token != None, "Login failed"
|
||||
|
||||
response = requests.post(
|
||||
addProjectPath,
|
||||
json={"name": projectName, "description": "This is a project"},
|
||||
json={"name": localProjectName, "description": "This is a project"},
|
||||
headers={"Authorization": "Bearer " + token},
|
||||
)
|
||||
|
||||
if response.status_code != 200:
|
||||
print("Add project failed")
|
||||
|
||||
response = requests.post(
|
||||
ProjectRoleChangePath,
|
||||
headers={"Authorization": "Bearer " + token},
|
||||
json={
|
||||
"username": username,
|
||||
"projectName": projectName,
|
||||
"week": 1
|
||||
"projectName": localProjectName,
|
||||
"role": "project_manager",
|
||||
},
|
||||
)
|
||||
if response.status_code != 200:
|
||||
print("auth not working, för att man inte kan få tag på pm token atm, för att få igenom det så ta bort auth i handler")
|
||||
|
||||
assert response.status_code == 200, "change role successfully"
|
||||
assert response.status_code == 200, "ProjectRoleChange failed"
|
||||
gprint("test_ProjectRoleChange successful")
|
||||
|
||||
|
||||
def test_get_user_projects():
|
||||
|
@ -337,33 +344,28 @@ def test_check_if_project_manager():
|
|||
assert response.status_code == 200, "Check if project manager failed"
|
||||
gprint("test_check_if_project_manager successful")
|
||||
|
||||
def test_list_all_users_project():
|
||||
# Log in as a user who is a member of the project
|
||||
admin_username = randomString()
|
||||
admin_password = "admin_password2"
|
||||
dprint(
|
||||
"Registering with username: ", admin_username, " and password: ", admin_password
|
||||
)
|
||||
response = requests.post(
|
||||
registerPath, json={"username": admin_username, "password": admin_password}
|
||||
)
|
||||
dprint(response.text)
|
||||
def test_ensure_manager_of_created_project():
|
||||
# Create a new user to add to the project
|
||||
newUser = "karen_" + randomString()
|
||||
newProject = "HR_" + randomString()
|
||||
register(newUser, "new_user_password")
|
||||
token = login(newUser, "new_user_password").json()["token"]
|
||||
|
||||
# Log in as the admin
|
||||
admin_token = login(admin_username, admin_password).json()["token"]
|
||||
# Create a new project
|
||||
response = requests.post(
|
||||
promoteToAdminPath,
|
||||
json={"username": admin_username},
|
||||
headers={"Authorization": "Bearer " + admin_token},
|
||||
addProjectPath,
|
||||
json={"name": newProject, "description": "This is a project"},
|
||||
headers={"Authorization": "Bearer " + token},
|
||||
)
|
||||
assert response.status_code == 200, "Add project failed"
|
||||
|
||||
# Make a request to list all users associated with the project
|
||||
response = requests.get(
|
||||
getUsersProjectPath + "/" + projectName,
|
||||
headers={"Authorization": "Bearer " + admin_token},
|
||||
checkIfProjectManagerPath + "/" + newProject,
|
||||
headers={"Authorization": "Bearer " + token},
|
||||
)
|
||||
assert response.status_code == 200, "List all users project failed"
|
||||
gprint("test_list_all_users_project sucessful")
|
||||
assert response.status_code == 200, "Check if project manager failed"
|
||||
assert response.json()["isProjectManager"] == True, "User is not project manager"
|
||||
gprint("test_ensure_admin_of_created_project successful")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
@ -379,4 +381,5 @@ if __name__ == "__main__":
|
|||
test_get_weekly_reports_user()
|
||||
test_check_if_project_manager()
|
||||
test_ProjectRoleChange()
|
||||
test_list_all_users_project()
|
||||
#test_list_all_users_project()
|
||||
test_ensure_manager_of_created_project()
|
||||
|
|
Loading…
Reference in a new issue