for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
import os
import subprocess
from unittest.mock import Mock
from click.testing import CliRunner
from music_album_creation.create_album import main
class TestCreateAlbum:
def test_launching(self):
ro = subprocess.run(['create-album', '--help'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
assert ro.returncode == 0
def test_main(self):
runner = CliRunner()
result = runner.invoke(main, ['--help'])
assert result.exit_code == 0
def test_integration():
inout = Mock()
inout.logo.return_value = 'Logo'
inout.input_youtube_url_dialog.return_value = 'https://www.youtube.com/watch?v=gkbJLLW6xKo'
inout.interactive_track_info_input_dialog.return_value = \
'1. Gasoline - 0:00' \
'2. Man vs. God - 4:30' \
'3. The Great Liar - 9:56' \
'4. Revolution Cookbook - 14:59' \
'5. All These Happy People - 17:54' \
'6. Your Song - 21:58' \
'7. Let Them Burn - 26:44' \
'8. On Parole - 32:40' \
'9. King of the Circus - 38:04'
inout.track_information_type_dialog.return_value = 'Timestamps'
inout.album_directory_path_dialog.return_value = os.path.join(os.environ['MUSIC_LIB_ROOT'], 'Planet_of_Zeus/Faith_in_Science')
inout.interactive_metadata_dialogs.return_value = {'artist': 'Planet of Zeus', 'album-artist': 'Planet of Zeus', 'album':'Faith in Science', 'year': '2019'}
result = runner.invoke(main, [])