示例#1
0
def create_hackathon(payload):
    """
        POST /hackathons
            it is accessible for authorized DSC members
            it takes up to a full representation of a hackathon

        :return: status code 200 and short descriptions of all hackathons as
        a list and success status {'hackathons': [], 'success': True}
    """

    data = {}
    response = {'hackathon_id': None, 'success': False}

    try:
        data = json.loads(request.data)
    except Exception as e:
        abort(400)  # bad request

    try:

        hackathon = Hackathon(
            name=data['name'],
            start_time=data['start_time'],
            end_time=data['end_time'],
            place_name=data['place_name'],
            status_id=data['status_id'],
        )
        hackathon.insert()

        response['success'] = True
        response['hackathon_id'] = hackathon.id
    except Exception as e:
        abort(422)  # unprocessable

    return jsonify(response)
示例#2
0
 def test_edit_hackathon_public(self):
     # public test
     hackathon_data = {
         "name": "Hackathon_Test",
         "start_time": "2001-01-11T00:00:00",
         "end_time": "2001-01-21T00:00:00",
         "place_name": "Google Campus",
         "status_id": self.status_pending_id
     }
     hackathon = Hackathon(
         name=hackathon_data['name'],
         start_time=hackathon_data['start_time'],
         end_time=hackathon_data['end_time'],
         place_name=hackathon_data['place_name'],
         status_id=hackathon_data['status_id'],
     )
     hackathon.insert()
     request_id = hackathon.id
     request_data = {
         "name": "Hackathon_Test_Changed",
         "start_time": "2001-01-12T00:00:00",
         "end_time": "2001-01-22T00:00:00",
         "place_name": "Google Campus Changed",
         "status_id": self.status_approved_id
     }
     request_data_json = json.dumps(request_data)
     res = self.client().put(f'/hackathons/{request_id}',
                             data=request_data_json)
     status_code = res.status_code
     data = json.loads(res.data)
     success = data['success']
     self.assertEqual(status_code, 401)
     self.assertTrue(not success)
示例#3
0
 def test_delete_hackathons_member(self):
     # member test
     data = {
         "name": "Hackathon_Test",
         "start_time": "2001-01-11T00:00:00",
         "end_time": "2001-01-21T00:00:00",
         "place_name": "Google Campus",
         "status_id": self.status_pending_id
     }
     hackathon = Hackathon(
         name=data['name'],
         start_time=data['start_time'],
         end_time=data['end_time'],
         place_name=data['place_name'],
         status_id=data['status_id'],
     )
     hackathon.insert()
     requested_id = hackathon.id
     res = self.client().delete(f'/hackathons/{requested_id}',
                                headers=self.member_headers)
     status_code = res.status_code
     data = json.loads(res.data)
     success = data['success']
     self.assertEqual(status_code, 403)
     self.assertTrue(not success)
示例#4
0
 def test_partially_update_hackathons_public(self):
     # public test
     hackathon_data = {
         "name": "Hackathon_Test",
         "start_time": "2001-01-11T00:00:00",
         "end_time": "2001-01-21T00:00:00",
         "place_name": "Google Campus",
         "status_id": self.status_pending_id
     }
     request_data = {
         'status': "Approved",
         'status_id': self.status_approved_id
     }
     request_data_json = json.dumps(request_data)
     hackathon = Hackathon(
         name=hackathon_data['name'],
         start_time=hackathon_data['start_time'],
         end_time=hackathon_data['end_time'],
         place_name=hackathon_data['place_name'],
         status_id=hackathon_data['status_id'],
     )
     hackathon.insert()
     requested_id = hackathon.id
     res = self.client().patch(f'/hackathons/{requested_id}',
                               data=request_data_json)
     status_code = res.status_code
     data = json.loads(res.data)
     success = data['success']
     hackathon.delete()
     self.assertEqual(status_code, 401)
     self.assertTrue(not success)
示例#5
0
 def test_create_one_hackathons_public(self):
     # public test
     data = {
         "name": "Hackathon_Test",
         "start_time": "2001-01-11T00:00:00",
         "end_time": "2001-01-21T00:00:00",
         "place_name": "Google Campus",
         "status_id": self.status_pending_id
     }
     hackathon = Hackathon(
         name=data['name'],
         start_time=data['start_time'],
         end_time=data['end_time'],
         place_name=data['place_name'],
         status_id=data['status_id'],
     )
     hackathon.insert()
     requested_id = hackathon.id
     res = self.client().get(f'/hackathons/{requested_id}')
     status_code = res.status_code
     data = json.loads(res.data)
     success = data['success']
     hackathon.delete()
     self.assertEqual(status_code, 401)
     self.assertTrue(not success)