Пример #1
0
def setUp_deleted():
    """ Updates database ton include deleted data """
    # print("Restore deleted rows")

    deleted_actor = Actor.query\
        .filter(Actor.id == 1)\
        .one_or_none()
    if deleted_actor is None:
        actor = Actor(name="Harrison Ford", age=78, gender="Male")
        actor.id = 1
        actor.insert()

    deleted_movie = Movie.query\
        .filter(Movie.id == 1)\
        .one_or_none()
    if deleted_movie is None:
        movie = Movie(title="The Dark Knight ", release_date="07/14/2008")
        movie.id = 1
        movie.insert()

    deleted_cast = Cast.query\
        .filter(Cast.id == 2)\
        .one_or_none()
    if deleted_cast is None:
        cast = Cast(actor_id=8, movie_id=5)
        cast.id = 2
        cast.insert()

    deleted_cast = Cast.query\
        .filter(Cast.id == 3)\
        .one_or_none()
    if deleted_cast is None:
        cast = Cast(actor_id=3, movie_id=6)
        cast.id = 3
        cast.insert()

    deleted_cast = Cast.query\
        .filter(Cast.id == 4)\
        .one_or_none()
    if deleted_cast is None:
        cast = Cast(actor_id=8, movie_id=8)
        cast.id = 4
        cast.insert()

    deleted_cast = Cast.query\
        .filter(Cast.id == 6)\
        .one_or_none()
    if deleted_cast is None:
        cast = Cast(actor_id=1, movie_id=2)
        cast.id = 6
        cast.insert()

    deleted_cast = Cast.query\
        .filter(Cast.id == 7)\
        .one_or_none()
    if deleted_cast is None:
        cast = Cast(actor_id=2, movie_id=1)
        cast.id = 7
        cast.insert()
Пример #2
0
    def test_delete_movie(self):
        movie = Movie(title='titanic', release_date='2018-01-02', actor_id=[2])

        movie.id = 100
        movie.insert()

        res = self.client().delete(
            '/movies/100', headers={'Authorization': executive_producer_token})

        self.assertEqual(res.status_code, 200)
Пример #3
0
    def test_patch_movie(self):
        movie = Movie(title='titanic', release_date='2018-01-02', actor_id=[2])

        movie.id = 888
        movie.insert()

        res = self.client().patch(
            '/movies/888',
            headers={'Authorization': executive_producer_token},
            json={"title": "American Pie"})

        self.assertEqual(res.status_code, 200)
        movie.delete()
Пример #4
0
    def test_delete_movie(self):
        movie = Movie(title='The cube',
                      releaseDate=datetime.datetime(2022, 2, 22),
                      actor_id='1')
        movie.id = 222
        movie.insert()

        res = self.client().delete(
            '/movies/222',
            headers={'Authorization': TOKEN_PRODUCER},
        )

        data = res.get_json()
        selection = Movie.query.filter(Movie.id == 222).one_or_none()

        self.assertEqual(data['status'], True)
        self.assertEqual(selection, None)
Пример #5
0
def import_xml(file_name):
    import xml.etree.cElementTree as et
    root = et.ElementTree(file=file_name).getroot()
    theaters = root.findall('theaters')[0]
    movies = root.findall('movies')[0]
    show_times = root.findall('showTimes')[0]

    for theater in theaters:
        cinema = Cinema(theater.find('name').text,
                        theater.find('telephone').text,
                        theater.find('address').find('streetAddress').find('street').text,
                        theater.find('address').find('city').text,
                        theater.find('address').find('state').text,
                        theater.find('address').find('postalCode').text,
                        theater.find('address').find('country').text,
                        float(theater.find('longitude').text) if theater.find('longitude').text is not None else None,
                        float(theater.find('latitude').text) if theater.find('latitude').text is not None else None)
        cinema.id = theater.attrib['theaterId']
        db.session.add(cinema)

    for movie in movies:
        mov = Movie(movie.find('officialTitle').text,
                    movie.find('sinopsis').text if movie.find('sinopsis') is not None else None,
                    movie.find('format').text,
                    int(movie.find('runningTime').text) if movie.find('runningTime').text is not None else None,
                    movie.find('imdb').text if movie.find('imdb') is not None else None,
                    movie.find('version').text == 'Z',
                    movie.find('ratings').find('rating').text,
                    movie.find('cartel').text.split('.')[0] + '.jpg')
        mov.id = movie.attrib['movieId']
        db.session.add(mov)

    for show_time in show_times:
        for time in show_time.find('times').findall('time'):
            if Movie.query.get(show_time.attrib['movieId']) and Cinema.query.get(show_time.attrib['theaterId']):
                showtime = ShowTime(show_time.attrib['theaterId'],
                                    show_time.attrib['movieId'],
                                    time.text[0:2] + ':' + time.text[2:4])
                db.session.merge(showtime)

    db.session.commit()
Пример #6
0
    def test_patch_movie(self):
        movie = Movie(title='The cube',
                      releaseDate=datetime.datetime(2022, 2, 22),
                      actor_id='1')
        movie.id = 222
        movie.insert()

        res = self.client().patch('/movies/222',
                                  headers={'Authorization': TOKEN_PRODUCER},
                                  json={
                                      "title": "avengers vs godzilla",
                                      "releaseDate":
                                      "2021-03-25 11:55:11.271041"
                                  })

        data = res.get_json()
        selection = Movie.query.filter(Movie.id == 222).one_or_none()

        self.assertEqual(data['status'], True)
        self.assertEqual(selection.title, 'avengers vs godzilla')

        selection.delete()
Пример #7
0
def retrieve_movies(payload):
    current_movies = Movie.query.order_by(Movie.title).all()

    if len(current_movies) == 0:
        abort(414)

    print('Movies Retrieved:' + str(len(Movie.query.all())))
    movies = []
    strTable = "<table>"
    strTable += "<tr><th>ID</th><th>Title</th><th>Date</th></tr>"
    for movie in current_movies:
        d = Movie()
        d.id = movie.id
        d.title = movie.title
        d.release_date = movie.release_date
        movies.append(d)
        strTable += "<tr><td>" + str(
            movie.id
        ) + "</td><td>" + movie.title + "</td><td>" + movie.release_date + "</td></tr>"

    strTable += "</table>"
    return strTable
Пример #8
0
async def add_movie(movie: Movie):
    if hasattr(movie, 'id'):
        delattr(movie, 'id')
    ret = db.movies.insert_one(movie.dict(by_alias=True))
    movie.id = ret.inserted_id
    return {'movie': movie}