def test_post(self): payload = {'movie_id': '5bd89b59af13c757e1b7f3fd', 'datetime': '10.10.2010', 'number_of_seats': 30} res = requests.post(current_config.SEANCE_SERVICE_URL + current_config.SEANCE_SERVICE_PATH + current_config.CREATE_PATH, data=jsonpickle.encode(payload)) self.assertEqual(res.status_code, 201) seance = Seance.from_json(res.content) requests.delete(current_config.SEANCE_SERVICE_URL + current_config.SEANCE_SERVICE_PATH + "/%s" % str(seance.id))
def test_patch_right(self, mock_seance): mock_seance.return_value.get_a_seat.return_value = True seance = Seance(seance_id="123", movie_id="012", date_time="01.01.2018", seats=[True]) mock_seance.return_value.get.return_value = seance sr = SeanceResource() res = sr.patch('123') self.assertEqual(res.status_code, 201)
def test_post(self): gsr = GatewaySeanceCreateResource() res = gsr.post() self.assertEqual(res.status_code, 201) sr = SeanceResource() seance = Seance.from_json(res.data) sr.delete(str(seance.id))
def test_get(self, mock_seance): seances = [] seance = Seance(seance_id="123", movie_id="012", date_time="01.01.2018", seats=[True]) seances.append(seance) mock_seance.return_value.read_paginated.return_value = seances, False, True sr = SeanceListResource() res = sr.get() self.assertEqual(res.status_code, 200)
def test_get_right(self): sr = SeanceResource() scr = SeanceCreateResource() res = scr.post() seance = Seance.from_json(res.data) gsr = GatewaySeanceResource() res = gsr.get(str(seance.id)) self.assertEqual(res.status_code, 200) sr.delete(str(seance.id))
def get(self, seance_id): if self.exists(seance_id): seance = Seances.query.get(seance_id) seats = jsonpickle.decode(seance.seats) return Seance(seance_id=seance.mongo_id, movie_id=seance.movie_id, date_time=seance.date_time, seats=seats) else: return None
def test_get_exists(self): rep = SeanceRepository() seance_id = rep.create('5bd89b59af13c757e1b7f3fd', '01.01.2018_12:00', 5) seance1 = rep.get(seance_id) seance2 = Seance(seance_id=fields.ObjectId(seance_id), movie_id=fields.ObjectId('5bd89b59af13c757e1b7f3fd'), date_time='01.01.2018_12:00', seats=[True, True, True, True, True]) self.assertEqual(seance1, seance2) rep.delete(seance_id)
def read_paginated(self, page_number, page_size): seances = [] seances_paginated = Seances.query.paginate(page=page_number, per_page=page_size) for seance in seances_paginated.items: seats = jsonpickle.decode(seance.seats) seances.append( Seance(seance_id=seance.mongo_id, movie_id=seance.movie_id, date_time=seance.date_time, seats=seats)) is_prev_num = (seances_paginated.prev_num > 0) is_next_num = (seances_paginated.next_num <= seances_paginated.pages) return seances, is_prev_num, is_next_num
def get(self, seance_id): app.logger.info( 'Получен запрос на получение подробной информации о сеансе с идентификатором %s' % seance_id) response_seance = requests.get(current_config.SEANCE_SERVICE_URL + current_config.SEANCE_SERVICE_PATH + "/%s" % seance_id) if response_seance.status_code == 200: app.logger.info( 'Запрос на получение информации о сеансе с идентификатором %s успешно обработан' % seance_id) else: app.logger.warning( 'Информация о сеансе с идентификатором %s не модет быть получена' % seance_id) result = flask.Response(status=response_seance.status_code, headers=response_seance.headers.items(), response=response_seance.content) return result seance = Seance.from_json( response_seance.content ) #jsonpickle.decode(response_seance.content) movie_id = str(seance.movie_id) response_movie = requests.get(current_config.MOVIE_SERVICE_URL + current_config.MOVIE_SERVICE_PATH + "/%s" % movie_id) if response_movie.status_code == 200: app.logger.info( 'Запрос на получение информации о фильме с идентификатором %s успешно обработан' % movie_id) else: app.logger.warning( 'Информация о фильме с идентификатором %s не модет быть получена' % movie_id) result = flask.Response(status=response_movie.status_code, headers=response_movie.headers.items(), response=response_movie.content) return result movie = Movie.from_json(response_movie.content) response = seance.to_json() + '\n' + movie.to_json() result = flask.Response(status=response_seance.status_code, headers=response_seance.headers.items(), response=response) app.logger.info( 'Запрос на получение подробной информации о сеансе с идентификатором %s успешно обработан' % seance_id) return result
def test_post_right(self): payload = { 'movie_id': '5bd0a513af13c7251f913dd9', 'datetime': '22.11.2018_10:15', 'number_of_seats': 100 } res = requests.post( current_config.GATEWAY_URL + current_config.GATEWAY_PATH + current_config.SEANCE_SERVICE_PATH + current_config.CREATE_PATH, data=jsonpickle.encode(payload)) self.assertEqual(res.status_code, 201) seance = Seance.from_json(res.content) requests.delete(current_config.GATEWAY_URL + current_config.GATEWAY_PATH + current_config.SEANCE_SERVICE_PATH + "/%s" % str(seance.id))