mirror of
https://github.com/clinton-hall/nzbToMedia.git
synced 2025-08-20 13:23:18 -07:00
Move common libs to libs/common
This commit is contained in:
parent
8dbb1a2451
commit
1f4bd41bcc
1612 changed files with 962 additions and 10 deletions
175
libs/common/guessit/test/test_options.py
Normal file
175
libs/common/guessit/test/test_options.py
Normal file
|
@ -0,0 +1,175 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
# pylint: disable=no-self-use, pointless-statement, missing-docstring, invalid-name, pointless-string-statement
|
||||
import os
|
||||
|
||||
import pytest
|
||||
|
||||
from ..options import get_options_file_locations, merge_options, load_config_file, ConfigurationException, \
|
||||
load_config
|
||||
|
||||
__location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__)))
|
||||
|
||||
|
||||
def test_config_locations():
|
||||
homedir = '/root'
|
||||
cwd = '/root/cwd'
|
||||
|
||||
locations = get_options_file_locations(homedir, cwd, True)
|
||||
assert len(locations) == 9
|
||||
|
||||
assert '/root/.guessit/options.json' in locations
|
||||
assert '/root/.guessit/options.yml' in locations
|
||||
assert '/root/.guessit/options.yaml' in locations
|
||||
assert '/root/.config/guessit/options.json' in locations
|
||||
assert '/root/.config/guessit/options.yml' in locations
|
||||
assert '/root/.config/guessit/options.yaml' in locations
|
||||
assert '/root/cwd/guessit.options.json' in locations
|
||||
assert '/root/cwd/guessit.options.yml' in locations
|
||||
assert '/root/cwd/guessit.options.yaml' in locations
|
||||
|
||||
|
||||
def test_merge_configurations():
|
||||
c1 = {'param1': True, 'param2': True, 'param3': False}
|
||||
c2 = {'param1': False, 'param2': True, 'param3': False}
|
||||
c3 = {'param1': False, 'param2': True, 'param3': False}
|
||||
|
||||
merged = merge_options(c1, c2, c3)
|
||||
assert not merged['param1']
|
||||
assert merged['param2']
|
||||
assert not merged['param3']
|
||||
|
||||
merged = merge_options(c3, c2, c1)
|
||||
assert merged['param1']
|
||||
assert merged['param2']
|
||||
assert not merged['param3']
|
||||
|
||||
|
||||
def test_merge_configurations_lists():
|
||||
c1 = {'param1': [1], 'param2': True, 'param3': False}
|
||||
c2 = {'param1': [2], 'param2': True, 'param3': False}
|
||||
c3 = {'param1': [3], 'param2': True, 'param3': False}
|
||||
|
||||
merged = merge_options(c1, c2, c3)
|
||||
assert merged['param1'] == [1, 2, 3]
|
||||
assert merged['param2']
|
||||
assert not merged['param3']
|
||||
|
||||
merged = merge_options(c3, c2, c1)
|
||||
assert merged['param1'] == [3, 2, 1]
|
||||
assert merged['param2']
|
||||
assert not merged['param3']
|
||||
|
||||
|
||||
def test_merge_configurations_deep():
|
||||
c1 = {'param1': [1], 'param2': {'d1': [1]}, 'param3': False}
|
||||
c2 = {'param1': [2], 'param2': {'d1': [2]}, 'param3': False}
|
||||
c3 = {'param1': [3], 'param2': {'d3': [3]}, 'param3': False}
|
||||
|
||||
merged = merge_options(c1, c2, c3)
|
||||
assert merged['param1'] == [1, 2, 3]
|
||||
assert merged['param2']['d1'] == [1, 2]
|
||||
assert merged['param2']['d3'] == [3]
|
||||
assert 'd2' not in merged['param2']
|
||||
assert not merged['param3']
|
||||
|
||||
merged = merge_options(c3, c2, c1)
|
||||
assert merged['param1'] == [3, 2, 1]
|
||||
assert merged['param2']
|
||||
assert merged['param2']['d1'] == [2, 1]
|
||||
assert 'd2' not in merged['param2']
|
||||
assert merged['param2']['d3'] == [3]
|
||||
assert not merged['param3']
|
||||
|
||||
|
||||
def test_merge_configurations_pristine_all():
|
||||
c1 = {'param1': [1], 'param2': True, 'param3': False}
|
||||
c2 = {'param1': [2], 'param2': True, 'param3': False, 'pristine': True}
|
||||
c3 = {'param1': [3], 'param2': True, 'param3': False}
|
||||
|
||||
merged = merge_options(c1, c2, c3)
|
||||
assert merged['param1'] == [2, 3]
|
||||
assert merged['param2']
|
||||
assert not merged['param3']
|
||||
|
||||
merged = merge_options(c3, c2, c1)
|
||||
assert merged['param1'] == [2, 1]
|
||||
assert merged['param2']
|
||||
assert not merged['param3']
|
||||
|
||||
|
||||
def test_merge_configurations_pristine_properties():
|
||||
c1 = {'param1': [1], 'param2': False, 'param3': True}
|
||||
c2 = {'param1': [2], 'param2': True, 'param3': False, 'pristine': ['param2', 'param3']}
|
||||
c3 = {'param1': [3], 'param2': True, 'param3': False}
|
||||
|
||||
merged = merge_options(c1, c2, c3)
|
||||
assert merged['param1'] == [1, 2, 3]
|
||||
assert merged['param2']
|
||||
assert not merged['param3']
|
||||
|
||||
|
||||
def test_merge_configurations_pristine_properties_deep():
|
||||
c1 = {'param1': [1], 'param2': {'d1': False}, 'param3': True}
|
||||
c2 = {'param1': [2], 'param2': {'d1': True}, 'param3': False, 'pristine': ['param2', 'param3']}
|
||||
c3 = {'param1': [3], 'param2': {'d1': True}, 'param3': False}
|
||||
|
||||
merged = merge_options(c1, c2, c3)
|
||||
assert merged['param1'] == [1, 2, 3]
|
||||
assert merged['param2']
|
||||
assert not merged['param3']
|
||||
|
||||
|
||||
def test_merge_configurations_pristine_properties2():
|
||||
c1 = {'param1': [1], 'param2': False, 'param3': True}
|
||||
c2 = {'param1': [2], 'param2': True, 'param3': False, 'pristine': ['param1', 'param2', 'param3']}
|
||||
c3 = {'param1': [3], 'param2': True, 'param3': False}
|
||||
|
||||
merged = merge_options(c1, c2, c3)
|
||||
assert merged['param1'] == [2, 3]
|
||||
assert merged['param2']
|
||||
assert not merged['param3']
|
||||
|
||||
|
||||
def test_load_config_file():
|
||||
json_config = load_config_file(os.path.join(__location__, 'config', 'test.json'))
|
||||
yml_config = load_config_file(os.path.join(__location__, 'config', 'test.yml'))
|
||||
yaml_config = load_config_file(os.path.join(__location__, 'config', 'test.yaml'))
|
||||
|
||||
assert json_config['expected_title'] == ['The 100', 'OSS 117']
|
||||
assert yml_config['expected_title'] == ['The 100', 'OSS 117']
|
||||
assert yaml_config['expected_title'] == ['The 100', 'OSS 117']
|
||||
|
||||
assert json_config['yaml'] is False
|
||||
assert yml_config['yaml'] is True
|
||||
assert yaml_config['yaml'] is True
|
||||
|
||||
with pytest.raises(ConfigurationException) as excinfo:
|
||||
load_config_file(os.path.join(__location__, 'config', 'dummy.txt'))
|
||||
|
||||
assert excinfo.match('Configuration file extension is not supported for ".*?dummy.txt" file\\.')
|
||||
|
||||
|
||||
def test_load_config():
|
||||
config = load_config({'no_default_config': True, 'param1': 'test',
|
||||
'config': [os.path.join(__location__, 'config', 'test.yml')]})
|
||||
|
||||
assert not config.get('param1')
|
||||
|
||||
assert config.get('advanced_config') # advanced_config is still loaded from default
|
||||
assert config['expected_title'] == ['The 100', 'OSS 117']
|
||||
assert config['yaml'] is True
|
||||
|
||||
config = load_config({'no_default_config': True, 'param1': 'test'})
|
||||
|
||||
assert not config.get('param1')
|
||||
|
||||
assert 'expected_title' not in config
|
||||
assert 'yaml' not in config
|
||||
|
||||
config = load_config({'no_default_config': True, 'param1': 'test', 'config': ['false']})
|
||||
|
||||
assert not config.get('param1')
|
||||
|
||||
assert 'expected_title' not in config
|
||||
assert 'yaml' not in config
|
Loading…
Add table
Add a link
Reference in a new issue