root / snf-cyclades-app / synnefo / db / tests.py @ 19b2c29d
History | View | Annotate | Download (10.7 kB)
1 | c8908e51 | Christos Stavrakakis | # Copyright 2012 GRNET S.A. All rights reserved.
|
---|---|---|---|
2 | 7bd50624 | Vassilios Karakoidas | #
|
3 | ace4bd5d | Georgios Gousios | # Redistribution and use in source and binary forms, with or without
|
4 | ace4bd5d | Georgios Gousios | # modification, are permitted provided that the following conditions
|
5 | ace4bd5d | Georgios Gousios | # are met:
|
6 | 7bd50624 | Vassilios Karakoidas | #
|
7 | ace4bd5d | Georgios Gousios | # 1. Redistributions of source code must retain the above copyright
|
8 | ace4bd5d | Georgios Gousios | # notice, this list of conditions and the following disclaimer.
|
9 | 7bd50624 | Vassilios Karakoidas | #
|
10 | ace4bd5d | Georgios Gousios | # 2. Redistributions in binary form must reproduce the above copyright
|
11 | ace4bd5d | Georgios Gousios | # notice, this list of conditions and the following disclaimer in the
|
12 | ace4bd5d | Georgios Gousios | # documentation and/or other materials provided with the distribution.
|
13 | d8e682ed | Vassilios Karakoidas | #
|
14 | ace4bd5d | Georgios Gousios | # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
15 | ace4bd5d | Georgios Gousios | # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
16 | ace4bd5d | Georgios Gousios | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
17 | ace4bd5d | Georgios Gousios | # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
18 | ace4bd5d | Georgios Gousios | # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
19 | ace4bd5d | Georgios Gousios | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
20 | ace4bd5d | Georgios Gousios | # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
21 | ace4bd5d | Georgios Gousios | # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
22 | ace4bd5d | Georgios Gousios | # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
23 | ace4bd5d | Georgios Gousios | # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
24 | ace4bd5d | Georgios Gousios | # SUCH DAMAGE.
|
25 | ace4bd5d | Georgios Gousios | #
|
26 | ace4bd5d | Georgios Gousios | # The views and conclusions contained in the software and documentation are
|
27 | ace4bd5d | Georgios Gousios | # those of the authors and should not be interpreted as representing official
|
28 | ace4bd5d | Georgios Gousios | # policies, either expressed or implied, of GRNET S.A.
|
29 | ace4bd5d | Georgios Gousios | |
30 | ace4bd5d | Georgios Gousios | # Unit Tests for db
|
31 | ace4bd5d | Georgios Gousios | #
|
32 | ace4bd5d | Georgios Gousios | # Provides automated tests for db module
|
33 | d8e682ed | Vassilios Karakoidas | |
34 | d39ea372 | Vassilios Karakoidas | from django.test import TestCase |
35 | d8e682ed | Vassilios Karakoidas | |
36 | 0c09b1c0 | Christos Stavrakakis | from django.conf import settings |
37 | 35e2f2d4 | Christos Stavrakakis | # Import pool tests
|
38 | 35e2f2d4 | Christos Stavrakakis | from synnefo.db.pools.tests import * |
39 | 35e2f2d4 | Christos Stavrakakis | |
40 | c8908e51 | Christos Stavrakakis | from synnefo.db.models import * |
41 | c8908e51 | Christos Stavrakakis | from synnefo.db import models_factory as mfact |
42 | bb8fb9af | Christos Stavrakakis | from synnefo.db.pools import IPPool, EmptyPool |
43 | c8908e51 | Christos Stavrakakis | |
44 | c8908e51 | Christos Stavrakakis | from django.db import IntegrityError |
45 | c8908e51 | Christos Stavrakakis | from django.core.exceptions import MultipleObjectsReturned |
46 | bd87213f | Christos Stavrakakis | from snf_django.utils.testing import override_settings |
47 | c8908e51 | Christos Stavrakakis | from mock import patch |
48 | c8908e51 | Christos Stavrakakis | |
49 | c8908e51 | Christos Stavrakakis | |
50 | c8908e51 | Christos Stavrakakis | class FlavorTest(TestCase): |
51 | c8908e51 | Christos Stavrakakis | def test_flavor_name(self): |
52 | c8908e51 | Christos Stavrakakis | """Test a flavor object name method."""
|
53 | b65a3b04 | Christos Stavrakakis | flavor = mfact.FlavorFactory(cpu=1, ram=1024, disk=40, |
54 | b65a3b04 | Christos Stavrakakis | disk_template="temp")
|
55 | 3b2984dc | Christos Stavrakakis | self.assertEqual(
|
56 | 3b2984dc | Christos Stavrakakis | flavor.name, "C1R1024D40temp", "flavor.name is not" |
57 | 3b2984dc | Christos Stavrakakis | " generated correctly. Name is %s instead of C1R1024D40temp" %
|
58 | 3b2984dc | Christos Stavrakakis | flavor.name) |
59 | c8908e51 | Christos Stavrakakis | |
60 | c8908e51 | Christos Stavrakakis | |
61 | c8908e51 | Christos Stavrakakis | class BackendTest(TestCase): |
62 | c8908e51 | Christos Stavrakakis | def setUp(self): |
63 | c8908e51 | Christos Stavrakakis | self.backend = mfact.BackendFactory()
|
64 | c8908e51 | Christos Stavrakakis | |
65 | c8908e51 | Christos Stavrakakis | @patch("synnefo.db.models.get_rapi_client") |
66 | c8908e51 | Christos Stavrakakis | def test_get_client(self, client): |
67 | c8908e51 | Christos Stavrakakis | id_ = self.backend.id
|
68 | c8908e51 | Christos Stavrakakis | hash_ = self.backend.hash
|
69 | c8908e51 | Christos Stavrakakis | name = self.backend.clustername
|
70 | c8908e51 | Christos Stavrakakis | passwd = self.backend.password
|
71 | c8908e51 | Christos Stavrakakis | user = self.backend.username
|
72 | c8908e51 | Christos Stavrakakis | port = self.backend.port
|
73 | c8908e51 | Christos Stavrakakis | self.backend.get_client()
|
74 | c8908e51 | Christos Stavrakakis | client.assert_called_once_with(id_, hash_, name, port, user, passwd) |
75 | c8908e51 | Christos Stavrakakis | |
76 | c8908e51 | Christos Stavrakakis | def test_save_hash(self): |
77 | c8908e51 | Christos Stavrakakis | """Test that backend hash is generated on credential change"""
|
78 | c8908e51 | Christos Stavrakakis | old_hash = self.backend.hash
|
79 | c8908e51 | Christos Stavrakakis | for field in ['clustername', 'username', 'password', 'port']: |
80 | c8908e51 | Christos Stavrakakis | value = 5181 if field == 'port' else 'foo' |
81 | c8908e51 | Christos Stavrakakis | self.backend.__setattr__(field, value)
|
82 | c8908e51 | Christos Stavrakakis | self.backend.save()
|
83 | c8908e51 | Christos Stavrakakis | self.assertNotEqual(old_hash, self.backend.hash) |
84 | c8908e51 | Christos Stavrakakis | old_hash = self.backend.hash
|
85 | c8908e51 | Christos Stavrakakis | |
86 | c8908e51 | Christos Stavrakakis | def test_unique_index(self): |
87 | c8908e51 | Christos Stavrakakis | """Test that each backend gets a unique index"""
|
88 | c8908e51 | Christos Stavrakakis | backends = [self.backend]
|
89 | c8908e51 | Christos Stavrakakis | for i in xrange(0, 14): |
90 | c8908e51 | Christos Stavrakakis | backends.append(mfact.BackendFactory()) |
91 | c8908e51 | Christos Stavrakakis | indexes = map(lambda x: x.index, backends) |
92 | c8908e51 | Christos Stavrakakis | self.assertEqual(len(indexes), len(set(indexes))) |
93 | c8908e51 | Christos Stavrakakis | |
94 | c8908e51 | Christos Stavrakakis | def test_backend_number(self): |
95 | c8908e51 | Christos Stavrakakis | """Test that no more than 16 backends are created"""
|
96 | c8908e51 | Christos Stavrakakis | for i in xrange(0, 14): |
97 | c8908e51 | Christos Stavrakakis | mfact.BackendFactory() |
98 | c8908e51 | Christos Stavrakakis | self.assertRaises(Exception, mfact.BackendFactory, ()) |
99 | c8908e51 | Christos Stavrakakis | |
100 | c8908e51 | Christos Stavrakakis | def test_delete_active_backend(self): |
101 | c8908e51 | Christos Stavrakakis | """Test that a backend with non-deleted VMS is not deleted"""
|
102 | 26515bc1 | Christos Stavrakakis | backend = mfact.BackendFactory() |
103 | 26515bc1 | Christos Stavrakakis | vm = mfact.VirtualMachineFactory(backend=backend) |
104 | 26515bc1 | Christos Stavrakakis | self.assertRaises(IntegrityError, backend.delete, ())
|
105 | 26515bc1 | Christos Stavrakakis | vm.backend = None
|
106 | 26515bc1 | Christos Stavrakakis | vm.save() |
107 | 26515bc1 | Christos Stavrakakis | backend.delete() |
108 | c8908e51 | Christos Stavrakakis | |
109 | c8908e51 | Christos Stavrakakis | def test_password_encryption(self): |
110 | c8908e51 | Christos Stavrakakis | password_hash = self.backend.password
|
111 | c8908e51 | Christos Stavrakakis | self.backend.password = '123' |
112 | c8908e51 | Christos Stavrakakis | self.assertNotEqual(self.backend.password_hash, '123') |
113 | c8908e51 | Christos Stavrakakis | self.assertNotEqual(self.backend.password_hash, password_hash) |
114 | c8908e51 | Christos Stavrakakis | self.assertEqual(self.backend.password, '123') |
115 | c8908e51 | Christos Stavrakakis | |
116 | bd87213f | Christos Stavrakakis | def test_hypervisor(self): |
117 | bd87213f | Christos Stavrakakis | from synnefo.db.models import snf_settings |
118 | bd87213f | Christos Stavrakakis | kvm_backend = mfact.BackendFactory(hypervisor="kvm")
|
119 | bd87213f | Christos Stavrakakis | xen_pvm_backend = mfact.BackendFactory(hypervisor="xen-pvm")
|
120 | bd87213f | Christos Stavrakakis | xen_hvm_backend = mfact.BackendFactory(hypervisor="xen-hvm")
|
121 | bd87213f | Christos Stavrakakis | with override_settings(snf_settings, GANETI_USE_HOTPLUG=True): |
122 | bd87213f | Christos Stavrakakis | self.assertTrue(kvm_backend.use_hotplug())
|
123 | bd87213f | Christos Stavrakakis | self.assertFalse(xen_pvm_backend.use_hotplug())
|
124 | bd87213f | Christos Stavrakakis | self.assertFalse(xen_hvm_backend.use_hotplug())
|
125 | bd87213f | Christos Stavrakakis | with override_settings(snf_settings, GANETI_USE_HOTPLUG=False): |
126 | bd87213f | Christos Stavrakakis | self.assertFalse(kvm_backend.use_hotplug())
|
127 | bd87213f | Christos Stavrakakis | self.assertFalse(xen_pvm_backend.use_hotplug())
|
128 | bd87213f | Christos Stavrakakis | self.assertFalse(xen_hvm_backend.use_hotplug())
|
129 | bd87213f | Christos Stavrakakis | kwargs = {"os": "snf-image+default", |
130 | bd87213f | Christos Stavrakakis | "hvparams": {"kvm": {"foo1": "mpaz1"}, |
131 | bd87213f | Christos Stavrakakis | "xen-pvm": {"foo2": "mpaz2"}, |
132 | bd87213f | Christos Stavrakakis | "xen-hvm": {"foo3": "mpaz3"}}} |
133 | bd87213f | Christos Stavrakakis | with override_settings(snf_settings,
|
134 | bd87213f | Christos Stavrakakis | GANETI_CREATEINSTANCE_KWARGS=kwargs): |
135 | bd87213f | Christos Stavrakakis | self.assertEqual(kvm_backend.get_create_params(),
|
136 | 8c7c9813 | Christos Stavrakakis | {"os": "snf-image+default", |
137 | 8c7c9813 | Christos Stavrakakis | "hvparams": {"foo1": "mpaz1"}}) |
138 | bd87213f | Christos Stavrakakis | self.assertEqual(xen_pvm_backend.get_create_params(),
|
139 | 8c7c9813 | Christos Stavrakakis | {"os": "snf-image+default", |
140 | 8c7c9813 | Christos Stavrakakis | "hvparams": {"foo2": "mpaz2"}}) |
141 | bd87213f | Christos Stavrakakis | self.assertEqual(xen_hvm_backend.get_create_params(),
|
142 | 8c7c9813 | Christos Stavrakakis | {"os": "snf-image+default", |
143 | 8c7c9813 | Christos Stavrakakis | "hvparams": {"foo3": "mpaz3"}}) |
144 | bd87213f | Christos Stavrakakis | with override_settings(snf_settings, GANETI_CREATEINSTANCE_KWARGS={}):
|
145 | bd87213f | Christos Stavrakakis | self.assertEqual(kvm_backend.get_create_params(), {"hvparams": {}}) |
146 | bd87213f | Christos Stavrakakis | |
147 | c8908e51 | Christos Stavrakakis | |
148 | c8908e51 | Christos Stavrakakis | class VirtualMachineTest(TestCase): |
149 | c8908e51 | Christos Stavrakakis | def setUp(self): |
150 | c8908e51 | Christos Stavrakakis | self.vm = mfact.VirtualMachineFactory()
|
151 | c8908e51 | Christos Stavrakakis | |
152 | c8908e51 | Christos Stavrakakis | @patch("synnefo.db.models.get_rapi_client") |
153 | c8908e51 | Christos Stavrakakis | def test_get_client(self, client): |
154 | c8908e51 | Christos Stavrakakis | backend = self.vm.backend
|
155 | c8908e51 | Christos Stavrakakis | id_ = backend.id |
156 | c8908e51 | Christos Stavrakakis | hash_ = backend.hash |
157 | c8908e51 | Christos Stavrakakis | name = backend.clustername |
158 | c8908e51 | Christos Stavrakakis | passwd = backend.password |
159 | c8908e51 | Christos Stavrakakis | user = backend.username |
160 | c8908e51 | Christos Stavrakakis | port = backend.port |
161 | c8908e51 | Christos Stavrakakis | self.vm.get_client()
|
162 | c8908e51 | Christos Stavrakakis | client.assert_called_once_with(id_, hash_, name, port, user, passwd) |
163 | c8908e51 | Christos Stavrakakis | |
164 | c8908e51 | Christos Stavrakakis | def test_create(self): |
165 | 1cfd5d4d | Christos Stavrakakis | vm = VirtualMachine() |
166 | c8908e51 | Christos Stavrakakis | self.assertEqual(vm.action, None) |
167 | c8908e51 | Christos Stavrakakis | self.assertEqual(vm.backendjobid, None) |
168 | c8908e51 | Christos Stavrakakis | self.assertEqual(vm.backendjobstatus, None) |
169 | c8908e51 | Christos Stavrakakis | self.assertEqual(vm.backendopcode, None) |
170 | c8908e51 | Christos Stavrakakis | self.assertEqual(vm.backendlogmsg, None) |
171 | c8908e51 | Christos Stavrakakis | self.assertEqual(vm.operstate, 'BUILD') |
172 | c8908e51 | Christos Stavrakakis | |
173 | c8908e51 | Christos Stavrakakis | |
174 | c8908e51 | Christos Stavrakakis | class NetworkTest(TestCase): |
175 | c8908e51 | Christos Stavrakakis | def setUp(self): |
176 | 8c7c9813 | Christos Stavrakakis | self.net = mfact.NetworkWithSubnetFactory()
|
177 | c8908e51 | Christos Stavrakakis | |
178 | c8908e51 | Christos Stavrakakis | def test_tags(self): |
179 | c8908e51 | Christos Stavrakakis | net1 = mfact.NetworkFactory(flavor='IP_LESS_ROUTED')
|
180 | c8908e51 | Christos Stavrakakis | self.assertEqual(net1.backend_tag, ['ip-less-routed']) |
181 | c8908e51 | Christos Stavrakakis | net1 = mfact.NetworkFactory(flavor='CUSTOM')
|
182 | c8908e51 | Christos Stavrakakis | self.assertEqual(net1.backend_tag, [])
|
183 | c8908e51 | Christos Stavrakakis | |
184 | c8908e51 | Christos Stavrakakis | def test_create_backend_network(self): |
185 | c8908e51 | Christos Stavrakakis | len_backends = len(Backend.objects.all())
|
186 | c8908e51 | Christos Stavrakakis | back = mfact.BackendFactory() |
187 | c8908e51 | Christos Stavrakakis | self.net.create_backend_network(backend=back)
|
188 | c8908e51 | Christos Stavrakakis | BackendNetwork.objects.get(network=self.net, backend=back)
|
189 | c8908e51 | Christos Stavrakakis | back1 = mfact.BackendFactory() |
190 | c8908e51 | Christos Stavrakakis | back2 = mfact.BackendFactory() |
191 | c8908e51 | Christos Stavrakakis | self.net.create_backend_network()
|
192 | c8908e51 | Christos Stavrakakis | BackendNetwork.objects.get(network=self.net, backend=back1)
|
193 | c8908e51 | Christos Stavrakakis | BackendNetwork.objects.get(network=self.net, backend=back2)
|
194 | c8908e51 | Christos Stavrakakis | self.assertEqual(len(BackendNetwork.objects.filter(network=self.net)), |
195 | c8908e51 | Christos Stavrakakis | len_backends + 3)
|
196 | c8908e51 | Christos Stavrakakis | |
197 | c8908e51 | Christos Stavrakakis | def test_pool(self): |
198 | 3b2984dc | Christos Stavrakakis | pool = self.net.get_ip_pools()[0] |
199 | c8908e51 | Christos Stavrakakis | pool.network = self.net
|
200 | c8908e51 | Christos Stavrakakis | self.assertTrue(isinstance(pool, IPPool)) |
201 | c8908e51 | Christos Stavrakakis | |
202 | c8908e51 | Christos Stavrakakis | def test_reserve_ip(self): |
203 | 8c7c9813 | Christos Stavrakakis | net1 = mfact.NetworkWithSubnetFactory(subnet__cidr='192.168.2.0/24')
|
204 | 3b2984dc | Christos Stavrakakis | pool = net1.get_ip_pools()[0]
|
205 | 3b2984dc | Christos Stavrakakis | self.assertTrue(pool.is_available('192.168.2.12')) |
206 | c8908e51 | Christos Stavrakakis | net1.reserve_address('192.168.2.12')
|
207 | 3b2984dc | Christos Stavrakakis | pool = net1.get_ip_pools()[0]
|
208 | c8908e51 | Christos Stavrakakis | self.assertFalse(pool.is_available('192.168.2.12')) |
209 | c8908e51 | Christos Stavrakakis | net1.release_address('192.168.2.12')
|
210 | 3b2984dc | Christos Stavrakakis | pool = net1.get_ip_pools()[0]
|
211 | c8908e51 | Christos Stavrakakis | self.assertTrue(pool.is_available('192.168.2.12')) |
212 | c8908e51 | Christos Stavrakakis | |
213 | c8908e51 | Christos Stavrakakis | |
214 | c8908e51 | Christos Stavrakakis | class BackendNetworkTest(TestCase): |
215 | c8908e51 | Christos Stavrakakis | def test_mac_prefix(self): |
216 | c8908e51 | Christos Stavrakakis | network = mfact.NetworkFactory(mac_prefix='aa:bb:c')
|
217 | c8908e51 | Christos Stavrakakis | backend = mfact.BackendFactory() |
218 | c8908e51 | Christos Stavrakakis | bnet = mfact.BackendNetworkFactory(network=network, backend=backend) |
219 | c8908e51 | Christos Stavrakakis | self.assertTrue(backend.index < 10) |
220 | c8908e51 | Christos Stavrakakis | self.assertEqual(bnet.mac_prefix, 'aa:bb:c%s' % backend.index) |
221 | c8908e51 | Christos Stavrakakis | |
222 | b66e4833 | Christos Stavrakakis | def test_invalid_mac(self): |
223 | b66e4833 | Christos Stavrakakis | network = mfact.NetworkFactory(mac_prefix='zz:bb:c')
|
224 | b66e4833 | Christos Stavrakakis | backend = mfact.BackendFactory() |
225 | b66e4833 | Christos Stavrakakis | self.assertRaises(utils.InvalidMacAddress,
|
226 | 8c7c9813 | Christos Stavrakakis | mfact.BackendNetworkFactory, |
227 | 8c7c9813 | Christos Stavrakakis | network=network, backend=backend) |
228 | b66e4833 | Christos Stavrakakis | |
229 | c8908e51 | Christos Stavrakakis | |
230 | c8908e51 | Christos Stavrakakis | class BridgePoolTest(TestCase): |
231 | c8908e51 | Christos Stavrakakis | def test_no_pool(self): |
232 | bb8fb9af | Christos Stavrakakis | self.assertRaises(EmptyPool,
|
233 | c8908e51 | Christos Stavrakakis | BridgePoolTable.get_pool) |
234 | c8908e51 | Christos Stavrakakis | |
235 | c8908e51 | Christos Stavrakakis | def test_two_pools(self): |
236 | c8908e51 | Christos Stavrakakis | mfact.BridgePoolTableFactory() |
237 | c8908e51 | Christos Stavrakakis | mfact.BridgePoolTableFactory() |
238 | c8908e51 | Christos Stavrakakis | self.assertRaises(MultipleObjectsReturned, BridgePoolTable.get_pool)
|
239 | e8fa4283 | Vassilios Karakoidas | |
240 | 452d2391 | Vassilios Karakoidas | |
241 | c8908e51 | Christos Stavrakakis | class AESTest(TestCase): |
242 | c8908e51 | Christos Stavrakakis | def test_encrypt_decrtypt(self): |
243 | c8908e51 | Christos Stavrakakis | from synnefo.db import aes_encrypt as aes |
244 | c8908e51 | Christos Stavrakakis | old = 'bar'
|
245 | c8908e51 | Christos Stavrakakis | new = aes.decrypt_db_charfield(aes.encrypt_db_charfield(old)) |
246 | c8908e51 | Christos Stavrakakis | self.assertEqual(old, new)
|
247 | 8bda0440 | Vassilios Karakoidas | |
248 | c8908e51 | Christos Stavrakakis | def test_password_change(self): |
249 | c8908e51 | Christos Stavrakakis | from synnefo.db import aes_encrypt as aes |
250 | c8908e51 | Christos Stavrakakis | old_pass = aes.SECRET_ENCRYPTION_KEY |
251 | c8908e51 | Christos Stavrakakis | old = 'bar'
|
252 | c8908e51 | Christos Stavrakakis | encrypted = aes.encrypt_db_charfield(old) |
253 | c8908e51 | Christos Stavrakakis | aes.SECRET_ENCRYPTION_KEY = 'foo2'
|
254 | c8908e51 | Christos Stavrakakis | self.assertRaises(aes.CorruptedPassword, aes.decrypt_db_charfield,
|
255 | c8908e51 | Christos Stavrakakis | encrypted) |
256 | c8908e51 | Christos Stavrakakis | aes.SECRET_ENCRYPTION_KEY = old_pass |
257 | c8908e51 | Christos Stavrakakis | new = aes.decrypt_db_charfield(encrypted) |
258 | c8908e51 | Christos Stavrakakis | self.assertEqual(old, new)
|
259 | 8bda0440 | Vassilios Karakoidas | |
260 | c8908e51 | Christos Stavrakakis | def test_big_secret(self): |
261 | c8908e51 | Christos Stavrakakis | from synnefo.db import aes_encrypt as aes |
262 | c8908e51 | Christos Stavrakakis | old = aes.SECRET_ENCRYPTION_KEY |
263 | c8908e51 | Christos Stavrakakis | aes.SECRET_ENCRYPTION_KEY = \ |
264 | c8908e51 | Christos Stavrakakis | '91490231234814234812348913289481294812398421893489'
|
265 | c8908e51 | Christos Stavrakakis | self.assertRaises(ValueError, aes.encrypt_db_charfield, 'la') |
266 | c8908e51 | Christos Stavrakakis | aes.SECRET_ENCRYPTION_KEY = old |