def test_get_all_applications(self): season = createBasicSeason(db.session) headers = { 'Authorization': self.token, 'AccessToken': self.accessToken } testuser1 = User(username="******", sub="sub", email="email", fullname="Franky Frank") testuser2 = User(username="******", sub="uuid", email="email", fullname="Schmemail") db.session.add(testuser1) db.session.add(testuser2) db.session.commit() createUser(db.session) testApplication1 = Application(ApplicationStatus.SUBMITTED, "Fanta is better than solo", user=testuser1, partnerUsername="******", preferredRoom="d1", seatRollover=True, applicationSeason=season, comments="Not Pepsi, but Pepsi Max") testApplication2 = Application(ApplicationStatus.SUBMITTED, "Fanta is better than solo", user=testuser2, partnerUsername="******", preferredRoom="d1", seatRollover=True, applicationSeason=season, comments="Not Pepsi, but Pepsi Max") db.session.add(testApplication1) db.session.add(testApplication2) db.session.commit() allApplications = self.app.test_client().get( 'http://localhost:5000/application/all', headers=headers) assert allApplications.status == "200 OK" assert allApplications.data == jsonify( [testApplication1.to_json(), testApplication2.to_json()]).data
def test_update_application(self): season = createBasicSeason(db.session) testuser = createUser(db.session) testApplication = Application(ApplicationStatus.SUBMITTED, "Fanta is better than solo", user=testuser, partnerUsername="******", preferredRoom="d1", seatRollover=True, applicationSeason=season, comments="Not Pepsi, but Pepsi Max") db.session.add(testApplication) db.session.commit() mimetype = 'application/json' headers = { 'Content-Type': mimetype, 'Accept': mimetype, 'Authorization': self.token, 'AccessToken': self.accessToken } response = self.app.test_client().put( 'http://localhost:5000/application/1', headers=headers, data=json.dumps( dict( username=testuser.username, needs="Pepsi is better than coke", comments="Not Pepsi, but Pepsi Max", partnerUsername="", preferredRoom="d1", seatRollover=True, aRandomfield=True, ))) expectedResponse = make_response( jsonify( needs="Pepsi is better than coke", comments="Not Pepsi, but Pepsi Max", id=1, status="SUBMITTED", user={ "id": 1, "username": testuser.username, "email": testuser.email, "fullname": testuser.fullname }, partnerApplication={}, rank="OTHER", seat=None, preferredRoom="d1", seatRollover=True, ), 200) assert expectedResponse.status == response.status assert json.loads(expectedResponse.data) == json.loads(response.data) assert testApplication.to_json() == json.loads(response.data)
def registerApplication(comments, needs, user, partnerUsername, seatRollover, preferredRoom, rank): try: season = getCurrentOrNext() application = Application( status=ApplicationStatus.SUBMITTED, needs=needs, user=user, partnerUsername=partnerUsername, comments=comments, seatRollover=seatRollover, preferredRoom=preferredRoom, rank=rank, applicationSeason=season, ) db.session.add(application) db.session.commit() connectApplication(application) return application.to_json(), 201 except SQLAlchemyError as err: print(err) return "", 400
def test_waiting_list(self): season = createBasicSeason(db.session) headers = { 'Authorization': self.token, 'AccessToken': self.accessToken, 'Content-type': 'application/json' } testuser1 = User(username="******", sub="sub", email="email", fullname="Franky Frank") testuser2 = User(username="******", sub="uuid", email="email", fullname="Schmemail") testuser3 = User(username="******", sub="ubuid", email="email", fullname="bruh") db.session.add(testuser1) db.session.add(testuser2) db.session.add(testuser3) db.session.commit() createUser(db.session) testApplication1 = Application(ApplicationStatus.SUBMITTED, "Fanta is better than solo", user=testuser1, partnerUsername="******", preferredRoom="d1", seatRollover=True, applicationSeason=season, comments="Not Pepsi, but Pepsi Max") testApplication2 = Application(ApplicationStatus.SUBMITTED, "Fanta is better than solo", user=testuser2, partnerUsername="******", preferredRoom="d1", seatRollover=True, applicationSeason=season, comments="Not Pepsi, but Pepsi Max") testApplication3 = Application(ApplicationStatus.SUBMITTED, "Fanta is better than Cola", user=testuser3, partnerUsername="", preferredRoom="d2", seatRollover=False, applicationSeason=season, comments="Not Cola, but Fanta Free") db.session.add(testApplication1) db.session.add(testApplication2) db.session.add(testApplication3) db.session.commit() # Dump to create new objects which are not changed by the post app1 = json.dumps(testApplication1.to_json()) app2 = json.dumps(testApplication2.to_json()) jsondata = json.dumps(dict(ids=[1, 2])) approvedApplications = self.app.test_client().post( 'http://localhost:5000/application/waitingList', headers=headers, data=jsondata, ) app1 = json.loads(app1) app2 = json.loads(app2) app1["status"] = "WAITING_LIST" app2["status"] = "WAITING_LIST" assert approvedApplications.status == "200 OK" assert json.loads(approvedApplications.data) == json.loads( jsonify([app1, app2]).data)