Exemple #1
0
 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)
Exemple #3
0
 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)
Exemple #5
0
 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))
Exemple #6
0
 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)
Exemple #8
0
 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
Exemple #9
0
    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
Exemple #10
0
 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))