Completed
Push — master ( 3008cd...e7155f )
by Valentin
03:11
created

RequestTest.testFromJson()   A

Complexity

Conditions 1

Size

Total Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 1

Importance

Changes 5
Bugs 0 Features 0
Metric Value
cc 1
c 5
b 0
f 0
dl 0
loc 8
ccs 5
cts 5
cp 1
crap 1
rs 9.4285
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', 'response-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 testFromJson(self):
35 1
        r = {'language': 'en', 'measures': {},
36
             'trace': [{'module': 'foo', 'tree': {'type': 'missing'}, 'measures': {},
37
                 'times': {}}],
38
             'tree': {'type': 'resource', 'value': 'foo'}}
39 1
        t = [TraceItem('foo', Missing(), {}, {})]
40 1
        self.assertEqual(Response('en', Resource(value='foo'), {}, t),
41
                         Response.from_json(json.dumps(r)))
42 1
        self.assertEqual(Response('en', Resource(value='foo'), {}, t),
43
                         Response.from_dict(r))
44 1
        self.assertEqual(Response('en', Resource(value='foo'), {}, t),
45
                         Response.from_json(json.dumps(r)))
46 1
        self.assertEqual(json.loads(Response.from_dict(r).as_json()), r)
47
48 1
    def testFromLegacyJson(self):
49 1
        r1 = {'language': 'en', 'measures': {},
50
             'trace': [{'module': 'foo', 'tree': {'type': 'missing'}, 'measures': {}}],
51
             'tree': {'type': 'resource', 'value': 'foo'}}
52 1
        r2 = {'language': 'en', 'measures': {},
53
             'trace': [{'module': 'foo', 'tree': {'type': 'missing'}, 'measures': {},
54
                 'times': {}}],
55
             'tree': {'type': 'resource', 'value': 'foo'}}
56 1
        t = [TraceItem('foo', Missing(), {}, {})]
57 1
        self.assertEqual(Response('en', Resource(value='foo'), {}, t),
58
                         Response.from_json(json.dumps(r1)))
59 1
        self.assertEqual(Response('en', Resource(value='foo'), {}, t),
60
                         Response.from_dict(r1))
61 1
        self.assertEqual(Response('en', Resource(value='foo'), {}, t),
62
                         Response.from_json(json.dumps(r1)))
63 1
        self.assertEqual(json.loads(Response.from_dict(r1).as_json()), r2)
64
65 1
class TraceItemTest(TestCase):
66 1
    def testFromDict(self):
67 1
        d = {'tree': {'type': 'missing'}, 'module': 'foo', 'measures': {}, 'times': {}}
68 1
        self.assertEqual(TraceItem.from_dict(d),
69
                TraceItem('foo', Missing(), {}, {}))
70
71 1
    def testLegacyTraceItem(self):
72 1
        self.assertEqual(TraceItem('foo', Resource(value='bar'), {}),
73
                TraceItem('foo', Resource(value='bar'), {}, {}))
74
75