mirror of
https://github.com/KevinMidboe/spotify-downloader.git
synced 2025-10-29 18:00:15 +00:00
* Move spotdl.py inside spotdl directory * Fix Dockerfile * Re-upload FFmpeg binary * Small fixes ;)
51 lines
1.8 KiB
Python
51 lines
1.8 KiB
Python
import yaml
|
|
|
|
from spotdl import handle
|
|
from spotdl import const
|
|
|
|
import pytest
|
|
import os
|
|
import sys
|
|
import argparse
|
|
|
|
|
|
def test_log_str_to_int():
|
|
expect_levels = [20, 30, 40, 10]
|
|
levels = [handle.log_leveller(level)
|
|
for level in handle._LOG_LEVELS_STR]
|
|
assert levels == expect_levels
|
|
|
|
|
|
class TestConfig:
|
|
def test_default_config(self, tmpdir):
|
|
expect_config = handle.default_conf['spotify-downloader']
|
|
global config_path
|
|
config_path = os.path.join(str(tmpdir), 'config.yml')
|
|
config = handle.get_config(config_path)
|
|
assert config == expect_config
|
|
|
|
def test_modified_config(self):
|
|
global modified_config
|
|
modified_config = dict(handle.default_conf)
|
|
modified_config['spotify-downloader']['file-format'] = 'just_a_test'
|
|
merged_config = handle.merge(handle.default_conf, modified_config)
|
|
assert merged_config == modified_config
|
|
|
|
def test_custom_config_path(self, tmpdir):
|
|
parser = argparse.ArgumentParser()
|
|
with open(config_path, 'w') as config_file:
|
|
yaml.dump(modified_config, config_file, default_flow_style=False)
|
|
overridden_config = handle.override_config(config_path,
|
|
parser,
|
|
raw_args='')
|
|
modified_values = [ str(value) for value in modified_config['spotify-downloader'].values() ]
|
|
overridden_config.folder = os.path.realpath(overridden_config.folder)
|
|
overridden_values = [ str(value) for value in overridden_config.__dict__.values() ]
|
|
assert sorted(overridden_values) == sorted(modified_values)
|
|
|
|
|
|
def test_grouped_arguments(tmpdir):
|
|
sys.path[0] = str(tmpdir)
|
|
with pytest.raises(SystemExit):
|
|
handle.get_arguments(to_group=True, to_merge=True)
|