mopidy/tests/config/test_validator.py
2014-12-07 20:17:10 +01:00

70 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)