tests.hamcrest_unit_test.collection.IsInTestBase   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 21
Duplicated Lines 0 %
Metric Value
dl 0
loc 21
rs 10
wmc 5

5 Methods

Rating   Name   Duplication   Size   Complexity  
A testHasReadableDescription() 0 2 1
A testReturnsTrueIfArgumentIsInSequence() 0 7 1
A testMismatchDescriptionShowsActualArgument() 0 2 1
A testDescribeMismatch() 0 2 1
A testSuccessfulMatchDoesNotGenerateMismatchDescription() 0 2 1
1
from __future__ import absolute_import
2
3
from hamcrest.library.collection.isin import *
4
5
from hamcrest_unit_test.matcher_test import MatcherTest
6
from .sequencemixin import GeneratorForm, SequenceForm
7
import unittest
8
9
__author__ = "Jon Reid"
10
__copyright__ = "Copyright 2011 hamcrest.org"
11
__license__ = "BSD, see License.txt"
12
13
14
sequence = ('a', 'b', 'c')
15
16
class IsInTestBase(object):
17
18
    def testReturnsTrueIfArgumentIsInSequence(self):
19
        matcher = is_in(self._sequence(*sequence))
20
21
        self.assert_matches('has a', matcher, 'a')
22
        self.assert_matches('has b', matcher, 'b')
23
        self.assert_matches('has c', matcher, 'c')
24
        self.assert_does_not_match('no d', matcher, 'd')
25
26
    def testHasReadableDescription(self):
27
        self.assert_description("one of ('a', 'b', 'c')", is_in(self._sequence(*sequence)))
28
29
    def testSuccessfulMatchDoesNotGenerateMismatchDescription(self):
30
        self.assert_no_mismatch_description(is_in(self._sequence(*sequence)), 'a')
31
32
    def testMismatchDescriptionShowsActualArgument(self):
33
        self.assert_mismatch_description("was 'bad'", is_in(self._sequence(*sequence)), 'bad')
34
35
    def testDescribeMismatch(self):
36
        self.assert_describe_mismatch("was 'bad'", is_in(self._sequence(*sequence)), 'bad')
37
38
39
class IsInConcreteSequenceTest(MatcherTest, IsInTestBase, SequenceForm):
40
    pass
41
42
class IsInGeneratorTest(MatcherTest, IsInTestBase, GeneratorForm):
43
    pass
44
45
if __name__ == '__main__':
46
    unittest.main()
47