mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-04 06:37:07 -05:00 
			
		
		
		
	[utils] Improve month_by_name and add tests
This commit is contained in:
		@@ -40,6 +40,7 @@ from youtube_dl.utils import (
 | 
			
		||||
    js_to_json,
 | 
			
		||||
    limit_length,
 | 
			
		||||
    mimetype2ext,
 | 
			
		||||
    month_by_name,
 | 
			
		||||
    ohdave_rsa_encrypt,
 | 
			
		||||
    OnDemandPagedList,
 | 
			
		||||
    orderedSet,
 | 
			
		||||
@@ -634,6 +635,16 @@ class TestUtil(unittest.TestCase):
 | 
			
		||||
        self.assertEqual(mimetype2ext('text/vtt;charset=utf-8'), 'vtt')
 | 
			
		||||
        self.assertEqual(mimetype2ext('text/html; charset=utf-8'), 'html')
 | 
			
		||||
 | 
			
		||||
    def test_month_by_name(self):
 | 
			
		||||
        self.assertEqual(month_by_name(None), None)
 | 
			
		||||
        self.assertEqual(month_by_name('December', 'en'), 12)
 | 
			
		||||
        self.assertEqual(month_by_name('decembre', 'fr'), 12)
 | 
			
		||||
        self.assertEqual(month_by_name('December'), 12)
 | 
			
		||||
        self.assertEqual(month_by_name('decembre'), None)
 | 
			
		||||
        self.assertEqual(month_by_name('Unknown', 'unknown'), None)
 | 
			
		||||
 | 
			
		||||
    def test_m
 | 
			
		||||
 | 
			
		||||
    def test_parse_codecs(self):
 | 
			
		||||
        self.assertEqual(parse_codecs(''), {})
 | 
			
		||||
        self.assertEqual(parse_codecs('avc1.77.30, mp4a.40.2'), {
 | 
			
		||||
 
 | 
			
		||||
@@ -91,9 +91,12 @@ ENGLISH_MONTH_NAMES = [
 | 
			
		||||
    'January', 'February', 'March', 'April', 'May', 'June',
 | 
			
		||||
    'July', 'August', 'September', 'October', 'November', 'December']
 | 
			
		||||
 | 
			
		||||
FRENCH_MONTH_NAMES = [
 | 
			
		||||
    'janvier', 'fevrier', 'mars', 'avril', 'mai', 'juin',
 | 
			
		||||
    'juillet', 'aout', 'septembre', 'octobre', 'novembre', 'decembre']
 | 
			
		||||
MONTH_NAMES = {
 | 
			
		||||
    'en': ENGLISH_MONTH_NAMES,
 | 
			
		||||
    'fr': [
 | 
			
		||||
        'janvier', 'fevrier', 'mars', 'avril', 'mai', 'juin',
 | 
			
		||||
        'juillet', 'aout', 'septembre', 'octobre', 'novembre', 'decembre'],
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
KNOWN_EXTENSIONS = (
 | 
			
		||||
    'mp4', 'm4a', 'm4p', 'm4b', 'm4r', 'm4v', 'aac',
 | 
			
		||||
@@ -1594,13 +1597,10 @@ def parse_count(s):
 | 
			
		||||
def month_by_name(name, lang='en'):
 | 
			
		||||
    """ Return the number of a month by (locale-independently) English name """
 | 
			
		||||
 | 
			
		||||
    name_list = ENGLISH_MONTH_NAMES
 | 
			
		||||
 | 
			
		||||
    if lang == 'fr':
 | 
			
		||||
        name_list = FRENCH_MONTH_NAMES
 | 
			
		||||
    month_names = MONTH_NAMES.get(lang, MONTH_NAMES['en'])
 | 
			
		||||
 | 
			
		||||
    try:
 | 
			
		||||
        return name_list.index(name) + 1
 | 
			
		||||
        return month_names.index(name) + 1
 | 
			
		||||
    except ValueError:
 | 
			
		||||
        return None
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user