Compare commits
	
		
			No commits in common. "dbb2ff84e56ae60f0d1bba64e1487e0e7d605e02" and "2e44d1437023411d7458b7ee2ad40dbe76db665d" have entirely different histories.
		
	
	
		
			dbb2ff84e5
			...
			2e44d14370
		
	
		
					 3 changed files with 12 additions and 42 deletions
				
			
		| 
						 | 
					@ -267,14 +267,6 @@ func (gs *GState) SubmitWeeklyReport(c *fiber.Ctx) error {
 | 
				
			||||||
		return c.Status(400).SendString(err.Error())
 | 
							return c.Status(400).SendString(err.Error())
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Make sure all the fields of the report are valid
 | 
					 | 
				
			||||||
	if report.Week < 1 || report.Week > 52 {
 | 
					 | 
				
			||||||
		return c.Status(400).SendString("Invalid week number")
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if report.DevelopmentTime < 0 || report.MeetingTime < 0 || report.AdminTime < 0 || report.OwnWorkTime < 0 || report.StudyTime < 0 || report.TestingTime < 0 {
 | 
					 | 
				
			||||||
		return c.Status(400).SendString("Invalid time report")
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if err := gs.Db.AddWeeklyReport(report.ProjectName, username, report.Week, report.DevelopmentTime, report.MeetingTime, report.AdminTime, report.OwnWorkTime, report.StudyTime, report.TestingTime); err != nil {
 | 
						if err := gs.Db.AddWeeklyReport(report.ProjectName, username, report.Week, report.DevelopmentTime, report.MeetingTime, report.AdminTime, report.OwnWorkTime, report.StudyTime, report.TestingTime); err != nil {
 | 
				
			||||||
		return c.Status(500).SendString(err.Error())
 | 
							return c.Status(500).SendString(err.Error())
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,19 +3,19 @@ package types
 | 
				
			||||||
// This is what should be submitted to the server, the username will be derived from the JWT token
 | 
					// This is what should be submitted to the server, the username will be derived from the JWT token
 | 
				
			||||||
type NewWeeklyReport struct {
 | 
					type NewWeeklyReport struct {
 | 
				
			||||||
	// The name of the project, as it appears in the database
 | 
						// The name of the project, as it appears in the database
 | 
				
			||||||
	ProjectName string `json:"projectName"`
 | 
						ProjectName string
 | 
				
			||||||
	// The week number
 | 
						// The week number
 | 
				
			||||||
	Week int `json:"week"`
 | 
						Week int
 | 
				
			||||||
	// Total time spent on development
 | 
						// Total time spent on development
 | 
				
			||||||
	DevelopmentTime int `json:"developmentTime"`
 | 
						DevelopmentTime int
 | 
				
			||||||
	// Total time spent in meetings
 | 
						// Total time spent in meetings
 | 
				
			||||||
	MeetingTime int `json:"meetingTime"`
 | 
						MeetingTime int
 | 
				
			||||||
	// Total time spent on administrative tasks
 | 
						// Total time spent on administrative tasks
 | 
				
			||||||
	AdminTime int `json:"adminTime"`
 | 
						AdminTime int
 | 
				
			||||||
	// Total time spent on personal projects
 | 
						// Total time spent on personal projects
 | 
				
			||||||
	OwnWorkTime int `json:"ownWorkTime"`
 | 
						OwnWorkTime int
 | 
				
			||||||
	// Total time spent on studying
 | 
						// Total time spent on studying
 | 
				
			||||||
	StudyTime int `json:"studyTime"`
 | 
						StudyTime int
 | 
				
			||||||
	// Total time spent on testing
 | 
						// Total time spent on testing
 | 
				
			||||||
	TestingTime int `json:"testingTime"`
 | 
						TestingTime int
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										30
									
								
								testing.py
									
										
									
									
									
								
							
							
						
						
									
										30
									
								
								testing.py
									
										
									
									
									
								
							| 
						 | 
					@ -11,7 +11,7 @@ def randomString(len=10):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Defined once per test run
 | 
					# Defined once per test run
 | 
				
			||||||
username = randomString()
 | 
					username = randomString()
 | 
				
			||||||
projectName = randomString()
 | 
					token = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# The base URL of the API
 | 
					# The base URL of the API
 | 
				
			||||||
base_url = "http://localhost:8080"
 | 
					base_url = "http://localhost:8080"
 | 
				
			||||||
| 
						 | 
					@ -20,10 +20,9 @@ base_url = "http://localhost:8080"
 | 
				
			||||||
registerPath = base_url + "/api/register"
 | 
					registerPath = base_url + "/api/register"
 | 
				
			||||||
loginPath = base_url + "/api/login"
 | 
					loginPath = base_url + "/api/login"
 | 
				
			||||||
addProjectPath = base_url + "/api/project"
 | 
					addProjectPath = base_url + "/api/project"
 | 
				
			||||||
submitReportPath = base_url + "/api/submitReport"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Posts the username and password to the register endpoint
 | 
					# Define a function to prform POST request with data and return response
 | 
				
			||||||
def register(username: string, password: string):
 | 
					def register(username: string, password: string):
 | 
				
			||||||
    print("Registering with username: ", username, " and password: ", password)
 | 
					    print("Registering with username: ", username, " and password: ", password)
 | 
				
			||||||
    response = requests.post(
 | 
					    response = requests.post(
 | 
				
			||||||
| 
						 | 
					@ -33,7 +32,6 @@ def register(username: string, password: string):
 | 
				
			||||||
    return response
 | 
					    return response
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Posts the username and password to the login endpoint
 | 
					 | 
				
			||||||
def login(username: string, password: string):
 | 
					def login(username: string, password: string):
 | 
				
			||||||
    print("Logging in with username: ", username, " and password: ", password)
 | 
					    print("Logging in with username: ", username, " and password: ", password)
 | 
				
			||||||
    response = requests.post(
 | 
					    response = requests.post(
 | 
				
			||||||
| 
						 | 
					@ -50,6 +48,7 @@ def test_login():
 | 
				
			||||||
    return response.json()["token"]
 | 
					    return response.json()["token"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Define a function to test the POST request
 | 
				
			||||||
def test_create_user():
 | 
					def test_create_user():
 | 
				
			||||||
    response = register(username, "always_same")
 | 
					    response = register(username, "always_same")
 | 
				
			||||||
    assert response.status_code == 200, "Registration failed"
 | 
					    assert response.status_code == 200, "Registration failed"
 | 
				
			||||||
| 
						 | 
					@ -59,6 +58,7 @@ def test_create_user():
 | 
				
			||||||
def test_add_project():
 | 
					def test_add_project():
 | 
				
			||||||
    loginResponse = login(username, "always_same")
 | 
					    loginResponse = login(username, "always_same")
 | 
				
			||||||
    token = loginResponse.json()["token"]
 | 
					    token = loginResponse.json()["token"]
 | 
				
			||||||
 | 
					    projectName = randomString()
 | 
				
			||||||
    response = requests.post(
 | 
					    response = requests.post(
 | 
				
			||||||
        addProjectPath,
 | 
					        addProjectPath,
 | 
				
			||||||
        json={"name": projectName, "description": "This is a project"},
 | 
					        json={"name": projectName, "description": "This is a project"},
 | 
				
			||||||
| 
						 | 
					@ -69,29 +69,7 @@ def test_add_project():
 | 
				
			||||||
    print("Add project successful")
 | 
					    print("Add project successful")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def test_submit_report():
 | 
					 | 
				
			||||||
    token = login(username, "always_same").json()["token"]
 | 
					 | 
				
			||||||
    response = requests.post(
 | 
					 | 
				
			||||||
        submitReportPath,
 | 
					 | 
				
			||||||
        json={
 | 
					 | 
				
			||||||
            "projectName": "report1",
 | 
					 | 
				
			||||||
            "week": 1,
 | 
					 | 
				
			||||||
            "developmentTime": 10,
 | 
					 | 
				
			||||||
            "meetingTime": 5,
 | 
					 | 
				
			||||||
            "adminTime": 5,
 | 
					 | 
				
			||||||
            "ownWorkTime": 10,
 | 
					 | 
				
			||||||
            "studyTime": 10,
 | 
					 | 
				
			||||||
            "testingTime": 10,
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        headers={"Authorization": "Bearer " + token},
 | 
					 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
    print(response.text)
 | 
					 | 
				
			||||||
    assert response.status_code == 200, "Submit report failed"
 | 
					 | 
				
			||||||
    print("Submit report successful")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if __name__ == "__main__":
 | 
					if __name__ == "__main__":
 | 
				
			||||||
    test_create_user()
 | 
					    test_create_user()
 | 
				
			||||||
    test_login()
 | 
					    test_login()
 | 
				
			||||||
    test_add_project()
 | 
					    test_add_project()
 | 
				
			||||||
    test_submit_report()
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue