Statistics
| Branch: | Tag: | Revision:

root / userdata / tests.py @ 6ab78e7c

History | View | Annotate | Download (2.6 kB)

1
"""
2
This file demonstrates two different styles of tests (one doctest and one
3
unittest). These will both pass when you run "manage.py test".
4

5
Replace these with more appropriate tests for your application.
6
"""
7

    
8
from django.test import TestCase
9
from django.conf import settings
10
from django.test.client import Client
11
from django.core.urlresolvers import clear_url_caches
12
from django.utils import simplejson as json
13

    
14
from synnefo.userdata.models import User
15
from synnefo.userdata.models import *
16

    
17
class AaiClient(Client):
18

    
19
    def request(self, **request):
20
        request['HTTP_X_AUTH_TOKEN'] = '46e427d657b20defe352804f0eb6f8a2'
21
        return super(AaiClient, self).request(**request)
22

    
23
class TestRestViews(TestCase):
24

    
25
    fixtures = ['users']
26

    
27
    def setUp(self):
28
        settings.ROOT_URLCONF = 'synnefo.userdata.urls'
29
        clear_url_caches()
30
        self.client = AaiClient()
31
        self.user = User.objects.get(pk=1)
32

    
33
    def test_keys_collection_get(self):
34
        resp = self.client.get("/keys/")
35
        self.assertEqual(resp.content, "[]")
36

    
37
        PublicKeyPair.objects.create(user=self.user, name="key pair 1",
38
                content="content1")
39

    
40
        resp = self.client.get("/keys/")
41
        self.assertEqual(resp.content, """[{"content": "content1", "uri": "/keys/1/", "name": "key pair 1", "id": 1}]""")
42

    
43
        PublicKeyPair.objects.create(user=self.user, name="key pair 2",
44
                content="content2")
45

    
46
        resp = self.client.get("/keys/")
47
        self.assertEqual(resp.content, """[{"content": "content1", "uri": "/keys/1/", "name": "key pair 1", "id": 1}, {"content": "content2", "uri": "/keys/2/", "name": "key pair 2", "id": 2}]""")
48

    
49
    def test_keys_resourse_get(self):
50
        resp = self.client.get("/keys/1/")
51
        self.assertEqual(resp.status_code, 404)
52

    
53
        # create a public key
54
        PublicKeyPair.objects.create(user=self.user, name="key pair 1",
55
                content="content1")
56
        resp = self.client.get("/keys/1/")
57
        self.assertEqual(resp.content, """{"content": "content1", "uri": "/keys/1/", "name": "key pair 1", "id": 1}""")
58

    
59
        # update
60
        resp = self.client.post("/keys/1/", json.dumps({'name':'key pair 1 new name'}),
61
                content_type='application/json')
62
        pk = PublicKeyPair.objects.get(pk=1)
63
        self.assertEqual(pk.name, "key pair 1 new name")
64

    
65
        # delete
66
        resp = self.client.delete("/keys/1/")
67
        self.assertEqual(PublicKeyPair.objects.count(), 0)
68

    
69
        resp = self.client.get("/keys/1/")
70
        self.assertEqual(resp.status_code, 404)
71

    
72
        resp = self.client.get("/keys/")
73
        self.assertEqual(resp.content, "[]")