Completed
Push — response-language ( 1cdaa3...0e829a )
by Thomas
02:22
created

TraceItemTest.testFromDict()   A

Complexity

Conditions 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 1
c 2
b 0
f 0
dl 0
loc 4
ccs 3
cts 3
cp 1
crap 1
rs 10
1
2 1
import json
3 1
from unittest import TestCase
4 1
from ppp_datamodel import Resource, Missing
5 1
from ppp_datamodel.communication import Request, TraceItem, Response
6
7 1
class RequestTest(TestCase):
8 1 View Code Duplication
    def testEquality(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
9 1
        self.assertEqual(Request('1', 'en', Resource(value='foo'), {}, []),
10
                         Request('1', 'en', Resource(value='foo'), {}, [], 'en'))
11 1
        self.assertNotEqual(Request('1', 'en', Resource(value='foo'), {}, []),
12
                            Request('1', 'en', Resource(value='bar'), {}, []))
13 1
        self.assertNotEqual(Request('1', 'en', Resource(value='foo'), {}, []),
14
                            Request('1', 'en', Resource(value='foo'), {}, [], 'fr'))
15
16 1
    def testFromJson(self):
17 1
        j = {'id': '1', 'language': 'en', 'measures': {}, 'trace': [],
18
             'tree': {'type': 'resource', 'value': 'foo'}}
19 1
        self.assertEqual(Request('1', 'en', Resource(value='foo'), {}, []),
20
                         Request.from_dict(j))
21 1
        self.assertEqual(Request('1', 'en', Resource(value='foo'), {}, []),
22
                         Request.from_json(json.dumps(j)))
23 1
        self.assertEqual(json.loads(Request.from_dict(j).as_json()), j)
24
25 1
class ResponseTest(TestCase):
26 1
    def testEquality(self):
27 1
        self.assertEqual(Response('en', Resource(value='foo'), {}, []),
28
                         Response('en', Resource(value='foo'), {}, []))
29 1
        self.assertNotEqual(Response('en', Resource(value='foo'), {}, []),
30 View Code Duplication
                            Response('en', Resource(value='bar'), {}, []))
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
31 1
        self.assertNotEqual(Response('en', Resource(value='foo'), {'accuracy': 0.5}, []),
32
                            Response('en', Resource(value='foo'), {'accuracy': 0.6}, []))
33
34 1
    def testRepr(self):
35 1
        r="<PPP response language='en', tree=<PPP node \"resource\" {'value': 'foo'}>, measures={}, trace=[]>"
36 1
        self.assertEqual(repr(Response('en', Resource(value='foo'), {}, [])), r)
37
38 1
    def testFromJson(self):
39 1
        r = {'language': 'en', 'measures': {},
40
             'trace': [{'module': 'foo', 'tree': {'type': 'missing'}, 'measures': {},
41
                 'times': {}}],
42
             'tree': {'type': 'resource', 'value': 'foo'}}
43 1
        t = [TraceItem('foo', Missing(), {}, {})]
44 1
        self.assertEqual(Response('en', Resource(value='foo'), {}, t),
45
                         Response.from_json(json.dumps(r)))
46 1
        self.assertEqual(Response('en', Resource(value='foo'), {}, t),
47
                         Response.from_dict(r))
48 1
        self.assertEqual(Response('en', Resource(value='foo'), {}, t),
49
                         Response.from_json(json.dumps(r)))
50 1
        self.assertEqual(json.loads(Response.from_dict(r).as_json()), r)
51
52 1
    def testFromLegacyJson(self):
53 1
        r1 = {'language': 'en', 'measures': {},
54
             'trace': [{'module': 'foo', 'tree': {'type': 'missing'}, 'measures': {}}],
55
             'tree': {'type': 'resource', 'value': 'foo'}}
56 1
        r2 = {'language': 'en', 'measures': {},
57
             'trace': [{'module': 'foo', 'tree': {'type': 'missing'}, 'measures': {},
58
                 'times': {}}],
59
             'tree': {'type': 'resource', 'value': 'foo'}}
60 1
        t = [TraceItem('foo', Missing(), {}, {})]
61 1
        self.assertEqual(Response('en', Resource(value='foo'), {}, t),
62
                         Response.from_json(json.dumps(r1)))
63 1
        self.assertEqual(Response('en', Resource(value='foo'), {}, t),
64
                         Response.from_dict(r1))
65 1
        self.assertEqual(Response('en', Resource(value='foo'), {}, t),
66
                         Response.from_json(json.dumps(r1)))
67 1
        self.assertEqual(json.loads(Response.from_dict(r1).as_json()), r2)
68
69 1
class TraceItemTest(TestCase):
70 1
    def testFromDict(self):
71 1
        d = {'tree': {'type': 'missing'}, 'module': 'foo', 'measures': {}, 'times': {}}
72 1
        self.assertEqual(TraceItem.from_dict(d),
73
                TraceItem('foo', Missing(), {}, {}))
74
75 1
    def testLegacyTraceItem(self):
76 1
        self.assertEqual(TraceItem('foo', Resource(value='bar'), {}),
77
                TraceItem('foo', Resource(value='bar'), {}, {}))
78
79