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)
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)
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)
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)
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)