Completed
Push — master ( 39535f...23b608 )
by Thomas
9s
created

tests.RequestHandler.__init__()   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
"""Test HTTP capabilities of the core's frontend."""
2
3 1
from ppp_libmodule.tests import PPPTestCase
4 1
from ppp_libmodule.http import HttpRequestHandler
5
6 1
r = None
7
8 1
class RequestHandler:
9 1
    def __init__(self, request):
10
        global r
11 1
        r = request
12
13 1
    def answer(self):
14 1
        return []
15
16 1
def app(environ, start_response):
17
    """Function called by the WSGI server."""
18 1
    r = HttpRequestHandler(environ, start_response, RequestHandler).dispatch()
19 1
    return r
20
21 1
class HttpTest(PPPTestCase(app)):
22 1
    def testPostOnly(self):
23 1
        self.assertEqual(self.app.get('/', status='*').status_int, 405)
24 1
        self.assertEqual(self.app.put('/', status='*').status_int, 405)
25 1
    def testNotRoot(self):
26 1
        self.assertEqual(self.app.post_json('/foo', {}, status='*').status_int, 400)
27 1
    def testNotJson(self):
28 1
        self.assertEqual(self.app.post('/', 'foobar', status='*').status_int, 400)
29 1
    def testWorking(self):
30
        global r
31 1
        q = {'id': '1', 'language': 'en', 'tree': {'type': 'triple',
32
             'subject': {'type': 'resource', 'value': 'foo'},
33
             'predicate': {'type': 'resource', 'value': 'bar'},
34
             'object': {'type': 'resource', 'value': 'baz'}},
35
              'measures': {}, 'trace': []}
36 1
        r = None
37 1
        self.assertResponse(q, [])
38 1
        self.assertEqual(r.as_dict(), q)
39 1
    def testNoTree(self):
40 1
        q = {'language': 'en'}
41
        self.assertStatusInt(q, 400)
42