Completed
Push — master ( 4c4643...bdfd16 )
by Tom
05:30
created

RequestHandlerTest   A

Complexity

Total Complexity 12

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Test Coverage

Coverage 88.24%

Importance

Changes 4
Bugs 0 Features 0
Metric Value
c 4
b 0
f 0
dl 0
loc 43
ccs 30
cts 34
cp 0.8824
rs 10
wmc 12

6 Methods

Rating   Name   Duplication   Size   Complexity  
A testQuestions() 0 12 4
A testResourceOutput() 0 2 1
A getFrench() 0 6 2
A testNonSentence() 0 4 1
A checkQuestion() 0 3 1
A getAnswer() 0 10 3
1 1
from unittest import TestCase
2 1
from ppp_datamodel.communication import Request
3 1
from ppp_datamodel import Triple, Resource, Missing, Intersection, Exists
4 1
from ppp_libmodule.tests import PPPTestCase
5
6 1
from ppp_questionparsing_grammatical import app
7 1
from ppp_datamodel.utils import InclusionTestCase
8
9 1
import sys
10
11 1
import data_deep
12
13 1
class RequestHandlerTest(PPPTestCase(app), InclusionTestCase):
14 1
    def getFrench(self, sentence, lenAnswer):
15
        assert(lenAnswer < 2)
16
        j = {'id': '1', 'language': 'fr', 'measures': {}, 'trace': [],
17
            'tree': {'type': 'sentence', 'value': 'Ceci est une phrase'}}
18
        r = self.request(j)
19
        self.assertEqual(len(r), [])
20
21 1
    def getAnswer(self, sentence, lenAnswer):
22 1
        assert(lenAnswer < 2)
23 1
        j = {'id': '1', 'language': 'en', 'measures': {}, 'trace': [],
24
            'tree': {'type': 'sentence', 'value': sentence}}
25 1
        r = self.request(j)
26 1
        self.assertEqual(len(r), lenAnswer, sentence)
27 1
        if len(r) == 0:
28 1
            return None
29
        else:
30 1
            return r[0].tree
31
32 1
    def checkQuestion(self, sentence, expectedTree):
33 1
        resultTree = self.getAnswer(sentence, 1)
34 1
        self.assertIncluded(expectedTree, resultTree)
35
36 1
    def testNonSentence(self):
37 1
        answer = self.request({'id': '1', 'language': 'en', 'measures': {}, 'trace': [],
38
            'tree': {'type': 'resource', 'value': 'foo'}})
39 1
        self.assertEqual(len(answer), 0)
40
41 1
    def testResourceOutput(self):
42 1
        self.getAnswer("Yoda", 0)
43
44 1
    def testQuestions(self):
45 1
        nbFailure = 0
46 1
        for (sentence, expectedTree) in data_deep.expected.items():
47 1
            try:
48 1
                self.checkQuestion(sentence, expectedTree)
49 1
            except AssertionError:
50 1
                print("[Deep test] The following question check failed: %s" % sentence, file=sys.stderr)
51 1
                nbFailure += 1
52 1
        print("[Deep test] %s question checks succeeded." % (len(data_deep.expected.items())-nbFailure), file=sys.stderr)
53 1
        if nbFailure > 0:
54 1
            print("[Deep test] %s question checks failed." % nbFailure, file=sys.stderr)
55
            raise AssertionError
56