File: test_validator.py

package info (click to toggle)
mopidy 3.4.2-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,608 kB
  • sloc: python: 16,656; sh: 159; makefile: 127
file content (67 lines) | stat: -rw-r--r-- 2,350 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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)