Test Failed
Push — integration-test ( fd2301...a0eaab )
by Konstantinos
02:10
created

tests.test_create_album_program.integration_data()   A

Complexity

Conditions 1

Size

Total Lines 3
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
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