def test_get_right(self): rep = TicketRepository() ticket_id = rep.create(seance_id='5bd897f8af13c78fe908cb98', seat_number=1) ticket1 = rep.get(ticket_id) ticket2 = Ticket(ticket_id=fields.ObjectId(ticket_id), seance_id='5bd897f8af13c78fe908cb98', seat_number=1) self.assertEqual(ticket1, ticket2) rep.delete(ticket_id)
def test_create(self): rep = TicketRepository() id1 = rep.create('5bd897f8af13c78fe908cb98', 2) id2 = rep.create('5bd897f8af13c78fe908cb98', 2) self.assertNotEqual(id1, id2) rep.delete(id1) rep.delete(id2)
def delete(self, ticket_id): repo = TicketRepository() app.logger.info( 'Получен запрос на удаление билета с идентификатором %s' % ticket_id) abort_if_seance_doesnt_exist(ticket_id, repo) repo.delete(ticket_id) response = app.make_response("Ticket %s deleted successfully" % ticket_id) response.status_code = 204 app.logger.info('Билет с идентификатором %s успешно удален' % ticket_id) return response
def get(self, ticket_id): repo = TicketRepository() app.logger.info( 'Получен запрос на получение информации о билете с идентификатором %s' % ticket_id) abort_if_seance_doesnt_exist(ticket_id, repo) ticket = repo.get(ticket_id) response = app.make_response("") response.status_code = 200 response.content_type = "application/json" response.data = ticket.to_json() app.logger.info( 'Запрос на получение информации о билете с идентификатором %s успешно обработан' % ticket_id) return response
def post(self): repo = TicketRepository() app.logger.info('Получен запрос на создание (покупку) билета') try: payload = jsonpickle.decode(flask.request.data) except: payload = { "seance_id": "5bd897f8af13c78fe908cb98", "seat_number": 1 } ticket_id = repo.create(payload["seance_id"], payload["seat_number"]) ticket = repo.get(ticket_id) response = app.make_response("") response.content_type = "application/json" response.status_code = 201 response.data = ticket.to_json() app.logger.info('Бмлет с идентификатором %s успешно создан (куплен)' % ticket_id) return response
def get(self): repo = TicketRepository() app.logger.info('Получен запрос на получение списка билетов') try: args = self.parser.parse_args(strict=True) except: args = {'page': 1, 'page_size': 5} app.logger.info( 'Номер страницы: %d; количество билетов на странице: %d' % (args['page'], args['page_size'])) ticket_list, is_prev_page, is_next_page = repo.read_paginated( page_number=args['page'], page_size=args['page_size']) tickets = '' for ticket in ticket_list: tickets += ticket.to_json() + '\n' dictr = {"is_prev_page": is_prev_page, "is_next_page": is_next_page} tickets += "\n" + json.dumps(dictr) response = app.make_response("") response.content_type = "application/json" response.status_code = 200 response.data = tickets app.logger.info('Запрос на получение списка билетов успешно обработан') return response
def test_exists_false(self): rep = TicketRepository() boolean = rep.exists('5bd8ad1daf') self.assertFalse(boolean)
def test_exists_true(self): rep = TicketRepository() ticket_id = rep.create(seance_id='5bd897f8af13c78fe908cb98', seat_number=1) boolean = rep.exists(ticket_id) self.assertTrue(boolean) rep.delete(ticket_id)
def test_delete_existed(self): rep = TicketRepository() id1 = rep.create('5bd897f8af13c78fe908cb98', 2) rep.delete(id1) self.assertFalse(rep.exists(id1))
def test_read_paginated(self): rep = TicketRepository() tickets = rep.read_paginated(1, 5) self.assertLessEqual(len(tickets), 5)
def test_get_error(self): rep = TicketRepository() ticket = rep.get('5bd89fd9') self.assertIsNone(ticket)