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()