Completed
Push — master ( 3fb325...f65140 )
by Valentin
01:58
created

tests.TraceItemTest.testLegacyTraceItem()   A

Complexity

Conditions 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1
Metric Value
cc 1
dl 0
loc 3
ccs 2
cts 2
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
    def testEquality(self):
9 1
        self.assertEqual(Request('1', 'en', Resource(value='foo'), {}, []),
10
                         Request('1', 'en', Resource(value='foo'), {}, []))
11 1
        self.assertNotEqual(Request('1', 'en', Resource(value='foo'), {}, []),
12
                            Request('1', 'en', Resource(value='bar'), {}, []))
13
14 1
    def testFromJson(self):
15 1
        j = {'id': '1', 'language': 'en', 'measures': {}, 'trace': [],
16
             'tree': {'type': 'resource', 'value': 'foo'}}
17 1
        self.assertEqual(Request('1', 'en', Resource(value='foo'), {}, []),
18
                         Request.from_dict(j))
19 1
        self.assertEqual(Request('1', 'en', Resource(value='foo'), {}, []),
20
                         Request.from_json(json.dumps(j)))
21 1
        self.assertEqual(json.loads(Request.from_dict(j).as_json()), j)
22
23 1
class ResponseTest(TestCase):
24 1
    def testEquality(self):
25 1
        self.assertEqual(Response('en', Resource(value='foo'), {}, []),
26
                         Response('en', Resource(value='foo'), {}, []))
27 1
        self.assertNotEqual(Response('en', Resource(value='foo'), {}, []),
28
                            Response('en', Resource(value='bar'), {}, []))
29 1
        self.assertNotEqual(Response('en', Resource(value='foo'), {'accuracy': 0.5}, []),
30
                            Response('en', Resource(value='foo'), {'accuracy': 0.6}, []))
31
32 1
    def testFromJson(self):
33 1
        r = {'language': 'en', 'measures': {},
34
             'trace': [{'module': 'foo', 'tree': {'type': 'missing'}, 'measures': {},
35
                 'times': {}}],
36
             'tree': {'type': 'resource', 'value': 'foo'}}
37 1
        t = [TraceItem('foo', Missing(), {}, {})]
38 1
        self.assertEqual(Response('en', Resource(value='foo'), {}, t),
39
                         Response.from_json(json.dumps(r)))
40 1
        self.assertEqual(Response('en', Resource(value='foo'), {}, t),
41
                         Response.from_dict(r))
42 1
        self.assertEqual(Response('en', Resource(value='foo'), {}, t),
43
                         Response.from_json(json.dumps(r)))
44 1
        self.assertEqual(json.loads(Response.from_dict(r).as_json()), r)
45
46 1
    def testFromLegacyJson(self):
47 1
        r1 = {'language': 'en', 'measures': {},
48
             'trace': [{'module': 'foo', 'tree': {'type': 'missing'}, 'measures': {}}],
49
             'tree': {'type': 'resource', 'value': 'foo'}}
50 1
        r2 = {'language': 'en', 'measures': {},
51
             'trace': [{'module': 'foo', 'tree': {'type': 'missing'}, 'measures': {},
52
                 'times': {}}],
53
             'tree': {'type': 'resource', 'value': 'foo'}}
54 1
        t = [TraceItem('foo', Missing(), {}, {})]
55 1
        self.assertEqual(Response('en', Resource(value='foo'), {}, t),
56
                         Response.from_json(json.dumps(r1)))
57 1
        self.assertEqual(Response('en', Resource(value='foo'), {}, t),
58
                         Response.from_dict(r1))
59 1
        self.assertEqual(Response('en', Resource(value='foo'), {}, t),
60
                         Response.from_json(json.dumps(r1)))
61 1
        self.assertEqual(json.loads(Response.from_dict(r1).as_json()), r2)
62
63 1
class TraceItemTest(TestCase):
64 1
    def testFromDict(self):
65 1
        d = {'tree': {'type': 'missing'}, 'module': 'foo', 'measures': {}, 'times': {}}
66 1
        self.assertEqual(TraceItem.from_dict(d),
67
                TraceItem('foo', Missing(), {}, {}))
68
69 1
    def testLegacyTraceItem(self):
70 1
        self.assertEqual(TraceItem('foo', Resource(value='bar'), {}),
71
                TraceItem('foo', Resource(value='bar'), {}, {}))
72
73