|
1 |
| -import pytest |
| 1 | +import json |
| 2 | +import subprocess |
| 3 | +from importlib.metadata import PackageNotFoundError, version |
2 | 4 | from unittest import TestCase
|
3 |
| -from unittest.mock import MagicMock |
| 5 | +from unittest.mock import MagicMock, patch |
4 | 6 |
|
5 |
| -import json |
| 7 | +import pytest |
6 | 8 |
|
7 | 9 | from youtube_transcript_api import (
|
8 |
| - YouTubeTranscriptApi, |
9 |
| - VideoUnavailable, |
10 | 10 | FetchedTranscript,
|
11 | 11 | FetchedTranscriptSnippet,
|
| 12 | + VideoUnavailable, |
| 13 | + YouTubeTranscriptApi, |
12 | 14 | )
|
13 | 15 | from youtube_transcript_api._cli import YouTubeTranscriptCli
|
14 | 16 |
|
@@ -333,10 +335,36 @@ def test_run__generic_proxy_config(self):
|
333 | 335 | )
|
334 | 336 | def test_run__cookies(self):
|
335 | 337 | YouTubeTranscriptCli(
|
336 |
| - ("v1 v2 --languages de en " "--cookies blahblah.txt").split() |
| 338 | + ("v1 v2 --languages de en --cookies blahblah.txt").split() |
337 | 339 | ).run()
|
338 | 340 |
|
339 | 341 | YouTubeTranscriptApi.__init__.assert_any_call(
|
340 | 342 | proxy_config=None,
|
341 | 343 | cookie_path="blahblah.txt",
|
342 | 344 | )
|
| 345 | + |
| 346 | + def test_version_matches_metadata(self): |
| 347 | + """ |
| 348 | + `youtube_transcript_api --version` should return the same version as in the package metadata. |
| 349 | + """ |
| 350 | + expected_version_msg = ( |
| 351 | + f"youtube_transcript_api, version {version('youtube-transcript-api')}" |
| 352 | + ) |
| 353 | + |
| 354 | + cli_version_msg = subprocess.run( |
| 355 | + ["youtube_transcript_api", "--version"], |
| 356 | + capture_output=True, |
| 357 | + text=True, |
| 358 | + check=True, |
| 359 | + ).stdout.strip() |
| 360 | + |
| 361 | + assert ( |
| 362 | + cli_version_msg == expected_version_msg |
| 363 | + ), f"Expected version '{expected_version_msg}', but got '{cli_version_msg}'" |
| 364 | + |
| 365 | + def test_get_version_package_not_found(self): |
| 366 | + with patch( |
| 367 | + "youtube_transcript_api._cli.version", side_effect=PackageNotFoundError |
| 368 | + ): |
| 369 | + from youtube_transcript_api._cli import get_version |
| 370 | + assert get_version() == "unknown" |
0 commit comments