def test_movie_main_page_id_1111018(self): m = Movie(id=1111018) m.get_content('main_page') self.assertEqual(m.year, 2019) self.assertEqual(m.title, 'Чудотворцы') self.assertEqual(m.genres, ['комедия', 'фэнтези', '...слова']) self.assertEqual(m.countries, ['США']) self.assertEqual(m.id, 1111018) self.assertEqual(m.title_en, 'Miracle Workers') self.assertEqual(m.plot, 'Небесная канцелярия Бога — масштабный офис с множеством отделов и сотрудников, работающих в атмосфере цейтнота и многозадачности. Есть даже HR и напоминающий службу технической поддержки отдел обработки молитв. Именно его служащие, ангелы Элиза и Крэйг, берутся за спасение Земли, когда приунывший Господь вдруг решает её погубить. Теперь у ангелов есть две недели, чтобы соединить несоединимое — двух одиноких людей в пару — и доказать, что человечество вовсе не безнадежно и достойно существования.') self.assertEqual(m.runtime, 20) self.assertEqual(m.rating, 7.6) self.assertEqual(m.imdb_rating, 7.0) self.assertGreaterEqual(m.votes, 47000) self.assertGreaterEqual(m.imdb_votes, 7000) self.assertEqual(m.tagline, "«On the Trillionth Day...God Quit»") self.assertIsNone(m.marketing) self.assertEqualPersons( m.actors, ['Дэниэл Рэдклифф', 'Джеральдин Висванатхан', 'Каран Сони', 'Стив Бушеми', 'Джон Басс', 'Лолли Адефоп', 'Саша Компере', 'Питер Серафинович', 'Джэми Деметриу', 'Майк Данстон'] ) self.assertEqualPersons(m.directors, ['Дэн Шимпф', 'Райан Кейс', 'Морис Мэрэбл']) self.assertEqualPersons(m.screenwriters, ['Саймон Рич', 'Лукас Гарднер', 'Хезер Энн Кэмпбелл']) self.assertEqualPersons(m.producers, ['Лорн Майклз', 'Стив Бушеми', 'Кэти Дженсон']) self.assertEqualPersons(m.operators, ['Блейк МакКлюр', 'Брайан Бёргойн']) self.assertEqualPersons(m.art_direction_by, ['Тодд Джеффри', 'Дэйв Эрроусмит', 'Марисса Легизамон']) self.assertEqualPersons(m.editing_by, ['Роб Барнетт', 'Райан Браун', 'Джессика Брунетто'])
def run(self): ''' Initialise the runner function with passed args, kwargs. ''' # Retrieve args/kwargs here; and fire processing using them try: item = Movie(id=self.id) image = None item.get_content('posters') url = item.posters[0] if len(item.posters) > 0 else None if url: req = urllib.request.urlopen(url, timeout=3) if not url[7:] in req.geturl(): image = b'' else: image = req.read() except: traceback.print_exc() exctype, value = sys.exc_info()[:2] #self.signals.error.emit((exctype, value, traceback.format_exc())) self.signals.result.emit(b'', self.id) else: self.signals.result.emit( image, self.id) # Return the result of the processing finally: self.signals.finished.emit()
def test_movie_by_id_1552(self): m = Movie(id=1552) m.get_content('main_page') # m.get_content('trailers') self.assertEqual(m.profit_russia, 41000) self.assertEqual(m.budget, 10000000)
def test_movie_cast(self): """ Test of movie cast source page """ m = Movie(id=4220) m.get_content('cast') self.assertEqual(len(m.cast), 7) self.assertGreaterEqual(len(m.cast['director']), 1) self.assertGreaterEqual(len(m.cast['actor']), 49) self.assertGreaterEqual(len(m.cast['producer']), 4) self.assertGreaterEqual(len(m.cast['writer']), 3) self.assertGreaterEqual(len(m.cast['operator']), 2) self.assertGreaterEqual(len(m.cast['design']), 1) self.assertGreaterEqual(len(m.cast['editor']), 1) self.assertEqual(m.cast['actor'][0].person.id, 8986) self.assertEqual(m.cast['actor'][0].person.name, 'Питер Фонда') self.assertEqual(m.cast['actor'][0].person.name_en, 'Peter Fonda') self.assertEqual(m.cast['actor'][0].name, 'Wyatt') # в титрах: ... self.assertEqual(m.cast['actor'][13].person.name, 'Сэнди Браун Уайет') self.assertEqual(m.cast['actor'][13].person.name_en, 'Sandy Brown Wyeth') self.assertEqual(m.cast['actor'][13].name, 'Joanne')
def search_kp_id(kp_id): # film = Film() print('here') print(kp_id) m = Movie(id=kp_id) m.get_content('main_page') # print (m) # print (m.title) # print (m.release) # # print (m.) # print (m.series) # print (m.actors) # print (m.profit_russia) # print (m.profit_world) dir_name = m.directors[0] dir_kp_id = m.directors[0].id # l = dir(m) # print (l) # d = m.__dict__ # print (d) # print (m.directors) director, created = Director.objects.get_or_create(name=dir_name, kp_id=dir_kp_id) print(created) film = Film(director=director, **clean_kp_film(m)) # print (film, created) # video_instance, created = Video.objects.update_or_create(video_id=att['id'], # owner_id=att['owner_id'], # defaults=video_data_clean) # d = check_or_create_director(dir_name,kp_id) # f = Film (director = d, **clean_kp_film(m)) # f.save() return film
def single_page(request, movie_id): conn = http.client.HTTPSConnection("api.themoviedb.org") tmdb3 = TMDb() tmdb3.api_key = 'bf4a7e22bb42072d024a9c1b6f88597f' movie = Movie() details = movie.details(movie_id) credits = movie.credits(movie_id) conn.request( "GET", "/3/movie/" + str(movie_id) + "/translations?api_key=" + tmdb3.api_key) res = conn.getresponse() data = res.read() json_data = json.loads(data) translations = json_data['translations'] rus = [] for indx in range(0, 10): if translations[indx]['iso_639_1'] == 'ru': rus = translations[indx] context = { 'details': details, 'credits': credits, "rus": rus, } return render(request, "kinopoiskapi/single.html", context)
def test_movie_main_page_id_278229(self): """ Test of movie manager, movie obtain by id (not via search) """ m = Movie(id=278229) m.get_content('main_page') # m.get_content('trailers') self.assertEqual(m.id, 278229) self.assertEqual(m.year, 2007) self.assertEqual(m.title, 'Без цензуры') self.assertEqual(m.title_en, 'Redacted') self.assertEqual( m.plot, 'В центре картины — небольшой отряд американских солдат на контрольно-пропускном пункте в Ираке. Причём восприятие их истории постоянно меняется. Мы видим события глазами самих солдат, представителей СМИ, иракцев и понимаем, как на каждого из них влияет происходящее, их встречи и столкновения друг с другом.' ) self.assertEqual(m.runtime, 90) self.assertEqual(m.tagline, '«Фильм, запрещенный к прокату во многих странах»') # self.assertEqual(len(m.trailers), 4) # self.assertEqual(m.trailers[0].id, 't170078') # self.assertEqual(m.trailers[0].file, '278229/kinopoisk.ru-Redacted-170078.mp4') # self.assertEqual(m.trailers[0].preview_file, '278229/3_6166.jpg') # self.assertEqual(m.trailers[0].dom, 'tr') self.assertEqualPersons(m.actors, [ 'Иззи Диаз', 'Роб Дивейни', 'Ти Джонс', 'Анас Веллман', 'Майк Фигуроа', 'Яналь Кассай', 'Дхиая Калиль', 'Кел О’Нил', 'Дэниэл Стюарт-Шерман', 'Патрик Кэрролл' ])
def test_movie_main_page_id_746251(self): m = Movie(id=746251) m.get_content('main_page') self.assertEqual(m.year, None) self.assertEqual(m.title, 'Ловкость') self.assertEqual(m.genres, ['драма']) self.assertEqual(m.countries, ['США'])
def get_movies_desc(*films): # print(films) dict_to_return = {} for film in films: movie = Movie(id=film.id) movie.get_content("main_page") dict_to_return.update({movie.title: movie}) return dict_to_return
def index(request): tmdb3 = TMDb() tmdb3.api_key = 'bf4a7e22bb42072d024a9c1b6f88597f' movie = Movie() popular = movie.popular() for p in popular: print(p.title) print(p.poster_path) print("===================BREAKLINE=====================") context = {'popular': popular} return render(request, "kinopoiskapi/kinopoisk.html", context)
def test_movie_main_page_id_1005878(self): """ Test of movie manager, movie obtain by id (not via search) """ m = Movie(id=1005878) m.get_content('main_page') self.assertEqual(m.id, 1005878) self.assertEqual(m.year, 2019) self.assertEqual(m.title, 'Король Лев') self.assertEqual(m.title_en, 'The Lion King') self.assertEqual( m.plot, 'История об отважном львенке по имени Симба. Знакомые с детства герои взрослеют, влюбляются, познают себя и окружающий мир, совершают ошибки и делают правильный выбор.' ) self.assertEqual(m.runtime, 118) self.assertEqual(m.rating, 7.158) self.assertEqual(m.imdb_rating, 6.90) self.assertGreaterEqual(m.votes, 60604) self.assertGreaterEqual(m.imdb_votes, 169531) self.assertEqual(m.tagline, "«The King Has Returned»") self.assertEqual( m.genres, ['мультфильм', 'мюзикл', 'драма', 'приключения', 'семейный']) self.assertEqual(m.countries, ['США']) self.assertGreaterEqual(m.budget, 260000000) self.assertIsNone(m.marketing) self.assertGreaterEqual(m.profit_usa, 543638043) self.assertGreaterEqual(m.profit_russia, 47106883) self.assertGreaterEqual(m.profit_world, 1656943394) self.assertEqualPersons(m.actors, [ 'Джеймс Эрл Джонс', 'Дональд Гловер', 'Чиветель Эджиофор', 'Джон Оливер', 'Джон Кани', 'Элфри Вудард', 'Джейдон Маккрэри', 'Шахади Райт Джозеф', 'Пенни Джонсон', 'Кигэн-Майкл Ки' ]) self.assertEqualPersons(m.directors, ['Джон Фавро']) self.assertEqualPersons( m.screenwriters, ['Джефф Натансон', 'Ирен Меччи', 'Джонатан Робертс']) self.assertEqualPersons(m.producers, ['Джон Бартники', 'Дэбби Босси', 'Джон Фавро']) self.assertEqualPersons(m.operators, ['Калеб Дешанель']) self.assertEqualPersons(m.composers, ['Ханс Циммер']) self.assertEqualPersons(m.art_direction_by, ['Джеймс Чинланд', 'Влад Бина']) self.assertEqualPersons(m.editing_by, ['Адам Герстл', 'Марк Ливолси'])
def add_film(): form = add_film_form.AddFilmForm() if form.validate_on_submit(): session = db_session.create_session() movie = Movie(id=form.kp_id.data) if_exist = False try: movie.get_content('main_page') except Exception: if_exist = False else: if_exist = True if if_exist and len(session.query(Film.Film).filter(Film.Film.kp_id == form.kp_id.data).all()) == 0: film = Film.Film(movie.id, movie.title, movie.title_en, movie.plot, movie.year) session.add(film) session.commit() session = db_session.create_session() actors_list = movie.actors actors_to_add = actors_list.copy() actors_list = list(map(str, actors_list)) for actor in session.query(Actor.Actor).filter(Actor.Actor.name.in_(actors_list)): actors_list.remove(str(actor.name)) if actor.films != None: actor.films = str(actor.films) + str(film.id) + '/' else: actor.films = str(film.id) + '/' for i in actors_list: actor = Actor.Actor(str(i)) actor.films = str(film.id) + '/' session.add(actor) session.commit() session = db_session.create_session() actors_str = "" for i in actors_to_add: actor_id = str(session.query(Actor.Actor).filter(Actor.Actor.name == str(i)).first().id) actors_str += "/" + actor_id film = session.query(Film.Film).filter(Film.Film.id == film.id).first() if not film.actors: film.actors = actors_str else: film.actors = str(film.actors) + actors_str session.commit() return redirect('/add_film') return render_template("add_film.html", form=form)
def films(message): movie_list = Movie.objects.search(message.text) title = movie_list[0].title id_film = movie_list[0].id movie = Movie(id=id_film) for item in movie_list[:8]: title = item.title year = item.year description = item.plot rating = item.rating google = "https://google.com/?#q=" + "" + title if year is None and description == "" and rating is None: bot.send_message( message.chat.id, "Название: " + title + "\nГод выхода: не найдено\nМини-описание: " + "не найдено" + "\nОценка: " + "не найдено\n" + "Посмотреть и почитать более подробную информацию можно здесь: " + "https://www.kinopoisk.ru/film/" + str(id_film) + "\nИ здесь: " + google, parse_mode="html") else: bot.send_message(message.chat.id, "Название: " + title + "\nГод выхода: " + str(year) + "\nМини-описание: " + description + "\nОценка: " + str(rating), parse_mode="html")
def test_movie_trailers(self): """ Test of movie trailers source page """ m = Movie(id=521689) m.get_content('trailers') self.assertGreaterEqual(len(m.trailers), 11) trailers_ids = [trailer.id for trailer in m.trailers] trailers_files = [trailer.file for trailer in m.trailers] self.assertTrue('76485' in trailers_ids) self.assertTrue('gettrailer.php?quality=hd&trailer_id=76485' in trailers_files) self.assertTrue('74666' in trailers_ids) self.assertTrue('gettrailer.php?quality=hd&trailer_id=74666' in trailers_files) self.assertEqual(m.youtube_ids, ['e4f5keHX_ks'])
def parse(self): from kinopoisk.movie import Movie note = self.extract('note').strip().split('...') role_name = None if len(note) > 1: role_name = self.prepare_str(note[1]).replace( ', озвучка', '').replace('; короткометражка', '') self.instance.name = role_name self.instance.movie = Movie.get_parsed('career_link', self.content) self.instance.set_source('role_link')
def load_movie(movie_name): movie_id = Movie.objects.search(movie_name)[0].id movie = Movie(movie_id) movie.get_content('main_page') film_info = { "name": movie_name, "title": movie.title, "title_en": movie.title_en, "year": movie.year, "rating": movie.rating, "info": movie.plot, "country": movie.countries, "budget": movie.budget, "actors": movie.actors, "directors": movie.directors, "url": f"https://www.kinopoisk.ru/film/{movie_id}", "poster": f"https://www.kinopoisk.ru/images/film_big/{movie_id}.jpg", "genres": movie.genres, "runtime": movie.runtime, } return film_info, movie
def get_movie(title): movies = find_movies_matching(title) if len(movies) == 0: raise Exception("No movies found with title '%s'" % title) # ERROR time.sleep(12) movie = Movie(id=movies[0].id) time.sleep(2) movieInfo = get_film_info(movie) return json_stringify(movieInfo)
def test_movie_main_page_id_258687(self): """ Test of movie manager, movie obtain by id (not via search) """ m = Movie(id=258687) m.get_content('main_page') m.get_content('trailers') trailers_ids = [trailer.id for trailer in m.trailers] trailers_files = [trailer.file for trailer in m.trailers] self.assertEqual(m.id, 258687) self.assertEqual(m.year, 2014) self.assertEqual(m.title, 'Интерстеллар') self.assertEqual(m.title_en, 'Interstellar') self.assertEqual(m.plot, 'Когда засуха приводит человечество к продовольственному кризису, коллектив исследователей и учёных отправляется сквозь червоточину (которая предположительно соединяет области пространства-времени через большое расстояние) в путешествие, чтобы превзойти прежние ограничения для космических путешествий человека и переселить человечество на другую планету.') self.assertEqual(m.runtime, 169) self.assertEqual(m.tagline, '«Следующий шаг человечества станет величайшим»') self.assertGreater(len(m.trailers), 70) self.assertTrue('109352' in trailers_ids) self.assertTrue('gettrailer.php?quality=hd&trailer_id=109352'in trailers_files) self.assertEqual(m.genres, ['фантастика', 'драма', 'приключения']) self.assertEqual(m.countries, ['США', 'Великобритания', 'Канада']) self.assertGreaterEqual(m.profit_usa, 158445319) self.assertGreaterEqual(m.profit_russia, 24110578) self.assertGreaterEqual(m.profit_world, 592845319) self.assertEqualPersons(m.directors, ['Кристофер Нолан']) self.assertEqualPersons(m.screenwriters, ['Джонатан Нолан', 'Кристофер Нолан']) self.assertEqualPersons(m.producers, ['Кристофер Нолан', 'Линда Обст', 'Эмма Томас']) self.assertEqualPersons(m.operators, ['Хойте Ван Хойтема']) self.assertEqualPersons(m.composers, ['Ханс Циммер'])
def test_movie_main_page_id_278229(self): """ Test of movie manager, movie obtain by id (not via search) """ m = Movie(id=278229) m.get_content('main_page') m.get_content('trailers') trailers_ids = [trailer.id for trailer in m.trailers] trailers_files = [trailer.file for trailer in m.trailers] self.assertEqual(m.id, 278229) self.assertEqual(m.year, 2007) self.assertEqual(m.title, 'Без цензуры') self.assertEqual(m.title_en, 'Redacted') self.assertEqual(m.plot, 'В центре картины — небольшой отряд американских солдат на контрольно-пропускном пункте в Ираке. Причём восприятие их истории постоянно меняется. Мы видим события глазами самих солдат, представителей СМИ, иракцев и понимаем, как на каждого из них влияет происходящее, их встречи и столкновения друг с другом.') self.assertEqual(m.runtime, 90) self.assertEqual(m.tagline, '«Фильм, запрещенный к прокату во многих странах»') self.assertGreater(len(m.trailers), 3) self.assertTrue('gettrailer.php?quality=hd&trailer_id=4476' in trailers_files) self.assertTrue('4476' in trailers_ids) self.assertEqualPersons(m.actors, ['Иззи Диаз', 'Роб Дивейни', 'Ти Джонс', 'Анас Веллман', 'Майк Фигуроа', 'Яналь Кассай', 'Дхиая Калиль', 'Кел О’Нил', 'Дэниэл Стюарт-Шерман', 'Патрик Кэрролл'])
def test_movie_main_page_id_6877(self): """ Test of movie manager, movie obtain by id (not via search) """ m = Movie(id=6877) m.get_content('main_page') m.get_content('trailers') trailers_ids = [trailer.id for trailer in m.trailers] trailers_files = [trailer.file for trailer in m.trailers] self.assertEqual(m.id, 6877) self.assertEqual(m.year, 2004) self.assertEqual(m.title, 'Терминал') self.assertEqual(m.title_en, 'The Terminal') self.assertEqual( m.plot, 'Фильм рассказывает историю Виктора Наворски, отправившегося в Нью-Йорк из Восточной Европы. Пока Виктор летел в самолете, на его родине произошел государственный переворот. Оказавшись в международном аэропорту имени Джона Кеннеди с паспортом ниоткуда, он не имеет права въехать в Соединенные Штаты и должен коротать свои дни и ночи на скамейках у выхода 67, пока война в его родной стране не закончится. Тянутся недели и месяцы, и Виктор обнаруживает, что небольшой мирок терминала может быть наполнен абсурдом, щедростью, амбициями, развлечениями, желанием сохранить свой статус, интуитивной прозорливостью и даже любовью к очаровательной стюардессе Амелии. Виктору удается завоевать симпатии всех, кроме одного человека — чиновника аэропорта Фрэнка Диксона, который считает его бюрократической ошибкой, проблемой, которую он не может контролировать, но от которой жаждет избавиться.' ) self.assertEqual(m.runtime, 124) self.assertEqual(m.rating, 8.069) self.assertEqual(m.imdb_rating, 7.30) self.assertGreaterEqual(m.votes, 214662) self.assertGreaterEqual(m.imdb_votes, 381282) self.assertEqual(m.tagline, "«Жизнь - это ожидание»") self.assertEqual(len(m.trailers), 4) self.assertIn('506', trailers_ids) self.assertIn('gettrailer.php?quality=hd&trailer_id=506', trailers_files) self.assertEqual(m.genres, ['драма', 'мелодрама', 'комедия']) self.assertEqual(m.countries, ['США']) self.assertGreaterEqual(m.budget, 60000000) self.assertGreaterEqual(m.marketing, 35000000) self.assertGreaterEqual(m.profit_usa, 77872883) self.assertGreaterEqual(m.profit_russia, 1880000) self.assertGreaterEqual(m.profit_world, 218685607) self.assertEqualPersons(m.actors, [ 'Том Хэнкс', 'Кэтрин Зета-Джонс', 'Стэнли Туччи', 'Чи МакБрайд', 'Диего Луна', 'Бэрри Шебака Хенли', 'Кумар Паллана', 'Зои Салдана', 'Эдди Джонс', 'Джуд Чикколелла' ]) self.assertEqualPersons(m.directors, ['Стивен Спилберг']) self.assertEqualPersons( m.screenwriters, ['Саша Джерваси', 'Джефф Натансон', 'Эндрю Никкол']) self.assertEqualPersons( m.producers, ['Лори МакДональд', 'Уолтер Ф. Паркс', 'Стивен Спилберг']) self.assertEqualPersons(m.operators, ['Януш Камински']) self.assertEqualPersons(m.composers, ['Джон Уильямс']) self.assertEqualPersons( m.art_direction_by, ['Алекс Макдауэлл', 'Кристофер Бериэн-Мор', 'Брэд Рикер']) self.assertEqualPersons(m.editing_by, ['Майкл Кан'])
def test_movie_cast_1(self): """ Test of movie cast source page """ m = Movie(id=63991) m.get_content('cast') self.assertEqual(len(m.cast), 11) self.assertGreaterEqual(len(m.cast['director']), 1) self.assertGreaterEqual(len(m.cast['actor']), 49) self.assertGreaterEqual(len(m.cast['producer']), 4) self.assertGreaterEqual(len(m.cast['voice_director']), 1) self.assertGreaterEqual(len(m.cast['translator']), 1) self.assertGreaterEqual(len(m.cast['voice']), 4) self.assertGreaterEqual(len(m.cast['writer']), 3) self.assertGreaterEqual(len(m.cast['operator']), 1) self.assertGreaterEqual(len(m.cast['composer']), 1) self.assertGreaterEqual(len(m.cast['design']), 1) self.assertGreaterEqual(len(m.cast['editor']), 1) # with $ self.assertEqual(m.cast['actor'][0].person.id, 6245) self.assertEqual(m.cast['actor'][0].person.name, 'Джонни Депп') self.assertEqual(m.cast['actor'][0].person.name_en, 'Johnny Depp') self.assertEqual(m.cast['actor'][0].name, 'Jack Sparrow') # no mention self.assertEqual(m.cast['actor'][16].person.id, 24683) self.assertEqual(m.cast['actor'][16].name, 'Captain Hector Barbossa') # voice self.assertEqual(m.cast['actor'][63].person.id, 288908) self.assertEqual(m.cast['actor'][63].name, 'Parrot') self.assertEqual(m.cast['actor'][63].voice, True) # with $ and no name self.assertEqual(m.cast['producer'][0].name, '')
def get_episode_data(title): movies = find_movies_matching(title) if len(movies) == 0: raise Exception("No shows found with title '%s'" % title) # ERROR time.sleep(12) movie = Movie(id=movies[0].id) time.sleep(2) seriesInfo = get_film_info(movie) time.sleep(8) episode_data = parse_episodes(movie) seriesInfo["title"] = movies[0].title.strip( ) # override title (to avoid brackets) return {"seriesInfo": seriesInfo, "seasons": episode_data}
def parse(self): from kinopoisk.movie import Movie self.instance.movie = Movie.get_parsed('career_link', self.content) role = self.extract('note', to_str=True) role = self.split_triple_dots(role) role_name = None if len(role) > 1: role_name = self.prepare_str(role[1]).replace(', озвучка', '').replace('; короткометражка', '') if 'короткометражка' in role[1]: self.instance.movie.genres.append('короткометражка') if 'озвучка' in role[1]: self.instance.voice = True self.instance.name = role_name self.instance.set_source('role_link')
def search(update, context): context.bot.send_message(chat_id=update.effective_chat.id, text = 'Ищу для вас информацию') a = ' '.join(context.args) movie_list = Movie.objects.search(a) movie = Movie(id = movie_list[0].id) movie.get_content("main_page") movie.get_content('posters') posters = movie.posters context.bot.send_photo(chat_id= update.effective_chat.id, photo=posters[0]) movie.plot b = movie.plot url = "https://kinopoisk.ru/film/" + str(movie_list[0].id) context.bot.send_message(chat_id=update.effective_chat.id, text = b) context.bot.send_message(chat_id=update.effective_chat.id, text = f'Ссылка на фильм:{url}')
def test_movie_main_page_id_4374(self): """ Test of movie manager, movie obtain by id (not via search) """ m = Movie(id=4374) m.get_content('main_page') m.get_content('trailers') trailers_ids = [trailer.id for trailer in m.trailers] trailers_files = [trailer.file for trailer in m.trailers] self.assertEqual(m.id, 4374) self.assertEqual(m.year, 2003) self.assertEqual(m.title, 'Пираты Карибского моря: Проклятие Черной жемчужины') self.assertEqual(m.title_en, 'Pirates of the Caribbean: The Curse of the Black Pearl') self.assertEqual(m.plot, 'Жизнь харизматичного авантюриста, капитана Джека Воробья, полная увлекательных приключений, резко меняется, когда его заклятый враг — капитан Барбосса — похищает корабль Джека, Черную Жемчужину, а затем нападает на Порт Ройал и крадет прекрасную дочь губернатора, Элизабет Свонн. Друг детства Элизабет, Уилл Тернер, вместе с Джеком возглавляет спасательную экспедицию на самом быстром корабле Британии, в попытке вызволить девушку из плена и заодно отобрать у злодея Черную Жемчужину. Вслед за этой парочкой отправляется амбициозный коммодор Норрингтон, который к тому же числится женихом Элизабет. Однако Уилл не знает, что над Барбоссой висит вечное проклятие, при лунном свете превращающее его с командой в живых скелетов. Проклятье будет снято лишь тогда, когда украденное золото Ацтеков будет возвращено пиратами на старое место.') self.assertEqual(m.runtime, 143) self.assertEqual(m.rating, 8.335) self.assertEqual(m.imdb_rating, 8.00) self.assertGreaterEqual(m.votes, 327195) self.assertGreaterEqual(m.imdb_votes, 859395) self.assertEqual(m.tagline, "«Over 3000 Islands of Paradise -- For Some it's A Blessing -- For Others... It's A Curse»") self.assertGreater(len(m.trailers), 2) self.assertTrue('529' in trailers_ids) self.assertTrue('gettrailer.php?quality=hd&trailer_id=529' in trailers_files) self.assertEqual(m.genres, ['фэнтези', 'боевик', 'приключения']) self.assertEqual(m.countries, ['США']) self.assertGreaterEqual(m.budget, 140000000) self.assertGreaterEqual(m.marketing, 40000000) self.assertGreaterEqual(m.profit_usa, 305413918) self.assertGreaterEqual(m.profit_russia, 9060000) self.assertGreaterEqual(m.profit_world, 654264015) self.assertEqualPersons(m.actors, ['Джонни Депп', 'Джеффри Раш', 'Орландо Блум', 'Кира Найтли', 'Джек Девенпорт', 'Кевин МакНэлли', 'Джонатан Прайс', 'Ли Аренберг', 'Макензи Крук', 'Дэвид Бэйли']) self.assertEqualPersons(m.directors, ['Гор Вербински']) self.assertEqualPersons(m.screenwriters, ['Тед Эллиот', 'Терри Россио', 'Стюарт Битти']) self.assertEqualPersons(m.producers, ['Джерри Брукхаймер', 'Пол Дисон', 'Брюс Хендрикс']) self.assertEqualPersons(m.operators, ['Дариуш Вольски']) self.assertEqualPersons(m.composers, ['Клаус Бадельт']) self.assertEqualPersons(m.art_direction_by, ['Брайан Моррис', 'Дерек Р. Хилл', 'Майкл Пауэлс']) self.assertEqualPersons(m.editing_by, ['Стивен Е. Ривкин', 'Артур Шмидт', 'Крэйг Вуд'])
def test_movie_similar_movies(self): m = Movie(id=195524) # I Am Legend / Я – легенда m.get_content('similar_movies') self.assertTrue(m.similar_movies) # Check that the list is not empty
def test_movie_series_main_page_bigband(self): m_id = 306084 m = Movie(id=m_id) # The Big Bang Theory / Теория большого взрыва m.get_content('main_page') self.assertTrue(m.series) self.assertEqual(m_id, m.id)
def test_movie_series_main_page_kickass(self): m = Movie(id=419200) # Kick-Ass / Пипец m.get_content('main_page') self.assertFalse(m.series) self.assertRaises(ValueError, m.get_content, ('series',))
def test_movie_repr(self): instance = Movie(title='Молчание ягнят', title_en='The Silence of the Lambs', year='1990') self.assertEqual(instance.__repr__(), 'Молчание ягнят (The Silence of the Lambs), 1990')
def test_movie_main_page_empty_actors(self): m = Movie(id=926005) m.get_content('main_page') self.assertEqual(m.actors, [])