hbmartin commited on
Commit
7a1d0be
·
1 Parent(s): eab63b5
Files changed (1) hide show
  1. tests/test_cli.py +25 -18
tests/test_cli.py CHANGED
@@ -10,14 +10,18 @@ from pytube import cli, StreamQuery, Caption, CaptionQuery
10
  parse_args = cli._parse_args
11
 
12
 
 
13
  @mock.patch("pytube.cli.YouTube")
14
- def test_download_when_itag_not_found(youtube):
 
15
  youtube.streams = mock.Mock()
16
- youtube.streams.all.return_value = []
17
  youtube.streams.get_by_itag.return_value = None
 
18
  with pytest.raises(SystemExit):
19
  cli.download_by_itag(youtube, 123)
 
20
  youtube.streams.get_by_itag.assert_called_with(123)
 
21
 
22
 
23
  @mock.patch("pytube.cli.YouTube")
@@ -37,26 +41,28 @@ def test_download_when_itag_is_found(youtube, stream):
37
  @mock.patch("pytube.cli.YouTube")
38
  @mock.patch("pytube.Stream")
39
  def test_display_stream(youtube, stream):
 
40
  stream.itag = 123
41
  stream.__repr__ = MagicMock(return_value="")
42
  youtube.streams = StreamQuery([stream])
43
- with patch.object(youtube.streams, "all", wraps=youtube.streams.all) as wrapped_all:
44
- cli.display_streams(youtube)
45
- wrapped_all.assert_called()
46
- stream.__repr__.assert_called()
47
 
48
 
 
49
  @mock.patch("pytube.cli.YouTube")
50
- def test_download_caption_with_none(youtube):
 
51
  caption = Caption(
52
  {"url": "url1", "name": {"simpleText": "name1"}, "languageCode": "en"}
53
  )
54
  youtube.captions = CaptionQuery([caption])
55
- with patch.object(
56
- youtube.captions, "all", wraps=youtube.captions.all
57
- ) as wrapped_all:
58
- cli.download_caption(youtube, None)
59
- wrapped_all.assert_called()
60
 
61
 
62
  @mock.patch("pytube.cli.YouTube")
@@ -71,17 +77,18 @@ def test_download_caption_with_language_found(youtube):
71
  caption.download.assert_called_with(title="video title", output_path=None)
72
 
73
 
 
74
  @mock.patch("pytube.cli.YouTube")
75
- def test_download_caption_with_language_not_found(youtube):
 
76
  caption = Caption(
77
  {"url": "url1", "name": {"simpleText": "name1"}, "languageCode": "en"}
78
  )
79
  youtube.captions = CaptionQuery([caption])
80
- with patch.object(
81
- youtube.captions, "all", wraps=youtube.captions.all
82
- ) as wrapped_all:
83
- cli.download_caption(youtube, "blah")
84
- wrapped_all.assert_called()
85
 
86
 
87
  def test_display_progress_bar(capsys):
 
10
  parse_args = cli._parse_args
11
 
12
 
13
+ @mock.patch("pytube.cli.display_streams")
14
  @mock.patch("pytube.cli.YouTube")
15
+ def test_download_when_itag_not_found(youtube, display_streams):
16
+ # Given
17
  youtube.streams = mock.Mock()
 
18
  youtube.streams.get_by_itag.return_value = None
19
+ # When
20
  with pytest.raises(SystemExit):
21
  cli.download_by_itag(youtube, 123)
22
+ # Then
23
  youtube.streams.get_by_itag.assert_called_with(123)
24
+ display_streams.assert_called_with(youtube)
25
 
26
 
27
  @mock.patch("pytube.cli.YouTube")
 
41
  @mock.patch("pytube.cli.YouTube")
42
  @mock.patch("pytube.Stream")
43
  def test_display_stream(youtube, stream):
44
+ # Given
45
  stream.itag = 123
46
  stream.__repr__ = MagicMock(return_value="")
47
  youtube.streams = StreamQuery([stream])
48
+ # When
49
+ cli.display_streams(youtube)
50
+ # Then
51
+ stream.__repr__.assert_called()
52
 
53
 
54
+ @mock.patch("pytube.cli._print_available_captions")
55
  @mock.patch("pytube.cli.YouTube")
56
+ def test_download_caption_with_none(youtube, print_available):
57
+ # Given
58
  caption = Caption(
59
  {"url": "url1", "name": {"simpleText": "name1"}, "languageCode": "en"}
60
  )
61
  youtube.captions = CaptionQuery([caption])
62
+ # When
63
+ cli.download_caption(youtube, None)
64
+ # Then
65
+ print_available.assert_called_with(youtube.captions)
 
66
 
67
 
68
  @mock.patch("pytube.cli.YouTube")
 
77
  caption.download.assert_called_with(title="video title", output_path=None)
78
 
79
 
80
+ @mock.patch("pytube.cli._print_available_captions")
81
  @mock.patch("pytube.cli.YouTube")
82
+ def test_download_caption_with_none(youtube, print_available):
83
+ # Given
84
  caption = Caption(
85
  {"url": "url1", "name": {"simpleText": "name1"}, "languageCode": "en"}
86
  )
87
  youtube.captions = CaptionQuery([caption])
88
+ # When
89
+ cli.download_caption(youtube, "blah")
90
+ # Then
91
+ print_available.assert_called_with(youtube.captions)
 
92
 
93
 
94
  def test_display_progress_bar(capsys):