def test_6(self): """http://litmus.pculture.org/show_test.cgi?id=6 add feed from MiroGuide. 1. Open Miro 2. search for a feed and add it. 3. Verify feed added 4. Cleanup """ setAutoWaitTimeout(60) pass #set the search regions reg = MiroRegions() miro = MiroApp() feed = "Studio" search = "Studio sketch" try: miro.click_sidebar_tab(reg, "Miro") time.sleep(5) gr = Region(reg.mtb) gr.setH(300) gr.click(Pattern("guide_search.png")) type(search +"\n") time.sleep(5) reg.m.find(Pattern("add_feed.png")) click(reg.m.getLastMatch()) time.sleep(5) miro.click_podcast(reg, feed) finally: #4. cleanup miro.delete_feed(reg, feed)
def test_441(self): """http://litmus.pculture.org/show_test.cgi?id=441 delete podcast item outside of miro 1. add TWO STUPID feed 2. download the Flip Faceitem 3. restart miro 4. delete the item 5. restart miro 6. verify item still deleted """ reg = MiroRegions() miro = MiroApp() #Set Global Preferences miro.open_prefs(reg) prefs = PreferencesPanel() general_tab = prefs.open_tab("General") general_tab.close_prefs() url = "http://qa.pculture.org/feeds_test/2stupidvideos.xml" feed = "TWO STUPID" title = "Flip" # item title updates when download completes #add feed and download flip face item miro.add_feed(reg, url,feed) miro.toggle_normal(reg) miro.tab_search(reg, title) if reg.m.exists("button_download.png",10): click(reg.m.getLastMatch()) miro.wait_for_item_in_tab(reg, tab="Videos",item=title) reg.m.find(title) reg.m.click(title) reg.mtb.click("tabsearch_clear.png") filepath = miro.store_item_path(reg) if os.path.exists(filepath): print "able to verify on os level" found_file = True miro.tab_search(reg, title) reg.m.click(title) type(Key.DELETE) if found_file == True: if os.path.exists(filepath): self.fail("file not deleted from filesystem") else: miro.quit_miro() miro.restart_miro() miro.click_podcast(reg, feed) miro.tab_search(reg, term) if not reg.m.exists(Pattern("button_download.png")): self.fail("no download button, file not deleted") else: reg.m.click(Pattern("button_download.png")) if miro.confirm_download_started(reg, title) != "in_progress": self.fail("item not properely deleted") #cleanup miro.delete_feed(reg, feed)
def test_657(self): """http://litmus.pculture.org/show_test.cgi?id=657 edit multiple fields 1. add Static List feed 2. download the Earth Eats item 3. Edit item metadata """ reg = MiroRegions() miro = MiroApp() time.sleep(5) url = "http://ringtales.com/nyrss.xml" feed = "The New" title = "Cat" new_metadata_list = [ ["show","Animated Cartoons", "658"], ["episode_id","nya", "670"], ["season_no","25", "671"], ["episode_no","43", "672"], ["video_kind","Clip", "652"], ] try: #start clean miro.delete_feed(reg, feed) #add feed and download earth eats item miro.add_feed(reg, url,feed) miro.toggle_normal(reg) miro.tab_search(reg, title) if reg.m.exists("button_download.png",10): click(reg.m.getLastMatch()) miro.wait_for_item_in_tab(reg, "Videos",item=title) miro.click_podcast(reg, feed) miro.tab_search(reg, title) reg.m.click(title) miro.edit_item_video_metadata_bulk(reg, new_metadata_list) time.sleep(2) miro.click_sidebar_tab(reg, "Videos") miro.tab_search(reg, title) reg.mtb.click("Clip") if reg.m.exists(title): reg.mtb.click("All") else: self.fail("item not found in Clips filter") finally: miro.quit_miro() myLib.config.set_def_db_and_prefs()
def test_322(self): """http://litmus.pculture.org/show_test.cgi?id=322 search and save as a podcast 1. Perform a search 2. Click off the tab 3. Click back and verify the search is remembered. 4. Cleanup """ setAutoWaitTimeout(60) reg = MiroRegions() miro = MiroApp() #Set Global Preferences miro.open_prefs(reg) prefs = PreferencesPanel() podcasts_tab = prefs.open_tab("Podcasts") podcasts_tab.autodownload_setting("Off") podcasts_tab.close_prefs() searches = {"blip": "python", "YouTube": "cosmicomics", "Revver": "Beiber", "Yahoo": "Canada", "DailyMotion": "Russia", "Metavid": "africa", "Mininova": "Creative Commons", "Goog": "Toronto"} for engine, term in searches.iteritems(): miro.click_sidebar_tab(reg, "search") miro.search_tab_search(reg, term, engine) time.sleep(10) reg.mtb.click("button_save_as_podcast.png") if engine == "blip": saved_search = engine else: saved_search = engine +" for" time.sleep(10) #give some time for everything to load up miro.click_podcast(reg, saved_search) miro.shortcut("r") time.sleep(5) miro.get_podcasts_region(reg) miro.tab_search(reg, term) try: self.assertTrue(reg.m.exists(engine)) miro.delete_feed(reg, engine) except: miro.log_result("322","test 322, failed for " +engine+": "+term, status="fail") #cleanup for x in searches.keys(): miro.delete_feed(reg, x)
def test_116(self): """http://litmus.pculture.org/show_test.cgi?id=116 add multiple feeds to a folder Litmus Test Title:: 116 - add multiple feeds to a new folder Description: 1. Import 2 OPML file of some feeds and folders 2. select several feeds and add to new folder 3. confirm feeds in folders 4. Cleanup """ setAutoWaitTimeout(myLib.testvars.timeout) #set the search regions reg = MiroRegions() miro = MiroApp() miro.delete_all_podcasts(reg) opml_path = os.path.join(os.getenv("PCF_TEST_HOME"),"Miro","TestData","folder-test.opml") opml_path2 = os.path.join(os.getenv("PCF_TEST_HOME"),"Miro","TestData","folder-test2.opml") feed_list = ["Google", "Onion","two ronnies","Vimeo"] added_feeds = [] new_folder = "multi folder" #1. Add the feeds miro.import_opml(reg, opml_path) time.sleep(15) #give a chance to add and update miro.import_opml(reg, opml_path2) time.sleep(15) #give a chance to add and update #expand all the folders p = miro.get_podcasts_region(reg) miro.expand_feed_folder(reg, "GEEKY") miro.expand_feed_folder(reg, "FUN") #set the feeds region p = miro.get_podcasts_region(reg) #select multiple feeds for the folders p.click("BIRCHBOXTV") added_feeds = miro.multi_select(region=p,item_list=feed_list) if len(added_feeds) > 0: added_feeds.append("BIRCHBOXTV") else: self.fail("feeds not selected properly for adding to a folder") time.sleep(5) reg.m.click("New Folder") time.sleep(2) type(new_folder + "\n") time.sleep(5) feed_match = miro.click_podcast(reg, new_folder) rightClick(Location(feed_match)) if exists("Update",2): click(getLastMatch()) try: for feed in added_feeds: assert miro.tab_search(reg, title=feed,confirm_present=True), True except: self.fail("%s feed not found" % feed) finally: #cleanup miro.delete_all_podcasts(reg)
def test_138(self): #shortened as there no more feed counter and can't count too much stuff. """http://litmus.pculture.org/show_test.cgi?id=138 clear out old items. Litmus Test Title:: 138 Channels - clear out old items Description: 1. Add a feed that adds five new items each time it's updated. 2. Update the feed to add new items. 3. Modify old items settings to verify items cleared. 4. Cleanup """ #set the search regions reg = MiroRegions() miro = MiroApp() url = "http://bluesock.org/~willg/cgi-bin/newitemsfeed.cgi" feed = "my feed" miro.add_feed(reg, url,feed) miro.get_podcasts_region(reg) miro.tab_search(reg, "my feed") miro.toggle_list(reg) miro.count_images(reg, img="my feed",region="list",num_expected=5) miro.click_podcast(reg, feed) miro.shortcut("r") time.sleep(10) miro.get_podcasts_region(reg) if miro.count_images(reg, img="my feed",region="list",num_expected=10) == 10: miro.log_result("99","test_92") #verifies update podcast shortcut miro.click_podcast(reg, feed) for x in range(0,3): miro.shortcut("r") time.sleep(3) miro.open_podcast_settings(reg) miro.change_podcast_settings(reg, option="Podcast Items",setting="Keep 0") time.sleep(2) miro.get_podcasts_region(reg) miro.count_images(reg, img="my feed",region="list",num_expected=5) #4. cleanup miro.delete_feed(reg, "my feed")
def test_722(self): """http://litmus.pculture.org/show_test.cgi?id=722 delete feeds and folders confirm dialog. Litmus Test Title:: 722 - delete feeds confirm dialog Description: 1. Import OPML file of some feeds and folders 2. 1 feed and 1 folder 3. Delete, verify confirm dialog, and delete 4. Cleanup """ setAutoWaitTimeout(myLib.testvars.timeout) #set the search regions reg = MiroRegions() miro = MiroApp() miro.delete_all_podcasts(reg) opml_path = os.path.join(os.getenv("PCF_TEST_HOME"),"Miro","TestData","folder-test.opml") feed = "Featured" folder = "GEEKY" feedlist = ["Google", "Make", "GEEKY", "Featured"] #1. Add the feeds miro.import_opml(reg, opml_path) p = miro.get_podcasts_region(reg) miro.click_podcast(reg, feed) #2. Select the folder too keyDown(Key.SHIFT) p.click(folder) keyUp(Key.SHIFT) #3. Delete type(Key.DELETE) for x in feedlist: miro.count_images(reg, img=x,region="main",num_expected=1) type(Key.ENTER) time.sleep(2) #4. Cleanup miro.delete_all_podcasts(reg) p = miro.get_podcasts_region(reg) for x in feedlist: if not p.exists(x): miro.log_result("202","test_722")
def test_79(self): """http://litmus.pculture.org/show_test.cgi?id=79 Search - New Search Podcast: Engine Steps to Perform: 1. Select Sidebar -> New Search Podcast 2. Enter a search term 3. Select the Search Engine radio button 4. Select a search engine from the pulldown menu 5. Select Create Podcast """ reg = MiroRegions() miro = MiroApp() #Set Global Preferences miro.open_prefs(reg) prefs = PreferencesPanel() podcasts_tab = prefs.open_tab("Podcasts") podcasts_tab.autodownload_setting("Off") podcasts_tab.close_prefs() searches = { "Yahoo": "Canada", "DailyMotion": "Ontario", "YouTube": "toronto"} radio = "Search" for source, term in searches.iteritems(): miro.new_search_feed(reg, term,radio,source,defaults=False,watched=False) time.sleep(10) #give some time for everything to load up miro.click_podcast(reg, source) miro.shortcut("r") time.sleep(5) miro.tab_search(reg, term) try: self.assertTrue(reg.m.exists(source)) miro.delete_feed(reg, source) except: miro.log_result("79","test_79, failed for " +source+": "+term, status="fail") #cleanup for x in searches.keys(): miro.delete_feed(reg, x)
def test_196(self): """http://litmus.pculture.org/show_test.cgi?id=196 create new empty feed folder. Litmus Test Title:: 198 - new feed folder Description: 1. Import OPML file of some feeds and folders 2. 1 feed and 1 folder 3. Delete, verify confirm dialog, and delete 4. Cleanup """ setAutoWaitTimeout(myLib.testvars.timeout) #set the search regions folder = "GREAT STUFF" reg = MiroRegions() miro = MiroApp() reg.t.click("Sidebar") reg.t.click("Folder") time.sleep(2) type(folder + "\n") time.sleep(10) #give it 10 seconds to add the folder miro.click_podcast(reg, folder) miro.delete_feed(reg, "GREAT")
def test_191(self): """http://litmus.pculture.org/show_test.cgi?id=191 Add rss feed to sidebar. 1. Add ClearBits.net as a source 2. Open Netlabel Music page and add RSS feed 3. Verify feed added to the sidebar 4. Cleanup """ site_url = "http://clearbits.net" site = "ClearBits" feed = "ClearBits" reg = MiroRegions() miro = MiroApp() miro.add_source(reg, site_url,site) miro.click_source(reg, site) reg.m.click("Netlabel Music") reg.m.click(myLib.testvars.clearbits_rss) miro.click_podcast(reg, site) miro.log_result("29","test_191 verify 1-click add site from source.") time.sleep(3) miro.delete_feed(reg, feed) miro.delete_site(reg, site)
def test_7(self): """http://litmus.pculture.org/show_test.cgi?id=7 add feed. 1. Open Ryan is Hungry 2. click one-click link 3. Verify feed added 4. Cleanup """ reg = MiroRegions() miro = MiroApp() feed = "Ryan" try: url = "http://ryanishungry.com/subscribe/" switchApp(miro.open_ff()) if reg.t.exists("Firefox",45): click(reg.t.getLastMatch()) miro.shortcut("l") time.sleep(2) type(url + "\n") time.sleep(20) if miro.os_name == "osx": self.shortcut('f', shift=True) else: type(Key.F11) find(ONE_CLICK_BADGE) click(ONE_CLICK_BADGE) time.sleep(25) miro.close_ff() #Start Miro miro.close_one_click_confirm(self) miro.shortcut("r",shift=True) miro.click_podcast(reg, feed) finally: miro.delete_feed(reg, feed)
def test_339(self): """http://litmus.pculture.org/show_test.cgi?id=339 delete feed with dl items. Litmus Test Title:: 339 - channels delete a feed with downloaded items Description: 1. Add the 2-stupid-videos feed, and download both items in the feed. 2. Remove Feed and Keep the videos. 3. Verify videos are displayed in the non-feed section of the Library 4. Cleanup """ #set the search regions reg = MiroRegions() miro = MiroApp() url = "http://pculture.org/feeds_test/2stupidvideos.xml" feed = "TWO STUPID" #1. Add the feed and start dl miro.add_feed(reg, url,feed) time.sleep(3) miro.toggle_normal(reg) # miro.count_images(reg, "item-context-button.png",region="mainright",num_expected=2) miro.set_podcast_autodownload(reg, setting="All") miro.wait_for_item_in_tab(reg, "videos","Flip") miro.wait_for_item_in_tab(reg, "videos","Dinosaur") miro.click_podcast(reg, feed) type(Key.DELETE) miro.remove_confirm(reg, action="keep") miro.click_sidebar_tab(reg, "videos") miro.tab_search(reg, "Flip",confirm_present=True) miro.tab_search(reg, "Dinosaur",confirm_present=True) #4. cleanup miro.delete_items(reg, "Flip","videos") miro.delete_items(reg, "Dinosaur","videos")
def test_17556_5(self): """http://litmus.pculture.org/show_test.cgi?id=5 update install from recoverably bad db, upgrade_80, bz 17556. Litmus Test Title:: 5 - upgrade from an earlier version of miro (3.5.1) Description: 1. Copy in Miro 3.5.1 database 2. Launch miro and verify it is upgraded to current version. """ miro = MiroApp() miro.quit_miro() db = os.path.join(os.getenv("PCF_TEST_HOME"),"Miro","TestData","databases","bz17556_backup80") myLib.config.replace_database(db) time.sleep(5) #set the search regions miro.restart_miro() waitVanish("Upgrading") waitVanish("Preparing") time.sleep(10) miro.quit_miro() myLib.config.reset_preferences() miro.restart_miro() reg = MiroRegions() miro = MiroApp() miro.click_podcast(reg, "Starter")
def test_197(self): """http://litmus.pculture.org/show_test.cgi?id=197 drag feeds to a folder Litmus Test Title:: 197 - drag feeds to a folder Description: 1. Import OPML file of some feeds and folders 2. drag feeds to the folder 3. verify feeds in folder 4. Cleanup """ setAutoWaitTimeout(myLib.testvars.timeout) miro = MiroApp() #set the search regions miro.quit_miro() myLib.config.set_def_db_and_prefs() miro.restart_miro() time.sleep(10) reg = MiroRegions() miro = MiroApp() opml_path = os.path.join(os.getenv("PCF_TEST_HOME"),"Miro","TestData","folder-test2.opml") folder = "Best Feeds" feedlist = ["Vimeo", "BIRCHBOXTVTV"] #1. Add the feeds miro.import_opml(reg, opml_path) p = miro.get_podcasts_region(reg) for feed in feedlist: x = p.find(feed) y = p.find(folder) dragDrop(x,y) time.sleep(2) feed_match = miro.click_podcast(reg, folder) rightClick(Location(feed_match)) if exists("Update",2): click(getLastMatch()) for feed in feedlist: miro.tab_search(reg, title=feed,confirm_present=True) #cleanup miro.delete_all_podcasts(reg)
def test_198(self): """http://litmus.pculture.org/show_test.cgi?id=198 rename folder. Litmus Test Title:: 198 - rename feed folder Description: 1. Import OPML file of some feeds and folders 2. 1 feed and 1 folder 3. Delete, verify confirm dialog, and delete 4. Cleanup """ setAutoWaitTimeout(myLib.testvars.timeout) #set the search regions folder = "Great Stuff" new_name1 = "INCREDIBLE" new_name2 = "AWFUL" reg = MiroRegions() miro = MiroApp() reg.t.click("Sidebar") reg.t.click("Folder") time.sleep(2) type(folder + "\n") time.sleep(10) #give it 10 seconds to add the folder miro.click_podcast(reg, feed=folder) time.sleep(3) reg.t.click("Sidebar") reg.t.click("Rename") time.sleep(2) type(new_name1 + "\n") miro.click_podcast(reg, feed=new_name1) miro.restart_miro() p = miro.get_podcasts_region(reg) if not p.exists(new_name1): self.fail("rename did not persist after restart") else: p.rightClick(new_name1) p1 = Region(p.getLastMatch().nearby(200)) p1.click("Rename") time.sleep(2) type(new_name2 + "\n") miro.click_podcast(reg, feed=new_name2) miro.delete_feed(reg, new_name2)
def test_122(self): """http://litmus.pculture.org/show_test.cgi?id=122 item click actions, normal view. 1. add 3-blip-videos feed 2. download the Joo Joo 3. verify varios item click scenerios """ reg = MiroRegions() miro = MiroApp() time.sleep(5) url = "http://pculture.org/feeds_test/3blipvideos.xml" feed = "ThreeBlip" title1 = "The Joo" title2 = "York" title3 = "Accessing" miro.delete_feed(reg, feed) miro.open_prefs(reg) prefs = PreferencesPanel() podcasts_tab = prefs.open_tab("Podcasts") podcasts_tab.autodownload_setting("Off") podcasts_tab.default_view_setting("Standard") podcasts_tab.close_prefs() #add feed and download joo joo item miro.add_feed(reg, url,feed) miro.tab_search(reg, title1) if reg.m.exists("button_download.png",10): click(reg.m.getLastMatch()) miro.click_podcast(reg, feed) miro.tab_search(reg, title2,confirm_present=True) #double-click starts download doubleClick(title2) if miro.confirm_download_started(reg, title=title2) == "in_progress": miro.log_result("122","normal view double-click starts download") else: self.fail("normal view double-click starts download, failed") #double-click pauses download miro.click_podcast(reg, feed) doubleClick(title2) if exists("item-renderer-download-resume.png"): miro.log_result("122","normal view double-click pauses download") else: self.fail("normal view double-click pause download, failed") #double-click resumes download doubleClick(title2) if exists("item-renderer-download-pause.png"): miro.log_result("122","normal view double-click resume download") else: self.fail("normal view double-click resume download, failed") #double-click starts playback miro.wait_for_item_in_tab(reg, tab="Videos",item=title1) miro.click_podcast(reg, feed) miro.tab_search(reg, title1) doubleClick(title1) if exists(Pattern("playback_bar_video.png")): miro.log_result("122","normal view double-click starts playback") else: self.fail("normal view double-click start playback, failed") miro.verify_video_playback(reg) #single click thumb starts download miro.tab_search(reg, title3) if reg.m.exists("thumb-default-video.png"): print "using default thumb" click(reg.m.getLastMatch()) else: print "can't find thumb, best guess" reg.m.find(title1) click(reg.m.getLastMatch().left(50)) if miro.confirm_download_started(reg, title=title3) == "in_progress": miro.log_result("122","normal view click starts download") else: self.fail("normal view double-click starts download, failed") #single click thumb starts playback miro.click_podcast(reg, feed) miro.tab_search(reg, title1) if reg.m.exists("thumb-default-video.png"): print "using default thumb" click(reg.m.getLastMatch()) elif reg.m.exists("thumb-joojoo.png"): print "found joo joo thumb" click(reg.m.getLastMatch()) else: print "can't find thumb, best guess" reg.m.find(title1) click(reg.m.getLastMatch().left(50)) if exists("playback_bar_video.png"): miro.log_result("122","normal view double-click starts playback") else: self.fail("normal view double-click start playback, failed") miro.verify_video_playback(reg) #cleanup miro.delete_feed(reg, feed)
def test_725(self): """http://litmus.pculture.org/show_test.cgi?id=725 item click actions, list view. 1. add 3-blip-videos feed 2. download the Joo Joo 3. verify varios item click scenerios """ reg = MiroRegions() miro = MiroApp() time.sleep(5) url = "http://pculture.org/feeds_test/3blipvideos.xml" feed = "ThreeBlip" title1 = "The Joo" title2 = "York" title3 = "Accessing" miro.delete_feed(reg, feed) #Set Global Preferences miro.open_prefs(reg) prefs = PreferencesPanel() podcasts_tab = prefs.open_tab("Podcasts") podcasts_tab.autodownload_setting("Off") podcasts_tab.default_view_setting("List") podcasts_tab.close_prefs() time.sleep(2) #add feed and download joo joo item miro.add_feed(reg, url,feed) miro.tab_search(reg, title1) #double-click starts download reg.m.find(title1) title_loc = reg.m.getLastMatch() doubleClick(title_loc) if reg.m.exists("video-download-pause.png"): miro.log_result("122","list view double-click starts download") else: self.fail("list view double-click starts download, failed") #double-click pauses download doubleClick(title_loc) if reg.m.exists("video-download-resume.png"): miro.log_result("122","list view double-click pauses download") else: self.fail("list view double-click pause download, failed") #double-click resumes download doubleClick(title_loc) if exists("video-download-pause.png"): miro.log_result("122","list view double-click resumes download") else: self.fail("list view double-click resume download, failed") #double-click starts playback miro.wait_for_item_in_tab(reg, tab="Videos",item=title1) miro.click_podcast(reg, feed) miro.tab_search(reg, title1) doubleClick(title1) if exists(Pattern("playback_bar_video.png")): miro.log_result("122","list view double-click starts playback") else: self.fail("list view double-click start playback, failed") miro.verify_video_playback(reg) #cleanup miro.delete_feed(reg, feed)
def test_117(self): """http://litmus.pculture.org/show_test.cgi?id=117 delete multiple feeds then cancel. Litmus Test Title:: 117 - delete multiple feeds then cancel Description: 1. Add several feeds from list of guide feeds 2. Select them all 3. Delete, the cancel the delete 4. Cleanup """ #set the search regions reg = MiroRegions() miro = MiroApp() #Set Global Preferences miro.open_prefs(reg) prefs = PreferencesPanel() podcasts_tab = prefs.open_tab("Podcasts") podcasts_tab.autodownload_setting("Off") podcasts_tab.default_view_setting("Standard") podcasts_tab.close_prefs() url = "http://pculture.org/feeds_test/list-of-guide-feeds.xml" feed = "Static" feedlist = ["Center", "Earth"] #1. Add the feed and start dl miro.add_feed(reg, url,feed) for f in feedlist: miro.tab_search(reg, f) self.assertTrue(reg.m.exists("Add this")) reg.m.click("Add this") time.sleep(4) miro.tab_search(reg, "") miro.toggle_normal(reg) p = miro.get_podcasts_region(reg) miro.click_sidebar_tab(reg, "Music") miro.click_podcast(reg, feed) #2. Select them all keyDown(Key.SHIFT) for x in feedlist: if p.exists(x): p.click(x) else: print "could not find feed" +str(x) time.sleep(2) keyUp(Key.SHIFT) #3. Delete then cancel. Verify still exists Static List if reg.m.exists("Delete",4) or reg.m.exists("button_mv_delete_all.png",4): click(reg.m.getLastMatch()) else: self.fail("Can't find Delete All button in main view") miro.remove_confirm(reg, "cancel") p = miro.get_podcasts_region(reg) time.sleep(5) self.assertTrue(p.exists("Static",5)) #4. Cleanup feedlist.append("Static") for x in feedlist: print x miro.delete_feed(reg, x)