45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
import pytest
|
|
|
|
from dynamic_preferences.registries import global_preferences_registry
|
|
from funkwhale_api.common import preferences as common_preferences
|
|
|
|
|
|
@pytest.fixture
|
|
def string_list_pref(preferences):
|
|
|
|
@global_preferences_registry.register
|
|
class P(common_preferences.StringListPreference):
|
|
default = ['hello']
|
|
section = 'test'
|
|
name = 'string_list'
|
|
yield
|
|
del global_preferences_registry['test']['string_list']
|
|
|
|
|
|
@pytest.mark.parametrize('input,output', [
|
|
(['a', 'b', 'c'], 'a,b,c'),
|
|
(['a', 'c', 'b'], 'a,b,c'),
|
|
(('a', 'c', 'b'), 'a,b,c'),
|
|
([], None),
|
|
])
|
|
def test_string_list_serializer_to_db(input, output):
|
|
s = common_preferences.StringListSerializer.to_db(input) == output
|
|
|
|
|
|
@pytest.mark.parametrize('input,output', [
|
|
('a,b,c', ['a', 'b', 'c'], ),
|
|
(None, []),
|
|
('', []),
|
|
])
|
|
def test_string_list_serializer_to_python(input, output):
|
|
s = common_preferences.StringListSerializer.to_python(input) == output
|
|
|
|
|
|
def test_string_list_pref_default(string_list_pref, preferences):
|
|
assert preferences['test__string_list'] == ['hello']
|
|
|
|
|
|
def test_string_list_pref_set(string_list_pref, preferences):
|
|
preferences['test__string_list'] = ['world', 'hello']
|
|
assert preferences['test__string_list'] == ['hello', 'world']
|