def test_parser(
        self,
        site_mock,
        base_init_mock,
        browser_mock,
        parse_movie_mock,
        progress_print_mock,
    ):  # pylint: disable=too-many-arguments
        browser_mock.page_source = self.my_ratings
        parser = ListalRatingsParser(None)
        parser.args = False
        parser.movies = []
        parser.site = site_mock
        parser.site.site_name = "Listal"
        parser.site.browser = browser_mock
        parser.args = None

        parser.parse()

        self.assertEqual(60, parse_movie_mock.call_count)
        self.assertEqual(60, len(parser.movies))
        self.assertEqual(dict, type(parser.movies[0]))
        self.assertEqual("Fight Club", parser.movies[0]["title"])
        self.assertEqual("1596", parser.movies[0]["listal"]["id"])
        self.assertEqual("https://www.listal.com/movie/fight-club",
                         parser.movies[0]["listal"]["url"])
    def test_parser(self, site_mock, base_init_mock, browser_mock,
                    parse_movie_mock, progress_print_mock):  # pylint: disable=too-many-arguments
        browser_mock.page_source = self.my_ratings
        parser = ListalRatingsParser(None)
        parser.args = False
        parser.movies = []
        parser.site = site_mock
        parser.site.site_name = 'Listal'
        parser.site.browser = browser_mock
        parser.args = None

        parser.parse()

        self.assertEqual(60, parse_movie_mock.call_count)
        self.assertEqual(60, len(parser.movies))
        self.assertEqual(dict, type(parser.movies[0]))
        self.assertEqual('Fight Club', parser.movies[0]['title'])
        self.assertEqual('1596', parser.movies[0]['listal']['id'])
        self.assertEqual('http://www.listal.com/movie/fight-club',
                         parser.movies[0]['listal']['url'])
    def test_parser_single_movie(self, site_mock, base_init_mock,
                                 browser_mock):
        browser_mock.page_source = self.my_ratings
        parser = ListalRatingsParser(None)
        parser.movies = []
        parser.site = site_mock
        parser.site.site_name = 'Listal'
        parser.site.browser = browser_mock
        browser_mock.page_source = self.detail_page
        movie = dict()

        parser.parse_movie_details_page(movie)

        self.assertEqual(1999, movie['year'])
        self.assertEqual(10, movie['listal']['my_rating'])
        self.assertEqual('tt0137523', movie['imdb']['id'])
        self.assertEqual('http://www.imdb.com/title/tt0137523',
                         movie['imdb']['url'])
    def test_parser_single_movie(self, site_mock, base_init_mock,
                                 browser_mock):
        browser_mock.page_source = self.my_ratings
        parser = ListalRatingsParser(None)
        parser.movies = []
        parser.site = site_mock
        parser.site.site_name = "Listal"
        parser.site.browser = browser_mock
        browser_mock.page_source = self.detail_page
        movie = dict()

        parser.parse_movie_details_page(movie)

        self.assertEqual(1999, movie["year"])
        self.assertEqual(10, movie["listal"]["my_rating"])
        self.assertEqual("tt0137523", movie["imdb"]["id"])
        self.assertEqual("https://www.imdb.com/title/tt0137523",
                         movie["imdb"]["url"])
    def test_init(self, browser_mock, base_init_mock):
        ListalRatingsParser(None)

        self.assertTrue(base_init_mock.called)