aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDioarya <dioaryaraditya@gmail.com>2025-01-26 02:12:56 +0700
committerGitHub <noreply@github.com>2025-01-25 19:12:56 +0000
commitf7d071e8aa3bf67ed7e0f881e749ca9ab50b3f8f (patch)
tree1197504d827284a520f3e67cbf5de4555782dae3 /test
parent45732e2590a1bd0bc9608f5eb68c59341ca84f02 (diff)
[core] Fix float comparison values in format filters (#11880)
Closes #10115 Authored by: Dioarya, bashonly Co-authored-by: bashonly <88596187+bashonly@users.noreply.github.com>
Diffstat (limited to 'test')
-rw-r--r--test/test_YoutubeDL.py35
1 files changed, 30 insertions, 5 deletions
diff --git a/test/test_YoutubeDL.py b/test/test_YoutubeDL.py
index 6b022a7ea..17e081bc6 100644
--- a/test/test_YoutubeDL.py
+++ b/test/test_YoutubeDL.py
@@ -486,11 +486,11 @@ class TestFormatSelection(unittest.TestCase):
def test_format_filtering(self):
formats = [
- {'format_id': 'A', 'filesize': 500, 'width': 1000},
- {'format_id': 'B', 'filesize': 1000, 'width': 500},
- {'format_id': 'C', 'filesize': 1000, 'width': 400},
- {'format_id': 'D', 'filesize': 2000, 'width': 600},
- {'format_id': 'E', 'filesize': 3000},
+ {'format_id': 'A', 'filesize': 500, 'width': 1000, 'aspect_ratio': 1.0},
+ {'format_id': 'B', 'filesize': 1000, 'width': 500, 'aspect_ratio': 1.33},
+ {'format_id': 'C', 'filesize': 1000, 'width': 400, 'aspect_ratio': 1.5},
+ {'format_id': 'D', 'filesize': 2000, 'width': 600, 'aspect_ratio': 1.78},
+ {'format_id': 'E', 'filesize': 3000, 'aspect_ratio': 0.56},
{'format_id': 'F'},
{'format_id': 'G', 'filesize': 1000000},
]
@@ -549,6 +549,31 @@ class TestFormatSelection(unittest.TestCase):
ydl.process_ie_result(info_dict)
self.assertEqual(ydl.downloaded_info_dicts, [])
+ ydl = YDL({'format': 'best[aspect_ratio=1]'})
+ ydl.process_ie_result(info_dict)
+ downloaded = ydl.downloaded_info_dicts[0]
+ self.assertEqual(downloaded['format_id'], 'A')
+
+ ydl = YDL({'format': 'all[aspect_ratio > 1.00]'})
+ ydl.process_ie_result(info_dict)
+ downloaded_ids = [info['format_id'] for info in ydl.downloaded_info_dicts]
+ self.assertEqual(downloaded_ids, ['D', 'C', 'B'])
+
+ ydl = YDL({'format': 'all[aspect_ratio < 1.00]'})
+ ydl.process_ie_result(info_dict)
+ downloaded_ids = [info['format_id'] for info in ydl.downloaded_info_dicts]
+ self.assertEqual(downloaded_ids, ['E'])
+
+ ydl = YDL({'format': 'best[aspect_ratio=1.5]'})
+ ydl.process_ie_result(info_dict)
+ downloaded = ydl.downloaded_info_dicts[0]
+ self.assertEqual(downloaded['format_id'], 'C')
+
+ ydl = YDL({'format': 'all[aspect_ratio!=1]'})
+ ydl.process_ie_result(info_dict)
+ downloaded_ids = [info['format_id'] for info in ydl.downloaded_info_dicts]
+ self.assertEqual(downloaded_ids, ['E', 'D', 'C', 'B'])
+
@patch('yt_dlp.postprocessor.ffmpeg.FFmpegMergerPP.available', False)
def test_default_format_spec_without_ffmpeg(self):
ydl = YDL({})