def test_admin_can_update_user(self): user = create_new_user( "New", "User", "*****@*****.**", "0831247362", "testPass123!" ) admin = create_admin_user() token = authenticate_user(admin) with self.client: res = self.client.put( f"/api/users/{user.uuid}", data=json.dumps( { "first_name": "Updated", "last_name": "User", "email": "*****@*****.**", "phone": user.phone, "active": user.active, "rank": user.rank, "first_aid": "EFR", "app_role": user.app_role, } ), content_type="application/json", headers={"Authorization": f"Bearer {token}"}, ) self.assertEqual(202, res.status_code)
def test_admin_can_create_new_saerch(self): admin = create_admin_user() token = authenticate_user(admin) with self.client: res = self.client.post( "/api/searches", data=json.dumps( { "location": "Test Location", "date": datetime.today().strftime("%Y-%m-%dT%H:%M:%S.%fZ"), "start_time": datetime.utcnow().strftime("%H:%M"), "type": "Incident", "oic": "Commanding Officer", "sm": "Search Manager", "so": "Safety Officer", "sl": "Section Leader", "ro": "Radio Operator", "scribe": "Scribe", } ), content_type="application/json", headers={"Authorization": f"Bearer {token}"}, ) data = json.loads(res.data.decode()) self.assertEqual(201, res.status_code) self.assertIn("id", data)
def test_user_can_view_a_list_of_search_teams(self): admin = create_admin_user() token = authenticate_user(admin) search = create_search() with self.client: team_res = self.client.post( f"/api/searches/{search.uuid}/teams", data=json.dumps( { "team_leader": "Team Leader", "medic": "Team Medic", "responder_1": "First Responder", "responder_2": "Second Responder", "responder_3": "Third Responder", } ), content_type="application/json", headers={"Authorization": f"Bearer {token}"}, ) team = json.loads(team_res.data.decode()) res = self.client.get( f"/api/searches/{search.uuid}/teams", content_type="application/json", headers={"Authorization": f"Bearer {token}"}, ) data = json.loads(res.data.decode()) self.assert200(res) self.assertIn(team["id"], data[0]["uuid"])
def test_admin_user_can_view_a_list_of_users(self): create_new_user("New", "User", "*****@*****.**", "0831247362", "testPass123!") create_new_user("Old", "User", "*****@*****.**", "0831258762", "testPass123!!") admin = create_admin_user() token = authenticate_user(admin) with self.client: res = self.client.get( "/api/users", headers={"Authorization": f"Bearer {token}"} ) data = json.loads(res.data.decode()) self.assert200(res) self.assertEqual("New", data[0]["first_name"]) self.assertEqual("User", data[0]["last_name"])
def test_admin_can_activate_a_user(self): user = create_new_user( "New", "User", "*****@*****.**", "0831247362", "testPass123!" ) admin = create_admin_user() token = authenticate_user(admin) with self.client: res = self.client.post( f"/api/users/{user.uuid}/activate", content_type="application/json", headers={"Authorization": f"Bearer {token}"}, ) self.assertEqual(202, res.status_code)
def test_admin_can_view_a_search(self): admin = create_admin_user() token = authenticate_user(admin) search = create_search() with self.client: res = self.client.get( f"/api/searches/{search.uuid}", content_type="application/json", headers={"Authorization": f"Bearer {token}"}, ) data = json.loads(res.data.decode()) self.assert200(res) self.assertEqual(search.location, data["location"]) self.assertEqual(search.oic, data["oic"])
def test_admin_can_end_a_search(self): admin = create_admin_user() token = authenticate_user(admin) search = create_search() with self.client: res = self.client.post( f"/api/searches/{search.uuid}/end", data=json.dumps({ "end_time": "15:00", "notes": "Nothing to note", }), content_type="application/json", headers={"Authorization": f"Bearer {token}"}, ) self.assertEqual(202, res.status_code)
def test_user_can_view_list_of_searches(self): admin = create_admin_user() token = authenticate_user(admin) search1 = create_search() search2 = create_search() with self.client: res = self.client.get( "/api/searches", content_type="application/json", headers={"Authorization": f"Bearer {token}"}, ) data = json.loads(res.data.decode()) self.assert200(res) self.assertIn(search1.location, data[0]["location"]) self.assertIn(search2.oic, data[1]["oic"])
def test_user_can_view_details_for_a_specific_user(self): user = create_new_user("New", "User", "*****@*****.**", "0831247362", "testPass123!") admin = create_admin_user() token = authenticate_user(admin) with self.client: res = self.client.get( f"/api/users/{user.uuid}", content_type="application/json", headers={"Authorization": f"Bearer {token}"}, ) data = json.loads(res.data.decode()) self.assert200(res) self.assertEqual("New", data["first_name"]) self.assertEqual("User", data["last_name"]) self.assertEqual("*****@*****.**", data["email"])
def test_user_can_view_a_list_of_search_logs(self): admin = create_admin_user() token = authenticate_user(admin) search = create_search() log1 = create_search_log(search) log2 = create_search_log(search) with self.client: res = self.client.get( f"/api/searches/{search.uuid}/logs/search", content_type="application/json", headers={"Authorization": f"Bearer {token}"}, ) data = json.loads(res.data.decode()) self.assert200(res) self.assertEqual(log1.team, data[0]["team"]) self.assertEqual(log2.start_time, data[0]["start_time"])
def test_user_can_assign_a_radio_to_a_user(self): admin = create_admin_user() token = authenticate_user(admin) search = create_search() with self.client: res = self.client.post( f"/api/searches/{search.uuid}/radios", data=json.dumps({ "call_sign": "WW01", "tetra_number": "53831", "name": "Test User" }), content_type="application/json", headers={"Authorization": f"Bearer {token}"}, ) self.assertEqual(201, res.status_code)
def test_user_can_create_comms_log_entry(self): admin = create_admin_user() token = authenticate_user(admin) search = create_search() with self.client: res = self.client.post( f"/api/searches/{search.uuid}/logs/comms", data=json.dumps({ "time": "12:00", "call_sign": "WW01", "message": "Test Message", "action": "No Action Required", }), content_type="application/json", headers={"Authorization": f"Bearer {token}"}, ) self.assertEqual(201, res.status_code)
def test_user_can_create_a_search_log(self): admin = create_admin_user() token = authenticate_user(admin) search = create_search() with self.client: res = self.client.post( f"/api/searches/{search.uuid}/logs/search", data=json.dumps( { "team": "Team 1", "area": "Search Area", "start_time": "12:00", } ), content_type="application/json", headers={"Authorization": f"Bearer {token}"}, ) self.assertEqual(201, res.status_code)
def test_user_can_view_list_of_radio_assignments(self): admin = create_admin_user() token = authenticate_user(admin) search = create_search() radio1 = create_radio_assignment(search) radio2 = create_radio_assignment(search) radio3 = create_radio_assignment(search) with self.client: res = self.client.get( f"/api/searches/{search.uuid}/radios", content_type="application/json", headers={"Authorization": f"Bearer {token}"}, ) data = json.loads(res.data.decode()) self.assert200(res) self.assertEqual(radio1.name, data[0]["name"]) self.assertEqual(radio2.tetra_number, data[1]["tetra_number"]) self.assertEqual(radio3.call_sign, data[2]["call_sign"])
def test_user_can_create_search_team(self): admin = create_admin_user() token = authenticate_user(admin) search = create_search() with self.client: res = self.client.post( f"/api/searches/{search.uuid}/teams", data=json.dumps( { "team_leader": "Team Leader", "medic": "Team Medic", "responder_1": "First Responder", "responder_2": "Second Responder", "responder_3": "Third Responder", } ), content_type="application/json", headers={"Authorization": f"Bearer {token}"}, ) self.assertEqual(201, res.status_code)
def test_user_can_update_a_search_log(self): admin = create_admin_user() token = authenticate_user(admin) search = create_search() log = create_search_log(search) with self.client: res = self.client.put( f"/api/searches/{search.uuid}/logs/search/{log.uuid}", data=json.dumps( { "team": log.team, "area": log.area, "start_time": log.start_time, "end_time": "15:00", "notes": "Nothing Found", } ), content_type="application/json", headers={"Authorization": f"Bearer {token}"}, ) self.assertEqual(202, res.status_code)
def test_user_can_update_a_specific_saerch_team(self): admin = create_admin_user() token = authenticate_user(admin) search = create_search() search_team = create_search_team(search) with self.client: res = self.client.put( f"/api/searches/{search.uuid}/teams/{search_team.uuid}", data=json.dumps( { "name": search_team.name, "team_leader": search_team.team_leader, "medic": "Test Medic", "responder_1": search_team.responder_1, "responder_2": search_team.responder_2, "responder_3": search_team.responder_3, } ), content_type="application/json", headers={"Authorization": f"Bearer {token}"}, ) self.assertEqual(202, res.status_code)