class HeaderTests(unittest.TestCase): def setUp(self): self.driver = TestBrowser().get_browser() self.header = Header(self.driver) def tearDown(self): self.driver.quit() def test_search(self): currentPage = self.driver.current_url self.header.do_search(_headerSearchTextNoSpaces) newPage = self.driver.current_url self.assertNotEqual(currentPage, newPage, "Searching did not navigate to a new page") def test_search_random_input_from_excel(self): # Get a random row greater than 0 to avoid the header and get that search data from the default input file # [0] is the search string, [1] is the theater index, [2] is theater name, [3] is zip code index = randint(1,6) input = ReadExcel.get_sheet_values() searchText = input[index][0] expectedZip = str(input[index][3]) currentPage = self.driver.current_url self.header.do_search(searchText) newPage = self.driver.current_url self.assertNotEqual(currentPage, newPage, "Searching did not navigate to a new page") self.assertIn(expectedZip, self.driver.page_source, "Expected zip code not found in results page")
class TheaterDetailTests(unittest.TestCase): def setUp(self): self.driver = TestBrowser().get_browser() # For internal testing purposes, navigate to a theater details page self.header = Header(self.driver) self.header.do_search(_headerSearchText) self.theaters = Theaters(self.driver) self.theaters.click_theater(_theaterLinkText) self.theater = TheaterDetailPage.TheaterDetail(self.driver) self.theaterCalendar = TheaterDetailPage.TheaterCalendar(self.driver) def tearDown(self): self.driver.quit() def test_change_days(self): currentPage = self.driver.current_url self.theaterCalendar.click_today_plus_two() newPage = self.driver.current_url self.assertNotEqual(currentPage, newPage, "Selecting a different day did not navigate to a new page") def test_movies_list_different_days(self): currentMovieList = self.theater.theaterMoviesList self.theaterCalendar.click_today_plus_one() newTheater = TheaterDetailPage.TheaterDetail(self.driver) newMovieList = newTheater.theaterMoviesList self.assertNotEqual(currentMovieList[0].movieShowTimeList[0], newMovieList[0].movieShowTimeList[0], "Movie date and time from today matches movie date and time from tomorrow")
class TheaterDetailTests(unittest.TestCase): def setUp(self): self.driver = TestBrowser().get_browser() # For internal testing purposes, navigate to a theater details page self.header = Header(self.driver) self.header.do_search(_headerSearchText) self.theaters = Theaters(self.driver) self.theater = TheaterDetailPage.TheaterDetail(self.driver) self.theaterCalendar = TheaterDetailPage.TheaterCalendar(self.driver) def tearDown(self): self.driver.quit() def test_change_days(self): currentSelectDate = self.theaterCalendar.selectedDate self.theaterCalendar.click_date_by_index(2) newTheaterCalendar = TheaterDetailPage.TheaterCalendar(self.driver) newSelectDate = newTheaterCalendar.selectedDate self.assertNotEqual(currentSelectDate, newSelectDate, "Selecting a different day did not navigate to a new page") def test_movies_list_different_days(self): currentMovieList = self.theater.theaterMoviesList currentSelectDate = self.theaterCalendar.selectedDate self.theaterCalendar.click_date_by_index(1) newTheater = TheaterDetailPage.TheaterDetail(self.driver) newMovieList = newTheater.theaterMoviesList newTheaterCalendar = TheaterDetailPage.TheaterCalendar(self.driver) newSelectDate = newTheaterCalendar.selectedDate self.assertNotEqual(currentSelectDate+currentMovieList[0].movieShowTimeList[0], newSelectDate+newMovieList[0].movieShowTimeList[0], "Movie date and time from today matches movie date and time from tomorrow") def test_search_random_input_from_excel(self): # Get a random row greater than 0 to avoid the header and get that search data from the default input file # [0] is the search string, [1] is the theater index, [2] is theater name, [3] is zip code index = randint(1,6) input = ReadExcel.get_sheet_values() searchText = input[index][0] theaterIndex = input[index][1] theaterText = input[index][2] if(_headerSearchText != searchText): # Setup did a different search than we want - redo the search and update the variables self.header = Header(self.driver) self.header.do_search(searchText) self.theaters = Theaters(self.driver) self.theater = TheaterDetailPage.TheaterDetail(self.driver, theaterIndex) theaterName = self.theater.theaterName self.assertIn(theaterText.lower(), theaterName.lower(), "Did not end up on theater detail page for selected theater")
class TheatersTests(unittest.TestCase): def setUp(self): self.driver = TestBrowser().get_browser() # For internal testing purposes, navigate to the theater search results page self.header = Header(self.driver) self.header.do_search(_headerSearchText) self.theaters = Theaters(self.driver) def tearDown(self): self.driver.quit() def test_theaters_list(self): self.assertNotEqual(0, len(self.theaters.theatersList), "Did not create theaters list") self.assertNotEqual(0, len(self.theaters.theatersList[0]), "Did not get a valid list of theaters")
class TheatersTests(unittest.TestCase): def setUp(self): self.driver = TestBrowser().get_browser() # For internal testing purposes, navigate to the theater search results page self.header = Header(self.driver) self.header.do_search(_headerSearchText) self.theaters = Theaters(self.driver) def tearDown(self): self.driver.quit() def test_theaters_list(self): self.assertNotEqual(0, len(self.theaters.theatersList), "Did not create theaters list") self.assertNotEqual(0, len(self.theaters.theatersList[0]), "Did not get a valid list of theaters") def test_click_theater_bad_input_text(self): self.assertRaises(NoSuchElementException, self.theaters.click_theater, _headerSearchTextNoSpaces) def test_click_theater_valid_input_text(self): currentPage = self.driver.current_url self.theaters.click_theater(_theaterLinkText) newPage = self.driver.current_url theaterName = TheaterDetailPage.TheaterDetail(self.driver).theaterName self.assertNotEqual(currentPage, newPage, "Selecting a theater did not navigate to a new page") self.assertIn(_theaterLinkText.lower(), theaterName.lower(), "Did not end up on theater detail page for selected theater") def test_search_random_input_from_excel(self): # Get a random row greater than 0 to avoid the header and get that search data from the default input file # Within each row of data in the input file, [0] is the search string, [1] is the theater name, [2] is zip code index = randint(1,6) input = ReadExcel.get_sheet_values() searchText = input[index][0] theaterText = input[index][1] if(_headerSearchText != searchText): # Setup did a different search than we want - redo the search and update the variables self.header = Header(self.driver) self.header.do_search(searchText) self.theaters = Theaters(self.driver) currentPage = self.driver.current_url self.theaters.click_theater(theaterText) newPage = self.driver.current_url theaterName = TheaterDetailPage.TheaterDetail(self.driver).theaterName self.assertNotEqual(currentPage, newPage, "Selecting a theater did not navigate to a new page") self.assertIn(theaterText.lower(), theaterName.lower(), "Did not end up on theater detail page for selected theater")
def setUp(self): self.driver = TestBrowser().get_browser() # For internal testing purposes, navigate to a theater details page self.header = Header(self.driver) self.header.do_search(_headerSearchText) self.theaters = Theaters(self.driver) self.theater = TheaterDetailPage.TheaterDetail(self.driver) self.theaterCalendar = TheaterDetailPage.TheaterCalendar(self.driver)
class HeaderTests(unittest.TestCase): def setUp(self): self.driver = TestBrowser().get_browser() self.header = Header(self.driver) def tearDown(self): self.driver.quit() def test_movie_list(self): self.assertNotEqual(0, len(self.header.movieList), "Did not create movie list") self.assertNotEqual(0, len(self.header.movieList[0]), "Did not get a valid list of movies") def test_movie_selection(self): currentPage = self.driver.current_url i = self.header.select_random_movie() newPage = self.driver.current_url self.assertNotEqual(currentPage, newPage, "Selecting a movie did not navigate to a new page") self.assertEqual(self.header.movieList[i].lower(), self.driver.find_element_by_tag_name("h1").text.lower(), "Did not end up on movie listing page for selected movie") def test_search(self): currentPage = self.driver.current_url self.header.do_search(_headerSearchTextNoSpaces) newPage = self.driver.current_url self.assertNotEqual(currentPage, newPage, "Searching did not navigate to a new page") self.assertIn(_headerSearchTextNoSpaces, newPage, "Search text not found in search URL string") def test_search_random_input_from_excel(self): # Get a random row greater than 0 to avoid the header and get that search data from the default input file # Within each row of data in the input file, [0] is the search string, [1] is the theater name, [2] is zip code index = randint(1,6) input = ReadExcel.get_sheet_values() searchText = input[index][0] expectedZip = str(input[index][2]) currentPage = self.driver.current_url self.header.do_search(searchText) newPage = self.driver.current_url self.assertNotEqual(currentPage, newPage, "Searching did not navigate to a new page") self.assertIn(expectedZip, self.driver.page_source, "Expected zip code not found in results page")
def test_search_random_input_from_excel(self): # Get a random row greater than 0 to avoid the header and get that search data from the default input file # [0] is the search string, [1] is the theater index, [2] is theater name, [3] is zip code index = randint(1,6) input = ReadExcel.get_sheet_values() searchText = input[index][0] theaterIndex = input[index][1] theaterText = input[index][2] if(_headerSearchText != searchText): # Setup did a different search than we want - redo the search and update the variables self.header = Header(self.driver) self.header.do_search(searchText) self.theaters = Theaters(self.driver) self.theater = TheaterDetailPage.TheaterDetail(self.driver, theaterIndex) theaterName = self.theater.theaterName self.assertIn(theaterText.lower(), theaterName.lower(), "Did not end up on theater detail page for selected theater")
def test_search_random_input_from_excel(self): # Get a random row greater than 0 to avoid the header and get that search data from the default input file # Within each row of data in the input file, [0] is the search string, [1] is the theater name, [2] is zip code index = randint(1,6) input = ReadExcel.get_sheet_values() searchText = input[index][0] theaterText = input[index][1] if(_headerSearchText != searchText): # Setup did a different search than we want - redo the search and update the variables self.header = Header(self.driver) self.header.do_search(searchText) self.theaters = Theaters(self.driver) currentPage = self.driver.current_url self.theaters.click_theater(theaterText) newPage = self.driver.current_url theaterName = TheaterDetailPage.TheaterDetail(self.driver).theaterName self.assertNotEqual(currentPage, newPage, "Selecting a theater did not navigate to a new page") self.assertIn(theaterText.lower(), theaterName.lower(), "Did not end up on theater detail page for selected theater")
def setUp(self): self.driver = TestBrowser().get_browser() # For internal testing purposes, navigate to the theater search results page self.header = Header(self.driver) self.header.do_search(_headerSearchText) self.theaters = Theaters(self.driver)
def setUp(self): self.driver = TestBrowser().get_browser() self.header = Header(self.driver)
class MovieInfoTests(unittest.TestCase): def setUp(self): self.driver = TestBrowser().get_browser() # For internal testing purposes, navigate to a theater details page self.header = Header(self.driver) self.header.do_search(_headerSearchText) self.theaters = Theaters(self.driver) self.theaters.click_theater(_theaterLinkText) self.theater = TheaterDetailPage.TheaterDetail(self.driver) self.theaterCalendar = TheaterDetailPage.TheaterCalendar(self.driver) def tearDown(self): self.driver.quit() def test_log_csv(self): currentFileSize = 0 try: currentFileSize = os.path.getsize(_csvFileName) except FileNotFoundError: # Error is due to file not existing which means size 0 so do nothing pass # TODO: After TheaterDetailPage.TheaterCalendar has index based function, rewrite below in a loop # Initial load of self.theater is today so no need to click, just write data FileOutput.WriteCSV.write_movie_details(self.theater, _csvFileName) self.theaterCalendar.click_today_plus_one() newDay = TheaterDetailPage.TheaterDetail(self.driver) FileOutput.WriteCSV.write_movie_details(newDay, _csvFileName) self.theaterCalendar.click_today_plus_two() newDay = TheaterDetailPage.TheaterDetail(self.driver) FileOutput.WriteCSV.write_movie_details(newDay, _csvFileName) self.theaterCalendar.click_today_plus_three() newDay = TheaterDetailPage.TheaterDetail(self.driver) FileOutput.WriteCSV.write_movie_details(newDay, _csvFileName) self.theaterCalendar.click_today_plus_four() newDay = TheaterDetailPage.TheaterDetail(self.driver) FileOutput.WriteCSV.write_movie_details(newDay, _csvFileName) self.theaterCalendar.click_today_plus_five() newDay = TheaterDetailPage.TheaterDetail(self.driver) FileOutput.WriteCSV.write_movie_details(newDay, _csvFileName) self.theaterCalendar.click_today_plus_six() newDay = TheaterDetailPage.TheaterDetail(self.driver) FileOutput.WriteCSV.write_movie_details(newDay, _csvFileName) newFileSize = os.path.getsize(_csvFileName) self.assertLess(currentFileSize, newFileSize, "Did not write new data to csv output file") def test_log_excel(self): currentFileSize = 0 try: currentFileSize = os.path.getsize(_excelFileName) except FileNotFoundError: # Error is due to file not existing which means size 0 so do nothing pass # TODO: After TheaterDetailPage.TheaterCalendar has index based function, rewrite below in a loop # Initial load of self.theater is today so no need to click, just write data. FileOutput.WriteExcel.write_movie_details(self.theater, _excelFileName) self.theaterCalendar.click_today_plus_one() newDay = TheaterDetailPage.TheaterDetail(self.driver) FileOutput.WriteExcel.write_movie_details(newDay, _excelFileName) self.theaterCalendar.click_today_plus_two() newDay = TheaterDetailPage.TheaterDetail(self.driver) FileOutput.WriteExcel.write_movie_details(newDay, _excelFileName) self.theaterCalendar.click_today_plus_three() TheaterDetailPage.TheaterDetail(self.driver) FileOutput.WriteExcel.write_movie_details(newDay, _excelFileName) self.theaterCalendar.click_today_plus_four() newDay = TheaterDetailPage.TheaterDetail(self.driver) FileOutput.WriteExcel.write_movie_details(newDay, _excelFileName) self.theaterCalendar.click_today_plus_five() newDay = TheaterDetailPage.TheaterDetail(self.driver) FileOutput.WriteExcel.write_movie_details(newDay, _excelFileName) self.theaterCalendar.click_today_plus_six() newDay = TheaterDetailPage.TheaterDetail(self.driver) FileOutput.WriteExcel.write_movie_details(newDay, _excelFileName) newFileSize = os.path.getsize(_excelFileName) self.assertLess(currentFileSize, newFileSize, "Did not write new data to Excel output file") def test_log_json(self): currentFileSize = 0 try: currentFileSize = os.path.getsize(_jsonFileName) except FileNotFoundError: # Error is due to file not existing which means size 0 so do nothing pass # TODO: After TheaterDetailPage.TheaterCalendar has index based function, rewrite below in a loop # Initial load of self.theater is today so no need to click, just write data. FileOutput.WriteJSON.write_movie_details(self.theater, _jsonFileName) self.theaterCalendar.click_today_plus_one() newDay = TheaterDetailPage.TheaterDetail(self.driver) FileOutput.WriteJSON.write_movie_details(newDay, _jsonFileName) self.theaterCalendar.click_today_plus_two() newDay = TheaterDetailPage.TheaterDetail(self.driver) FileOutput.WriteJSON.write_movie_details(newDay, _jsonFileName) self.theaterCalendar.click_today_plus_three() TheaterDetailPage.TheaterDetail(self.driver) FileOutput.WriteJSON.write_movie_details(newDay, _jsonFileName) self.theaterCalendar.click_today_plus_four() newDay = TheaterDetailPage.TheaterDetail(self.driver) FileOutput.WriteJSON.write_movie_details(newDay, _jsonFileName) self.theaterCalendar.click_today_plus_five() newDay = TheaterDetailPage.TheaterDetail(self.driver) FileOutput.WriteJSON.write_movie_details(newDay, _jsonFileName) self.theaterCalendar.click_today_plus_six() newDay = TheaterDetailPage.TheaterDetail(self.driver) FileOutput.WriteJSON.write_movie_details(newDay, _jsonFileName) newFileSize = os.path.getsize(_jsonFileName) self.assertLess(currentFileSize, newFileSize, "Did not write new data to JSON output file")