示例#1
0
class Application(object):

    def __init__(self):
        self.current_page = LoginPage()

    def login(self, credentials):
        self.current_page.log_in(credentials)
        homepage = HomePage()
        try:
            assert homepage.is_logged_in()
            log.info('Logged in as %s' % credentials)
        except AssertionError as e:
            log.error('Error while logging as %s' % credentials)
            raise e
        self.current_page = homepage

    def logout(self):
        self.current_page.log_out()
        self.current_page = LoginPage()
        try:
            assert self.current_page.is_logged_out()
            log.info('Logged out')
        except (AssertionError, NoSuchElementException) as e:
            log.error('Error while logging out!')
            raise e

    def check_movie_in_list(self, title):
        try:
            assert self.current_page.check_movie_in_list(title)
            log.info('Movie %s is in movies list' % title)
        except AssertionError as e:
            log.error('Movie %s is NOT in movies list' % title)
            raise e

    def add_movie(self, movie):
        self.current_page.add()
        add_page = AddMoviePage()
        log.info('Adding movie %s' % movie['title'])
        add_page.add_movie(movie)
        movie_page = MoviePage()
        movie_page.check_title(movie['title'])
        movie_page.navigate_home()
        self.current_page = HomePage()

    def navigate_to_movie(self, title):
        self.current_page.navigate_to_movie(title)
        self.current_page = MoviePage()

    def delete_movie(self):
        """
        Executed on MoviePage
        :return: HomePage
        """

        self.current_page.delete()
        self.current_page = HomePage()

    def check_movie_is_not_on_page(self, title):
        """
        Executed on HomePage
        :param title: Movie title (string)
        :return: void
        """

        try:
            assert not self.current_page.check_movie_in_list(title)
            log.info('Movie %s is NOT movies list' % title)
        except AssertionError as e:
            log.error('Movie %s is in movies list' % title)
            raise e

    def refresh(self):
        """
        Refreshes current page
        :return: void
        """
        self.current_page.refresh()