74 lines
2.4 KiB
Python
74 lines
2.4 KiB
Python
from __future__ import absolute_import, unicode_literals
|
|
|
|
import unittest
|
|
|
|
from mopidy.config import validators
|
|
|
|
|
|
class ValidateChoiceTest(unittest.TestCase):
|
|
|
|
def test_no_choices_passes(self):
|
|
validators.validate_choice('foo', None)
|
|
|
|
def test_valid_value_passes(self):
|
|
validators.validate_choice('foo', ['foo', 'bar', 'baz'])
|
|
validators.validate_choice(1, [1, 2, 3])
|
|
|
|
def test_empty_choices_fails(self):
|
|
self.assertRaises(ValueError, validators.validate_choice, 'foo', [])
|
|
|
|
def test_invalid_value_fails(self):
|
|
words = ['foo', 'bar', 'baz']
|
|
self.assertRaises(
|
|
ValueError, validators.validate_choice, 'foobar', words)
|
|
self.assertRaises(
|
|
ValueError, validators.validate_choice, 5, [1, 2, 3])
|
|
|
|
|
|
class ValidateMinimumTest(unittest.TestCase):
|
|
|
|
def test_no_minimum_passes(self):
|
|
validators.validate_minimum(10, None)
|
|
|
|
def test_valid_value_passes(self):
|
|
validators.validate_minimum(10, 5)
|
|
|
|
def test_to_small_value_fails(self):
|
|
self.assertRaises(ValueError, validators.validate_minimum, 10, 20)
|
|
|
|
def test_to_small_value_fails_with_zero_as_minimum(self):
|
|
self.assertRaises(ValueError, validators.validate_minimum, -1, 0)
|
|
|
|
|
|
class ValidateMaximumTest(unittest.TestCase):
|
|
|
|
def test_no_maximum_passes(self):
|
|
validators.validate_maximum(5, None)
|
|
|
|
def test_valid_value_passes(self):
|
|
validators.validate_maximum(5, 10)
|
|
|
|
def test_to_large_value_fails(self):
|
|
self.assertRaises(ValueError, validators.validate_maximum, 10, 5)
|
|
|
|
def test_to_large_value_fails_with_zero_as_maximum(self):
|
|
self.assertRaises(ValueError, validators.validate_maximum, 5, 0)
|
|
|
|
|
|
class ValidateRequiredTest(unittest.TestCase):
|
|
|
|
def test_passes_when_false(self):
|
|
validators.validate_required('foo', False)
|
|
validators.validate_required('', False)
|
|
validators.validate_required(' ', False)
|
|
validators.validate_required([], False)
|
|
|
|
def test_passes_when_required_and_set(self):
|
|
validators.validate_required('foo', True)
|
|
validators.validate_required(' foo ', True)
|
|
validators.validate_required([1], True)
|
|
|
|
def test_blocks_when_required_and_emtpy(self):
|
|
self.assertRaises(ValueError, validators.validate_required, '', True)
|
|
self.assertRaises(ValueError, validators.validate_required, [], True)
|