mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[test] Use pytest instead of nosetests (#482)
				
					
				
			`nosetests` is no longer being maintained : https://github.com/nose-devs/nose/issues/1099 and will stop working in py 3.10 as can be seen in #480
This commit is contained in:
		| @@ -22,6 +22,14 @@ from yt_dlp.utils import ( | ||||
| ) | ||||
|  | ||||
|  | ||||
| if "pytest" in sys.modules: | ||||
|     import pytest | ||||
|     is_download_test = pytest.mark.download | ||||
| else: | ||||
|     def is_download_test(testClass): | ||||
|         return testClass | ||||
|  | ||||
|  | ||||
| def get_params(override=None): | ||||
|     PARAMETERS_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), | ||||
|                                    "parameters.json") | ||||
|   | ||||
| @@ -35,13 +35,13 @@ class InfoExtractorTestRequestHandler(compat_http_server.BaseHTTPRequestHandler) | ||||
|             assert False | ||||
|  | ||||
|  | ||||
| class TestIE(InfoExtractor): | ||||
| class DummyIE(InfoExtractor): | ||||
|     pass | ||||
|  | ||||
|  | ||||
| class TestInfoExtractor(unittest.TestCase): | ||||
|     def setUp(self): | ||||
|         self.ie = TestIE(FakeYDL()) | ||||
|         self.ie = DummyIE(FakeYDL()) | ||||
|  | ||||
|     def test_ie_key(self): | ||||
|         self.assertEqual(get_info_extractor(YoutubeIE.ie_key()), YoutubeIE) | ||||
|   | ||||
| @@ -7,8 +7,7 @@ import sys | ||||
| import unittest | ||||
| sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | ||||
|  | ||||
| from test.helper import try_rm | ||||
|  | ||||
| from test.helper import try_rm, is_download_test | ||||
|  | ||||
| from yt_dlp import YoutubeDL | ||||
|  | ||||
| @@ -32,6 +31,7 @@ def _download_restricted(url, filename, age): | ||||
|     return res | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestAgeRestriction(unittest.TestCase): | ||||
|     def _assert_restricted(self, url, filename, age, old_age=None): | ||||
|         self.assertTrue(_download_restricted(url, filename, old_age)) | ||||
|   | ||||
| @@ -10,12 +10,13 @@ sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | ||||
|  | ||||
| from test.helper import ( | ||||
|     assertGreaterEqual, | ||||
|     expect_info_dict, | ||||
|     expect_warnings, | ||||
|     get_params, | ||||
|     gettestcases, | ||||
|     expect_info_dict, | ||||
|     try_rm, | ||||
|     is_download_test, | ||||
|     report_warning, | ||||
|     try_rm, | ||||
| ) | ||||
|  | ||||
|  | ||||
| @@ -64,6 +65,7 @@ def _file_md5(fn): | ||||
| defs = gettestcases() | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestDownload(unittest.TestCase): | ||||
|     # Parallel testing in nosetests. See | ||||
|     # http://nose.readthedocs.org/en/latest/doc_tests/test_multiprocess/multiprocess.html | ||||
|   | ||||
| @@ -8,7 +8,7 @@ import sys | ||||
| import unittest | ||||
| sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | ||||
|  | ||||
| from test.helper import FakeYDL | ||||
| from test.helper import FakeYDL, is_download_test | ||||
| from yt_dlp.extractor import IqiyiIE | ||||
|  | ||||
|  | ||||
| @@ -31,6 +31,7 @@ class WarningLogger(object): | ||||
|         pass | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestIqiyiSDKInterpreter(unittest.TestCase): | ||||
|     def test_iqiyi_sdk_interpreter(self): | ||||
|         ''' | ||||
|   | ||||
| @@ -7,7 +7,7 @@ import sys | ||||
| import unittest | ||||
| sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | ||||
|  | ||||
| from test.helper import get_params, try_rm | ||||
| from test.helper import get_params, try_rm, is_download_test | ||||
| import yt_dlp.YoutubeDL | ||||
| from yt_dlp.utils import DownloadError | ||||
|  | ||||
| @@ -22,6 +22,7 @@ TEST_ID = 'gr51aVj-mLg' | ||||
| EXPECTED_NAME = 'gr51aVj-mLg' | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestPostHooks(unittest.TestCase): | ||||
|     def setUp(self): | ||||
|         self.stored_name_1 = None | ||||
|   | ||||
| @@ -14,6 +14,7 @@ import subprocess | ||||
| from test.helper import ( | ||||
|     FakeYDL, | ||||
|     get_params, | ||||
|     is_download_test, | ||||
| ) | ||||
| from yt_dlp.compat import ( | ||||
|     compat_str, | ||||
| @@ -21,6 +22,7 @@ from yt_dlp.compat import ( | ||||
| ) | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestMultipleSocks(unittest.TestCase): | ||||
|     @staticmethod | ||||
|     def _check_params(attrs): | ||||
| @@ -76,6 +78,7 @@ class TestMultipleSocks(unittest.TestCase): | ||||
|             params['secondary_server_ip']) | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestSocks(unittest.TestCase): | ||||
|     _SKIP_SOCKS_TEST = True | ||||
|  | ||||
|   | ||||
| @@ -7,7 +7,7 @@ import sys | ||||
| import unittest | ||||
| sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | ||||
|  | ||||
| from test.helper import FakeYDL, md5 | ||||
| from test.helper import FakeYDL, md5, is_download_test | ||||
|  | ||||
|  | ||||
| from yt_dlp.extractor import ( | ||||
| @@ -30,6 +30,7 @@ from yt_dlp.extractor import ( | ||||
| ) | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class BaseTestSubtitles(unittest.TestCase): | ||||
|     url = None | ||||
|     IE = None | ||||
| @@ -55,6 +56,7 @@ class BaseTestSubtitles(unittest.TestCase): | ||||
|         return dict((l, sub_info['data']) for l, sub_info in subtitles.items()) | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestYoutubeSubtitles(BaseTestSubtitles): | ||||
|     url = 'QRS8MkLhQmM' | ||||
|     IE = YoutubeIE | ||||
| @@ -111,6 +113,7 @@ class TestYoutubeSubtitles(BaseTestSubtitles): | ||||
|         self.assertFalse(subtitles) | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestDailymotionSubtitles(BaseTestSubtitles): | ||||
|     url = 'http://www.dailymotion.com/video/xczg00' | ||||
|     IE = DailymotionIE | ||||
| @@ -134,6 +137,7 @@ class TestDailymotionSubtitles(BaseTestSubtitles): | ||||
|         self.assertFalse(subtitles) | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestTedSubtitles(BaseTestSubtitles): | ||||
|     url = 'http://www.ted.com/talks/dan_dennett_on_our_consciousness.html' | ||||
|     IE = TEDIE | ||||
| @@ -149,6 +153,7 @@ class TestTedSubtitles(BaseTestSubtitles): | ||||
|             self.assertTrue(subtitles.get(lang) is not None, 'Subtitles for \'%s\' not extracted' % lang) | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestVimeoSubtitles(BaseTestSubtitles): | ||||
|     url = 'http://vimeo.com/76979871' | ||||
|     IE = VimeoIE | ||||
| @@ -170,6 +175,7 @@ class TestVimeoSubtitles(BaseTestSubtitles): | ||||
|         self.assertFalse(subtitles) | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestWallaSubtitles(BaseTestSubtitles): | ||||
|     url = 'http://vod.walla.co.il/movie/2705958/the-yes-men' | ||||
|     IE = WallaIE | ||||
| @@ -191,6 +197,7 @@ class TestWallaSubtitles(BaseTestSubtitles): | ||||
|         self.assertFalse(subtitles) | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestCeskaTelevizeSubtitles(BaseTestSubtitles): | ||||
|     url = 'http://www.ceskatelevize.cz/ivysilani/10600540290-u6-uzasny-svet-techniky' | ||||
|     IE = CeskaTelevizeIE | ||||
| @@ -212,6 +219,7 @@ class TestCeskaTelevizeSubtitles(BaseTestSubtitles): | ||||
|         self.assertFalse(subtitles) | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestLyndaSubtitles(BaseTestSubtitles): | ||||
|     url = 'http://www.lynda.com/Bootstrap-tutorials/Using-exercise-files/110885/114408-4.html' | ||||
|     IE = LyndaIE | ||||
| @@ -224,6 +232,7 @@ class TestLyndaSubtitles(BaseTestSubtitles): | ||||
|         self.assertEqual(md5(subtitles['en']), '09bbe67222259bed60deaa26997d73a7') | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestNPOSubtitles(BaseTestSubtitles): | ||||
|     url = 'http://www.npo.nl/nos-journaal/28-08-2014/POW_00722860' | ||||
|     IE = NPOIE | ||||
| @@ -236,6 +245,7 @@ class TestNPOSubtitles(BaseTestSubtitles): | ||||
|         self.assertEqual(md5(subtitles['nl']), 'fc6435027572b63fb4ab143abd5ad3f4') | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestMTVSubtitles(BaseTestSubtitles): | ||||
|     url = 'http://www.cc.com/video-clips/p63lk0/adam-devine-s-house-party-chasing-white-swans' | ||||
|     IE = ComedyCentralIE | ||||
| @@ -251,6 +261,7 @@ class TestMTVSubtitles(BaseTestSubtitles): | ||||
|         self.assertEqual(md5(subtitles['en']), '78206b8d8a0cfa9da64dc026eea48961') | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestNRKSubtitles(BaseTestSubtitles): | ||||
|     url = 'http://tv.nrk.no/serie/ikke-gjoer-dette-hjemme/DMPV73000411/sesong-2/episode-1' | ||||
|     IE = NRKTVIE | ||||
| @@ -263,6 +274,7 @@ class TestNRKSubtitles(BaseTestSubtitles): | ||||
|         self.assertEqual(md5(subtitles['no']), '544fa917d3197fcbee64634559221cc2') | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestRaiPlaySubtitles(BaseTestSubtitles): | ||||
|     IE = RaiPlayIE | ||||
|  | ||||
| @@ -283,6 +295,7 @@ class TestRaiPlaySubtitles(BaseTestSubtitles): | ||||
|         self.assertEqual(md5(subtitles['it']), '4b3264186fbb103508abe5311cfcb9cd') | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestVikiSubtitles(BaseTestSubtitles): | ||||
|     url = 'http://www.viki.com/videos/1060846v-punch-episode-18' | ||||
|     IE = VikiIE | ||||
| @@ -295,6 +308,7 @@ class TestVikiSubtitles(BaseTestSubtitles): | ||||
|         self.assertEqual(md5(subtitles['en']), '53cb083a5914b2d84ef1ab67b880d18a') | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestThePlatformSubtitles(BaseTestSubtitles): | ||||
|     # from http://www.3playmedia.com/services-features/tools/integrations/theplatform/ | ||||
|     # (see http://theplatform.com/about/partners/type/subtitles-closed-captioning/) | ||||
| @@ -309,6 +323,7 @@ class TestThePlatformSubtitles(BaseTestSubtitles): | ||||
|         self.assertEqual(md5(subtitles['en']), '97e7670cbae3c4d26ae8bcc7fdd78d4b') | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestThePlatformFeedSubtitles(BaseTestSubtitles): | ||||
|     url = 'http://feed.theplatform.com/f/7wvmTC/msnbc_video-p-test?form=json&pretty=true&range=-40&byGuid=n_hardball_5biden_140207' | ||||
|     IE = ThePlatformFeedIE | ||||
| @@ -321,6 +336,7 @@ class TestThePlatformFeedSubtitles(BaseTestSubtitles): | ||||
|         self.assertEqual(md5(subtitles['en']), '48649a22e82b2da21c9a67a395eedade') | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestRtveSubtitles(BaseTestSubtitles): | ||||
|     url = 'http://www.rtve.es/alacarta/videos/los-misterios-de-laura/misterios-laura-capitulo-32-misterio-del-numero-17-2-parte/2428621/' | ||||
|     IE = RTVEALaCartaIE | ||||
| @@ -335,6 +351,7 @@ class TestRtveSubtitles(BaseTestSubtitles): | ||||
|         self.assertEqual(md5(subtitles['es']), '69e70cae2d40574fb7316f31d6eb7fca') | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestDemocracynowSubtitles(BaseTestSubtitles): | ||||
|     url = 'http://www.democracynow.org/shows/2015/7/3' | ||||
|     IE = DemocracynowIE | ||||
|   | ||||
| @@ -8,7 +8,7 @@ import sys | ||||
| import unittest | ||||
| sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | ||||
|  | ||||
| from test.helper import get_params, try_rm | ||||
| from test.helper import get_params, try_rm, is_download_test | ||||
|  | ||||
|  | ||||
| import io | ||||
| @@ -38,6 +38,7 @@ ANNOTATIONS_FILE = TEST_ID + '.annotations.xml' | ||||
| EXPECTED_ANNOTATIONS = ['Speech bubble', 'Note', 'Title', 'Spotlight', 'Label'] | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestAnnotations(unittest.TestCase): | ||||
|     def setUp(self): | ||||
|         # Clear old files | ||||
|   | ||||
| @@ -7,7 +7,7 @@ import sys | ||||
| import unittest | ||||
| sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | ||||
|  | ||||
| from test.helper import FakeYDL | ||||
| from test.helper import FakeYDL, is_download_test | ||||
|  | ||||
|  | ||||
| from yt_dlp.extractor import ( | ||||
| @@ -17,6 +17,7 @@ from yt_dlp.extractor import ( | ||||
| ) | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestYoutubeLists(unittest.TestCase): | ||||
|     def assertIsPlaylist(self, info): | ||||
|         """Make sure the info has '_type' set to 'playlist'""" | ||||
|   | ||||
| @@ -12,7 +12,7 @@ import io | ||||
| import re | ||||
| import string | ||||
|  | ||||
| from test.helper import FakeYDL | ||||
| from test.helper import FakeYDL, is_download_test | ||||
| from yt_dlp.extractor import YoutubeIE | ||||
| from yt_dlp.compat import compat_str, compat_urlretrieve | ||||
|  | ||||
| @@ -65,6 +65,7 @@ _TESTS = [ | ||||
| ] | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestPlayerInfo(unittest.TestCase): | ||||
|     def test_youtube_extract_player_info(self): | ||||
|         PLAYER_URLS = ( | ||||
| @@ -87,6 +88,7 @@ class TestPlayerInfo(unittest.TestCase): | ||||
|             self.assertEqual(player_id, expected_player_id) | ||||
|  | ||||
|  | ||||
| @is_download_test | ||||
| class TestSignature(unittest.TestCase): | ||||
|     def setUp(self): | ||||
|         TEST_DIR = os.path.dirname(os.path.abspath(__file__)) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 pukkandan
					pukkandan