1
|
1 |
|
import os |
2
|
1 |
|
import subprocess |
3
|
|
|
|
4
|
1 |
|
import mock |
5
|
1 |
|
import pytest |
6
|
1 |
|
from click.testing import CliRunner |
7
|
|
|
|
8
|
1 |
|
from music_album_creation.create_album import main |
9
|
|
|
|
10
|
|
|
|
11
|
1 |
|
class TestCreateAlbum: |
12
|
|
|
|
13
|
1 |
|
def test_launching(self): |
14
|
1 |
|
ro = subprocess.run(['create-album', '--help'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) |
15
|
1 |
|
assert ro.returncode == 0 |
16
|
|
|
|
17
|
1 |
|
@pytest.fixture(scope='module') |
18
|
|
|
def integration_data(): |
19
|
|
|
return "Music library: /media/kostas/freeagent/m\nLogo\n" |
20
|
|
|
|
21
|
1 |
|
@mock.patch('music_album_creation.create_album.inout') |
22
|
1 |
|
@mock.patch('music_album_creation.create_album.music_lib_directory') |
23
|
|
|
def test_integration(mock_music_lib_directory, mock_inout, tmpdir, integration_data): |
24
|
|
|
target_directory = str(tmpdir.mkdir('temp-music-library')) |
25
|
|
|
runner = CliRunner() |
26
|
|
|
mock_music_lib_directory.return_value = target_directory |
27
|
|
|
mock_inout.input_youtube_url_dialog.return_value = 'https://www.youtube.com/watch?v=Wjrrgrvq1ew' |
28
|
|
|
mock_inout.interactive_track_info_input_dialog.return_value = \ |
29
|
|
|
'1. Gasoline - 0:00\n' \ |
30
|
|
|
'2. Man vs. God - 0:10\n' |
31
|
|
|
mock_inout.track_information_type_dialog.return_value = 'Timestamps' |
32
|
|
|
mock_inout.album_directory_path_dialog.return_value = os.path.join(target_directory, 'del/Faith_in_Science') |
33
|
|
|
mock_inout.interactive_metadata_dialogs.return_value = {'artist': 'del', 'album-artist': 'del', 'album': 'Faith in Science', 'year': '2019'} |
34
|
|
|
|
35
|
|
|
result = runner.invoke(main, []) |
36
|
|
|
print("CAP\n{}\nCAP".format(result.output)) |
37
|
|
|
# captured = capsys.readouterr() |
38
|
|
|
assert result.exit_code == 0 |
39
|
|
|
|