Completed
Push — dev ( 232b11...6092be )
by Konstantinos
04:15 queued 01:32
created

tests.test_create_album_program   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Test Coverage

Coverage 52%

Importance

Changes 0
Metric Value
eloc 29
dl 0
loc 39
ccs 13
cts 25
cp 0.52
rs 10
c 0
b 0
f 0
wmc 3

1 Method

Rating   Name   Duplication   Size   Complexity  
A TestCreateAlbum.test_launching() 0 3 1

2 Functions

Rating   Name   Duplication   Size   Complexity  
A integration_data() 0 3 1
A test_integration() 0 18 1
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