def offerRide(): try: if request.method == "POST": data = request.get_json(silent=True) print("Received offer ride data is", request.get_json()) cursor = mysql.connection.cursor() connection = mysql.connection controller = DBController(cursor, connection) response = controller.saveOfferRide(data) if response == "Success": returnData = {"response": response} print("Sending resposne", returnData) return returnData else: print("error is:", response) (abort(500, {"response": response})) except Exception as e: print("error:", e) return e
class TestDBController(unittest.TestCase): def setUp(self): self.db = MySQLdb.connect( host=DB_config.MYSQL_HOST, # your host, usually localhost user=DB_config.MYSQL_USER, # your username passwd=DB_config.MYSQL_PASSWORD, # your password db=DB_config.MYSQL_DB_TEST) self.db.autocommit = "false" self.cur = self.db.cursor() self.controller = DBController(self.cur, self.db) self.username = '******' self.ride_id = 183 self.event_id = '5096273' self.request_id = 52 self.status = 'accepted' self.firstName = 'Wall' self.lastName = 'Street' self.email = '*****@*****.**' self.phoneNumber = '123-456-7890' self.password = "******" self.offerData = { "eventId": "5026583", "username": "******", "carModel": "BMW", "noOfSeats": "2", "startTime": "01:52", "address1": "3456 test lane", "address2": "", "city": "Charlotte", "state": "NC", "zipCode": "28243", "eventDate": "2019-11-18 01:52:40", } def tearDown(self): self.cur.close() self.db.close() def test_getUserData(self): result = self.controller.getUser(self.username) self.cur.execute( """ SELECT RIDE_ID, EVENT_ID, USERNAME, STATUS FROM RIDES_REQUESTED WHERE RIDE_ID=%s AND EVENT_ID=%s AND USERNAME=%s""", (self.ride_id, self.event_id, self.username)) result = self.cur.fetchall()[0] self.assertEqual(result[0], self.ride_id) self.assertEqual(result[1], self.event_id) self.assertEqual(result[2], self.username) self.assertEqual(result[3], self.status) self.cur.execute( """ DELETE FROM RIDES_REQUESTED WHERE RIDE_ID=%s AND EVENT_ID=%s AND USERNAME=%s""", (self.ride_id, self.event_id, self.username), ) self.db.commit() def test_saveRequest(self): self.controller.saveRequest(self.ride_id, self.event_id, self.username, self.status) self.cur.execute( """ SELECT RIDE_ID, EVENT_ID, USERNAME, STATUS FROM RIDES_REQUESTED WHERE RIDE_ID=%s AND EVENT_ID=%s AND USERNAME=%s""", (self.ride_id, self.event_id, self.username)) result = self.cur.fetchall()[0] self.assertEqual(result[0], self.ride_id) self.assertEqual(result[1], self.event_id) self.assertEqual(result[2], self.username) self.assertEqual(result[3], self.status) #To check count of the table given details in where clause self.cur.execute( """ SELECT COUNT(*) FROM RIDES_REQUESTED WHERE RIDE_ID=%s AND EVENT_ID=%s AND USERNAME=%s""", (self.ride_id, self.event_id, self.username)) result = self.cur.fetchall()[0] self.assertEqual(result[0], 1) #To delete inserted data self.cur.execute( """ DELETE FROM RIDES_REQUESTED WHERE RIDE_ID=%s AND EVENT_ID=%s AND USERNAME=%s""", (self.ride_id, self.event_id, self.username), ) self.db.commit() def test_updateRequest(self): self.cur.execute( """ SELECT STATUS FROM RIDES_REQUESTED WHERE REQUEST_ID=%s""", (self.request_id)) before_status = self.cur.fetchall()[0][0] self.assertEqual(self.status, before_status) self.controller.saveRequest(self.request_id, self.status) self.cur.execute( """ SELECT REQUEST_ID, STATUS FROM RIDES_REQUESTED WHERE REQUEST_ID=%s AND STATUS=%s""", (self.request_id, self.status)) result = self.cur.fetchall()[0] self.assertEqual(result[0], self.request_id) self.assertEqual(result[1], self.status) self.assertEqual(before_status, result) #To check count of the table given details in where clause self.cur.execute( """ SELECT COUNT(*) FROM RIDES_REQUESTED WHERE REQUEST_ID=%s AND STATUS=%s """, (self.request_id, self.status)) result = self.cur.fetchall()[0] self.assertEqual(result[0], 1) #To delete inserted data self.cur.execute( """ DELETE FROM RIDES_REQUESTED WHERE REQUEST_ID=%s AND STATUS=%s""", (self.request_id, self.status), ) self.db.commit() def test_enterUserSuccess(self): data = { "firstName": self.firstName, "lastName": self.lastName, "password": self.password, "phoneNumber": self.phoneNumber, "email": self.email } print('data', data) response = self.controller.enterUser(data) print('response', response) self.assertEqual(response, "Success") self.cur.execute( """ SELECT * FROM USER WHERE FIRST_NAME=%s AND LAST_NAME=%s""", (self.firstName, self.lastName)) result = self.cur.fetchall()[0] print('result', result) self.assertEqual(result[2], self.firstName) self.assertEqual(result[3], self.lastName) self.assertEqual(result[4], self.phoneNumber) self.assertEqual(result[5], self.email) def test_enterUserFailure(self): data = { "firstName": self.firstName, "lastName": self.lastName, "password": self.password, "phoneNumber": self.phoneNumber, "email": self.email } print('data', data) response = self.controller.enterUser(data) print('response', response) self.assertEqual(response, "Email already present. Try a new email-id") #To delete inserted data self.cur.execute( """ DELETE FROM USER WHERE FIRST_NAME=%s AND LAST_NAME=%s""", (self.firstName, self.lastName)) self.db.commit() def test_saveOfferRide(self): response = self.controller.saveOfferRide(self.offerData) print(response) self.cur.execute( """SELECT * FROM RIDES_OFFERED WHERE EVENT_ID=%s AND USERNAME=%s""", (self.offerData["eventId"], self.offerData["username"]), ) result = self.cur.fetchall()[0] print("result is:", result) self.assertEqual(result[0], self.offerData["eventId"]) self.assertEqual(result[2], self.offerData["username"]) self.assertEqual(result[3], self.offerData["carModel"]) self.assertEqual(result[4], self.offerData["noOfSeats"]) self.assertEqual(result[6], self.offerData["address1"]) self.assertEqual(result[7], self.offerData["address2"]) self.assertEqual(result[8], self.offerData["city"]) self.assertEqual(result[9], self.offerData["state"]) self.assertEqual(result[10], self.offerData["zipCode"]) # To delete inserted data self.cur.execute( """ DELETE FROM RIDES_OFFERED WHERE EVENT_ID=%s AND USERNAME=%s""", (self.offerData["eventId"], self.offerData["username"]), ) self.db.commit()