Completed
Push — master ( dfbec1...7e13b1 )
by Satoru
01:08
created

Test_10_functions   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Importance

Changes 9
Bugs 4 Features 4
Metric Value
c 9
b 4
f 4
dl 0
loc 45
rs 10
wmc 5

5 Methods

Rating   Name   Duplication   Size   Complexity  
A test_14_dict_to_rels_itr__lists() 0 10 1
A test_20_dict_to_rels_itr__gen_id() 0 5 1
A test_16_dict_to_rels_itr__lists_of_dicts() 0 12 1
A test_10_dict_to_rels_itr__simple() 0 4 1
A test_12_dict_to_rels_itr__lists() 0 8 1
1
#
2
# Copyright (C) 2017 Satoru SATOH <ssato @ redhat.com>
3
#
4
# pylint: disable=missing-docstring,invalid-name,protected-access
5
from __future__ import absolute_import
6
import unittest
7
import m9dicts.relations as TT
8
9
10
class Test_10_functions(unittest.TestCase):
11
12
    def test_10_dict_to_rels_itr__simple(self):
13
        dic = dict(id=0, a=1, b="b")
14
        ref = [('ab', (('id', 0), ('a', 1), ('b', 'b')))]
15
        self.assertEqual(list(TT._dict_to_rels_itr(dic, "ab")), ref)
16
17
    def test_12_dict_to_rels_itr__lists(self):
18
        dic = dict(id=0, a=1, b=[2, 3], c="c")
19
        id_0 = TT._gen_id('b', 2)
20
        id_1 = TT._gen_id('b', 3)
21
        ref = [('ac', (('id', 0), ('a', 1), ('c', 'c'))),
22
               ('rel_ac_b', (('id', id_0), ('ac', 0), ('b', 2))),
23
               ('rel_ac_b', (('id', id_1), ('ac', 0), ('b', 3)))]
24
        self.assertEqual(list(TT._dict_to_rels_itr(dic, "ac")), ref)
25
26
    def test_14_dict_to_rels_itr__lists(self):
27
        dic = dict(id='01', a=1, b=[2, 3], c=["c"])
28
        id_0 = TT._gen_id('b', 2)
29
        id_1 = TT._gen_id('b', 3)
30
        id_2 = TT._gen_id('c', 'c')
31
        ref = [('A', (('id', '01'), ('a', 1))),
32
               ('rel_A_b', (('id', id_0), ('A', '01'), ('b', 2))),
33
               ('rel_A_b', (('id', id_1), ('A', '01'), ('b', 3))),
34
               ('rel_A_c', (('id', id_2), ('A', '01'), ('c', 'c')))]
35
        self.assertEqual(list(TT._dict_to_rels_itr(dic, "A")), ref)
36
37
    def test_16_dict_to_rels_itr__lists_of_dicts(self):
38
        dic = dict(id=0, a="AAA",
39
                   b=[dict(id=0, b=1, c=2), dict(id=1, b=0, c=3)])
40
        rest = sorted([('b', (('id', 0), ('b', 1), ('c', 2))),
41
                       ('b', (('id', 1), ('b', 0), ('c', 3))),
42
                       ('rel_A_b', (('b', 0), ('A', 0))),
43
                       ('rel_A_b', (('b', 1), ('A', 0)))])
44
45
        ref = [('A', (('id', 0), ('a', 'AAA')))] + rest
46
        res = list(TT._dict_to_rels_itr(dic, "A"))
47
        self.assertEqual(ref[0], res[0])
48
        self.assertEqual(sorted(ref[1:]), sorted(res[1:]))
49
50
    def test_20_dict_to_rels_itr__gen_id(self):
51
        dic = dict(a=1)
52
        oid = TT._gen_id(('a', 1))
53
        self.assertEqual(list(TT._dict_to_rels_itr(dic, "A")),
54
                         [('A', (('id', oid), ('a', 1)))])
55
56
# vim:sw=4:ts=4:et:
57