1
|
|
|
import os |
2
|
|
|
import subprocess |
3
|
|
|
|
4
|
|
|
from click.testing import CliRunner |
5
|
|
|
from music_album_creation.create_album import main |
6
|
|
|
import pytest |
7
|
|
|
import mock |
8
|
|
|
|
9
|
|
|
|
10
|
|
|
class TestCreateAlbum: |
11
|
|
|
|
12
|
|
|
def test_launching(self): |
13
|
|
|
ro = subprocess.run(['create-album', '--help'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) |
14
|
|
|
assert ro.returncode == 0 |
15
|
|
|
|
16
|
|
|
def test_main(self): |
17
|
|
|
runner = CliRunner() |
18
|
|
|
result = runner.invoke(main, ['--help']) |
19
|
|
|
assert result.exit_code == 0 |
20
|
|
|
|
21
|
|
|
|
22
|
|
|
@pytest.fixture(scope='module') |
23
|
|
|
def integration_data(): |
24
|
|
|
return "Music library: /media/kostas/freeagent/m\nLogo\n" |
25
|
|
|
|
26
|
|
|
@mock.patch('create_album.inout') |
27
|
|
|
def test_integration(mock_inout, integration_data): |
28
|
|
|
|
29
|
|
|
runner = CliRunner() |
30
|
|
|
mock_inout.logo.return_value = 'Logo' |
31
|
|
|
mock_inout.input_youtube_url_dialog.return_value = 'https://www.youtube.com/watch?v=gkbJLLW6xKo' |
32
|
|
|
mock_inout.interactive_track_info_input_dialog.return_value = \ |
33
|
|
|
'1. Gasoline - 0:00' \ |
34
|
|
|
'2. Man vs. God - 4:30' \ |
35
|
|
|
'3. The Great Liar - 9:56' \ |
36
|
|
|
'4. Revolution Cookbook - 14:59' \ |
37
|
|
|
'5. All These Happy People - 17:54' \ |
38
|
|
|
'6. Your Song - 21:58' \ |
39
|
|
|
'7. Let Them Burn - 26:44' \ |
40
|
|
|
'8. On Parole - 32:40' \ |
41
|
|
|
'9. King of the Circus - 38:04' |
42
|
|
|
mock_inout.track_information_type_dialog.return_value = 'Timestamps' |
43
|
|
|
mock_inout.album_directory_path_dialog.return_value = os.path.join(os.environ['MUSIC_LIB_ROOT'], 'Planet_of_Zeus/Faith_in_Science') |
44
|
|
|
mock_inout.interactive_metadata_dialogs.return_value = {'artist': 'Planet of Zeus', 'album-artist': 'Planet of Zeus', 'album':'Faith in Science', 'year': '2019'} |
45
|
|
|
|
46
|
|
|
result = runner.invoke(main, []) |
47
|
|
|
assert result.output == integration_data |
48
|
|
|
assert result.exit_code == 0 |
49
|
|
|
|