Statistics
| Branch: | Tag: | Revision:

root / snf-cyclades-app / synnefo / vmapi / tests.py @ 79b7dbb7

History | View | Annotate | Download (3.4 kB)

1
# -*- coding: utf8 -*-
2
# Copyright 2012 GRNET S.A. All rights reserved.
3
#
4
# Redistribution and use in source and binary forms, with or
5
# without modification, are permitted provided that the following
6
# conditions are met:
7
#
8
#   1. Redistributions of source code must retain the above
9
#      copyright notice, this list of conditions and the following
10
#      disclaimer.
11
#
12
#   2. Redistributions in binary form must reproduce the above
13
#      copyright notice, this list of conditions and the following
14
#      disclaimer in the documentation and/or other materials
15
#      provided with the distribution.
16
#
17
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
18
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
21
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
24
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
25
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
27
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28
# POSSIBILITY OF SUCH DAMAGE.
29
#
30
# The views and conclusions contained in the software and
31
# documentation are those of the authors and should not be
32
# interpreted as representing official policies, either expressed
33
# or implied, of GRNET S.A.
34

    
35
from django.test import TestCase
36
from django.utils import simplejson as json
37

    
38
from synnefo.vmapi import settings
39

    
40
class TestServerParams(TestCase):
41

    
42
    def test_cache_backend(self):
43
        from synnefo.vmapi import backend
44
        backend.set("test", 1)
45
        self.assertEqual(backend.get("test"), 1)
46
        backend.set("test", None)
47
        self.assertEqual(backend.get("test"), None)
48

    
49
    def test_get_key(self):
50
        from synnefo.vmapi import get_key
51
        self.assertEqual(get_key("snf-1", "12345"), "vmapi_snf-1_12345")
52
        self.assertEqual(get_key("snf-1", None, "12345"), "vmapi_snf-1_12345")
53

    
54
    def test_params_create(self):
55
        from synnefo.vmapi.models import create_server_params
56
        from synnefo.vmapi import backend
57
        try:
58
            from synnefo.api.servers import server_created
59
            from synnefo.db.models import VirtualMachine
60
        except ImportError:
61
            print "Skipping test_params_create"
62
            return
63

    
64
        # mimic server creation signal called
65
        vm = VirtualMachine()
66
        params = {'password': 'X^942Jjfdsa', 'personality': {}}
67
        uuid = create_server_params(sender=vm, created_vm_params=params)
68

    
69
        self.assertEqual(vm.config_url, settings.BASE_URL + '/vmapi/server-params/%s' % uuid)
70
        key = "vmapi_%s" % uuid
71
        self.assertEqual(type(backend.get(key)), str)
72
        data = json.loads(backend.get(key))
73
        self.assertEqual('password' in data, True)
74
        self.assertEqual('personality' in data, True)
75
        self.assertEqual(data.get('password'), 'X^942Jjfdsa')
76

    
77
        response = self.client.get('/vmapi/server-params/%s' % uuid)
78
        self.assertEqual(response.status_code, 200)
79
        response = self.client.get('/vmapi/server-params/%s' % uuid)
80
        self.assertEqual(response.status_code, 404)
81

    
82

    
83
    def test_params_view(self):
84
        pass
85