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