File: test_named_data.py

package info (click to toggle)
python-ddt 1.7.2-4
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 256 kB
  • sloc: python: 785; makefile: 147; sh: 11
file content (63 lines) | stat: -rw-r--r-- 1,823 bytes parent folder | download
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
import ddt
import unittest


@ddt.ddt
class TestNamedData(unittest.TestCase):
    class NonTrivialClass(object):
        pass

    @ddt.named_data(
        ['Single', 0, 1]
    )
    def test_single_named_value(self, value1, value2):
        self.assertGreater(value2, value1)

    @ddt.named_data(
        ['1st', 1, 2],
        ('2nd', 3, 4)
    )
    def test_multiple_named_value_seqs(self, value1, value2):
        self.assertGreater(value2, value1)

    @ddt.named_data(
        dict(name='1st', value2=1, value1=0),
        {'name': '2nd', 'value2': 1, 'value1': 0}
    )
    def test_multiple_named_value_dicts(self, value1, value2):
        self.assertGreater(value2, value1)

    @ddt.named_data(
        dict(name='1st', value2=1, value1=0),
        ('2nd', 0, 1)
    )
    def test_multiple_named_value_mixed(self, value1, value2):
        self.assertGreater(value2, value1)

    @ddt.named_data(
        ['Passes', NonTrivialClass(), True],
        ('Fails', 1, False)
    )
    def test_seq_with_nontrivial_type(self, value, passes):
        if passes:
            self.assertIsInstance(value, self.NonTrivialClass)
        else:
            self.assertNotIsInstance(value, self.NonTrivialClass)

    @ddt.named_data(
        {'name': 'Passes', 'value': NonTrivialClass(), 'passes': True},
        {'name': 'Fails', 'value': 1, 'passes': False}
    )
    def test_dict_with_nontrivial_type(self, value, passes):
        if passes:
            self.assertIsInstance(value, self.NonTrivialClass)
        else:
            self.assertNotIsInstance(value, self.NonTrivialClass)

    def test_missing_name_dict(self):
        with self.assertRaises(KeyError):
            @ddt.named_data(
                {'not_a_name': 'oops', 'value': 1}
            )
            def _internal_test(value):
                pass