· 5 years ago · Aug 20, 2020, 12:56 PM
1from django.test import TestCase
2from secretpost.models import Secret
3from secretpost.views import secretPost,secretGet
4from django.http import HttpRequest
5from django.test import Client
6
7
8c = Client()
9
10
11class secretTestCase(TestCase):
12 def test_object(self):
13 obj = Secret(text = b'privet', secret_key = 'medved')
14 obj.save()
15 obj = Secret.objects.filter(text = b'privet')[0]
16 self.assertEqual(obj.secret_key, 'medved')
17
18
19 def test_endpointPost(self):
20 payload = {'text':'cool', 'key':'some key goes here'}
21 resp = c.get('/secretpost/', payload)
22 self.assertEqual(resp.content, b'request is not POST')
23 resp = c.post('/secretpost/', {})
24 self.assertEqual(resp.content, b'payload is invalid, please provide "text" and "key"')
25 resp = c.post('/secretpost/', payload)
26 self.assertEqual(len(resp.content),16)
27
28
29 def test_endpointGet(self):
30 payload = {'text':'cool', 'key':'some key goes here'}
31 resp = c.post('/secretpost/', payload)
32 link = '/secretpost/' + str(resp.content.decode('utf-8'))
33 resp = c.post(link)
34 self.assertEqual(resp.content, b'request is not GET')
35 resp = c.get(link, {})
36 self.assertEqual(resp.content, b'no key provided!')
37 resp = c.get(link, {'key':'wrong_key'})
38 self.assertNotEqual(resp.content.decode('utf-8'), payload['text'])
39 resp = c.get(link, {'key':payload['key']})
40 self.assertEqual(resp.content.decode('utf-8'), payload['text'])
41 # add deletion here
42 resp = c.get('/secretpost/' + 'random_str', {'key':payload['key']})
43 self.assertEqual(resp.content, b'secret not found')
44
45
46
47
48
49