tests.HttpTest.testEmpty()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 1
Metric Value
cc 1
dl 0
loc 5
ccs 5
cts 5
cp 1
crap 1
rs 9.4286
1
2 1
import sqlite3
3
4 1
import json
5 1
import tempfile
6 1
from ppp_logger import app
7 1
from ppp_libmodule.tests import PPPTestCase
8
9
10 1
class HttpTest(PPPTestCase(app)):
11 1
    config_var = 'PPP_LOGGER_CONFIG'
12 1
    def setUp(self):
13 1
        self.fd = tempfile.NamedTemporaryFile('w+')
14 1
        self.config = '{"database_url": "sqlite:///%s"}' % self.fd.name
15 1
        super(HttpTest, self).setUp()
16 1
    def tearDown(self):
17 1
        super(HttpTest, self).tearDown()
18 1
        self.fd.close()
19 1
    def testEmpty(self):
20 1
        r = self.app.get('/')
21 1
        self.assertEqual(r.content_type, 'application/json')
22 1
        r = json.loads(r.body.decode())
23 1
        self.assertEqual(r, [])
24
25 1
    def testUnknownOrder(self):
26 1
        self.assertEqual(self.app.get('/', {'order': 'foobar'}, status='*').status_int, 405)
27
28 1
    def testLast(self):
29 1
        q = {'id': 'foo', 'question': 'Foo bar?', 'responses': []}
30 1
        self.assertStatusInt(q, 200)
31 1
        q = {'id': 'foo', 'question': 'Baz qux?', 'responses': []}
32 1
        self.assertStatusInt(q, 200)
33 1
        r = self.app.get('/')
34 1
        self.assertEqual(r.content_type, 'application/json')
35 1
        r = json.loads(r.body.decode())
36 1
        self.assertEqual(len(r), 2, r)
37 1
        self.assertEqual(r[0][0], 'Baz qux?')
38 1
        self.assertEqual(r[1][0], 'Foo bar?')
39 1
    def testLimitLast(self):
40 1
        q = {'id': 'foo', 'question': 'Foo bar?', 'responses': []}
41 1
        self.assertStatusInt(q, 200)
42 1
        q = {'id': 'foo', 'question': 'Baz qux?', 'responses': []}
43 1
        self.assertStatusInt(q, 200)
44 1
        r = self.app.get('/', params={'limit': 1})
45 1
        self.assertEqual(r.content_type, 'application/json')
46 1
        r = json.loads(r.body.decode())
47 1
        self.assertEqual(len(r), 1, r)
48 1
        self.assertEqual(r[0][0], 'Baz qux?')
49
50 1
    def testFirst(self):
51 1
        q = {'id': 'foo', 'question': 'Foo bar?', 'responses': []}
52 1
        self.assertStatusInt(q, 200)
53 1
        q = {'id': 'foo', 'question': 'Baz qux?', 'responses': []}
54 1
        self.assertStatusInt(q, 200)
55 1
        r = self.app.get('/', {'order': 'first', 'limit': '1'})
56 1
        self.assertEqual(r.content_type, 'application/json')
57 1
        r = json.loads(r.body.decode())
58 1
        self.assertEqual(len(r), 1, r)
59 1
        self.assertEqual(r[0][0], 'Foo bar?')
60 1
        r = self.app.get('/', {'order': 'first', 'limit': '1', 'offset': '1'})
61 1
        self.assertEqual(r.content_type, 'application/json')
62 1
        r = json.loads(r.body.decode())
63 1
        self.assertEqual(len(r), 1, r)
64 1
        self.assertEqual(r[0][0], 'Baz qux?')
65
66 1
    def testTop(self):
67 1
        q = {'id': 'foo', 'question': 'Foo bar?', 'responses': []}
68 1
        self.assertStatusInt(q, 200)
69 1
        q = {'id': 'foo', 'question': 'Baz qux?', 'responses': []}
70 1
        self.assertStatusInt(q, 200)
71 1
        q = {'id': 'foo', 'question': 'Baz qux?', 'responses': []}
72 1
        self.assertStatusInt(q, 200)
73 1
        q = {'id': 'foo', 'question': 'Baz qux?', 'responses': []}
74 1
        self.assertStatusInt(q, 200)
75 1
        q = {'id': 'foo', 'question': 'Foo bar?', 'responses': []}
76 1
        self.assertStatusInt(q, 200)
77 1
        q = {'id': 'foo', 'question': 'Baz qux?', 'responses': []}
78 1
        self.assertStatusInt(q, 200)
79 1
        q = {'id': 'foo', 'question': 'quux?', 'responses': []}
80 1
        self.assertStatusInt(q, 200)
81 1
        q = {'id': 'foo', 'question': 'Foo bar?', 'responses': []}
82 1
        self.assertStatusInt(q, 200)
83 1
        r = self.app.get('/', {'order': 'top'})
84 1
        self.assertEqual(r.content_type, 'application/json')
85 1
        r = json.loads(r.body.decode())
86 1
        self.assertEqual(len(r), 3, r)
87 1
        self.assertEqual(r[0][0], 'Baz qux?', r)
88 1
        self.assertEqual(r[1][0], 'Foo bar?', r)
89 1
        self.assertEqual(r[2][0], 'quux?', r)
90
91 1
    """
92
    def testTopAmong(self):
93
        q = {'id': 'foo', 'question': 'Foo bar?', 'responses': []}
94
        self.assertStatusInt(q, 200)
95
        q = {'id': 'foo', 'question': 'Baz qux?', 'responses': []}
96
        self.assertStatusInt(q, 200)
97
        q = {'id': 'foo', 'question': 'Baz qux?', 'responses': []}
98
        self.assertStatusInt(q, 200)
99
        q = {'id': 'foo', 'question': 'Baz qux?', 'responses': []}
100
        self.assertStatusInt(q, 200)
101
        q = {'id': 'foo', 'question': 'Baz qux?', 'responses': []}
102
        self.assertStatusInt(q, 200)
103
        q = {'id': 'foo', 'question': 'Foo bar?', 'responses': []}
104
        self.assertStatusInt(q, 200)
105
        q = {'id': 'foo', 'question': 'Baz qux?', 'responses': []}
106
        self.assertStatusInt(q, 200)
107
        q = {'id': 'foo', 'question': 'quux?', 'responses': []}
108
        self.assertStatusInt(q, 200)
109
        q = {'id': 'foo', 'question': 'Foo bar?', 'responses': []}
110
        self.assertStatusInt(q, 200)
111
        q = {'id': 'foo', 'question': 'Foo bar?', 'responses': []}
112
        self.assertStatusInt(q, 200)
113
        r = self.app.get('/', {'order': 'top', 'among': 6})
114
        self.assertEqual(r.content_type, 'application/json')
115
        r = json.loads(r.body.decode())
116
        self.assertEqual(len(r), 3, r)
117
        self.assertEqual(r[0][0], 'Foo bar?', r)
118
        self.assertEqual(r[1][0], 'Baz qux?', r)
119
        self.assertEqual(r[2][0], 'quux?', r)
120
        """
121