class BatchDownloaderDownloadingTestCase(unittest.TestCase): GET_NUM_FILES = 5 def setUp(self): self.linkser = LinksRetriever(THREAD_URL) #self.destination_directory = os.path.expanduser('~/Downloads/TestDownloadThread/') self.thread_dir = TemporaryDirectory(dir=TMP_DIRECTORY) self.destination_directory = self.thread_dir.name self.downloader = BatchDownloader(self.linkser, self.destination_directory) self.download_files() def download_files(self): for url in self.linkser.get_all_file_links()[:self.GET_NUM_FILES]: download_path = utilities.download_file(url, self.downloader.destination_folder) assert os.path.exists(download_path) def test_files_downloaded(self): downloaded = self.downloader.get_files_downloaded() self.assertEqual(len(downloaded), self.GET_NUM_FILES) def test_files_not_downloaded_gen(self): not_downloaded = self.downloader.links_not_downloaded() self.assertIsNotNone(not_downloaded) not_downloaded_tuple = tuple(not_downloaded) self.assertEqual(len(not_downloaded_tuple), len(self.downloader.files_to_download) - len(self.downloader.get_files_downloaded())) def test_compare_downloaded(self): not_downloaded = tuple(self.downloader.get_links_not_downloaded()) self.assertEqual(len(not_downloaded), len(self.linkser.get_all_file_links()) - self.GET_NUM_FILES)
class ThreadDownloaderWithIgnoreFilteringTestCase(unittest.TestCase): def setUp(self): self.downloader = BatchDownloader(LinksRetriever(TEST_THREAD_FILENAME), TMP_DIRECTORY) self.downloader.ifilter = IgnoreFilter(SOME_THREAD_FILE_URLS) # Just a normal one, without regular expressions def test_get_links(self): all_links = self.downloader.links_retriever.get_all_file_links() downloaded = self.downloader.get_files_downloaded() ignored = self.downloader.ifilter.filter_list file_links = tuple(self.downloader.get_links()) # implied filtered=True (default) self.assertEqual(len(file_links), len(all_links) - len(downloaded) - len(ignored)) def test_get_links_filtered_false(self): all_links = self.downloader.links_retriever.get_all_file_links() downloaded = self.downloader.get_files_downloaded() ignored = self.downloader.ifilter.filter_list file_links = self.downloader.get_links(filtered=False) # do not use ifilter.filter() self.assertEqual(len(file_links), len(all_links) - len(downloaded))