Răsfoiți Sursa

HUE-308. Upgrade to Django 1.2

- Patch for django-extensions issue #17: omit tests if keyczar is not installed
- From https://github.com/django-extensions/django-extensions/commit/7506644c7dd6b81d93181796577913a166c32675
bc Wong 15 ani în urmă
părinte
comite
6f1d9d0c7a

+ 5 - 2
desktop/core/ext-py/django-extensions-0.5/django_extensions/tests/__init__.py

@@ -1,7 +1,10 @@
 from django.db import models
 from django_extensions.tests.utils import UTILS_TESTS
-from django_extensions.tests.encrypted_fields import EncryptedFieldsTestCase
-from django_extensions.tests.models import Secret
+try:
+    from django_extensions.tests.encrypted_fields import EncryptedFieldsTestCase
+    from django_extensions.tests.models import Secret
+except ImportError:
+    pass
 
 __test__ = {
     'UTILS_TESTS': UTILS_TESTS,

+ 21 - 5
desktop/core/ext-py/django-extensions-0.5/django_extensions/tests/encrypted_fields.py

@@ -1,18 +1,26 @@
 import unittest
-from keyczar import keyczar
+
 
 from django.db import connection
 from django.conf import settings
 from django.core.management import call_command
 from django.db.models import loading
 
-from django_extensions.tests.models import Secret
-from django_extensions.db.fields.encrypted import EncryptedTextField, EncryptedCharField
+# Only perform encrypted fields tests if keyczar is present
+# Resolves http://github.com/django-extensions/django-extensions/issues/#issue/17
+try:
+    from keyczar import keyczar
+    from django_extensions.tests.models import Secret
+    from django_extensions.db.fields.encrypted import EncryptedTextField, EncryptedCharField
+    keyczar_active = True
+except ImportError:
+    keyczar_active = False
 
 class EncryptedFieldsTestCase(unittest.TestCase):
     
     def __init__(self, *args, **kwargs):
-        self.crypt = keyczar.Crypter.Read(settings.ENCRYPTED_FIELD_KEYS_DIR)
+        if keyczar_active:
+            self.crypt = keyczar.Crypter.Read(settings.ENCRYPTED_FIELD_KEYS_DIR)
         
         super(EncryptedFieldsTestCase, self).__init__(*args, **kwargs)
         
@@ -26,6 +34,8 @@ class EncryptedFieldsTestCase(unittest.TestCase):
         settings.INSTALLED_APPS = self.old_installed_apps
     
     def testCharFieldCreate(self):
+        if not keyczar_active:
+            return    
         test_val = "Test Secret"
         secret = Secret.objects.create(name=test_val)
         cursor = connection.cursor()
@@ -36,12 +46,16 @@ class EncryptedFieldsTestCase(unittest.TestCase):
         self.assertEqual(test_val, decrypted_val)
         
     def testCharFieldRead(self):
+        if not keyczar_active:
+            return    
         test_val = "Test Secret"
         secret = Secret.objects.create(name=test_val)
         retrieved_secret = Secret.objects.get(id=secret.id)
         self.assertEqual(test_val, retrieved_secret.name)
         
     def testTextFieldCreate(self):
+        if not keyczar_active:
+            return    
         test_val = "Test Secret"
         secret = Secret.objects.create(text=test_val)
         cursor = connection.cursor()
@@ -52,7 +66,9 @@ class EncryptedFieldsTestCase(unittest.TestCase):
         self.assertEqual(test_val, decrypted_val)
         
     def testTextFieldRead(self):
+        if not keyczar_active:
+            return    
         test_val = "Test Secret"
         secret = Secret.objects.create(text=test_val)
         retrieved_secret = Secret.objects.get(id=secret.id)
-        self.assertEqual(test_val, retrieved_secret.text)
+        self.assertEqual(test_val, retrieved_secret.text)

+ 13 - 2
desktop/core/ext-py/django-extensions-0.5/django_extensions/tests/models.py

@@ -1,7 +1,18 @@
 from django.db import models
 
-from django_extensions.db.fields.encrypted import EncryptedTextField, EncryptedCharField
+try:
+    from django_extensions.db.fields.encrypted import EncryptedTextField, EncryptedCharField
+except ImportError:
+
+    class EncryptedCharField():
+         def __init__(self, **kwargs):
+             pass;
+
+    class EncryptedTextField():
+         def __init__(self, **kwargs):
+             pass;
+
 
 class Secret(models.Model):
     name = EncryptedCharField(blank=True, max_length=255)
-    text = EncryptedTextField(blank=True)
+    text = EncryptedTextField(blank=True)