RequestHandlerTest.checkQuestion()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
c 0
b 0
f 0
dl 0
loc 3
ccs 3
cts 3
cp 1
crap 1
rs 10
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