예제 #1
0
 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
예제 #2
0
 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)
예제 #3
0
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
예제 #4
0
 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)