mirror of
https://github.com/jazzband/django-constance.git
synced 2026-05-24 07:03:47 +00:00
tests
This commit is contained in:
parent
f616fd82c7
commit
c36bf65ab1
11 changed files with 120 additions and 31 deletions
|
|
@ -23,7 +23,10 @@ class Config(object):
|
|||
super(Config, self).__setattr__('_rd', redis.Redis(**settings.CONSTANCE_CONNECTION))
|
||||
|
||||
def __getattr__(self, key):
|
||||
default, help_text = settings.CONSTANCE_CONFIG[key]
|
||||
try:
|
||||
default, help_text = settings.CONSTANCE_CONFIG[key]
|
||||
except KeyError, e:
|
||||
raise AttributeError(key)
|
||||
result = self._rd.get("%s%s" % (self._prefix, key))
|
||||
if result is None:
|
||||
result = default
|
||||
|
|
@ -32,6 +35,8 @@ class Config(object):
|
|||
return loads(result)
|
||||
|
||||
def __setattr__(self, key, value):
|
||||
if key not in settings.CONSTANCE_CONFIG:
|
||||
raise AttributeError(key)
|
||||
self._rd.set("%s%s" % (self._prefix, key), dumps(value))
|
||||
|
||||
def __dir__(self):
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
from constance.tests.test_config import *
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
from django.test import TestCase
|
||||
from django.conf import settings
|
||||
|
||||
from constance import config
|
||||
|
||||
|
||||
|
||||
class TestStorage(TestCase):
|
||||
|
||||
def test_store(self):
|
||||
# read defaults
|
||||
self.assertEquals(config.INT_VALUE, 1)
|
||||
self.assertEquals(config.BOOL_VALUE, True)
|
||||
self.assertEquals(config.STRING_VALUE, 'Hello world')
|
||||
|
||||
config.INT_VALUE = 100
|
||||
config.BOOL_VALUE = False
|
||||
|
||||
self.assertEquals(config.INT_VALUE, 100)
|
||||
self.assertEquals(config.BOOL_VALUE, False)
|
||||
self.assertEquals(config.STRING_VALUE, 'Hello world')
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
CONSTANCE_CONFIG = {
|
||||
'INT_VALUE': (1, 'some int'),
|
||||
'BOOL_VALUE': (True, 'true or false'),
|
||||
'STRING_VALUE': ('Hello world', 'greetings'),
|
||||
}
|
||||
|
||||
CONSTANCE_CONNECTION_CLASS = 'redis_mockup.Connection'
|
||||
1
tests/__init__.py
Normal file
1
tests/__init__.py
Normal file
|
|
@ -0,0 +1 @@
|
|||
|
||||
0
tests/models.py
Normal file
0
tests/models.py
Normal file
|
|
@ -1,4 +1,3 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
"""Borrowed from Carl Meyer's django-adminfiles."""
|
||||
|
||||
|
|
@ -11,6 +10,7 @@ os.environ['DJANGO_SETTINGS_MODULE'] = 'tests.test_settings'
|
|||
|
||||
from django.test.simple import run_tests
|
||||
|
||||
|
||||
def runtests():
|
||||
failures = run_tests(['tests'], verbosity=1, interactive=True)
|
||||
sys.exit(failures)
|
||||
49
tests/test_config.py.orig
Normal file
49
tests/test_config.py.orig
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
from django.test import TestCase
|
||||
from django.conf import settings
|
||||
|
||||
from constance import config
|
||||
|
||||
|
||||
|
||||
class TestStorage(TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.old_config = getattr(settings, 'CONSTANCE_CONFIG', None)
|
||||
settings.CONSTANCE_CONFIG = {
|
||||
'INT_VALUE': (1, 'some int'),
|
||||
'BOOL_VALUE': (True, 'true or false'),
|
||||
'STRING_VALUE': ('Hello world', 'greetings'),
|
||||
}
|
||||
config._rd.clear()
|
||||
|
||||
def test_store(self):
|
||||
# read defaults
|
||||
self.assertEquals(config.INT_VALUE, 1)
|
||||
self.assertEquals(config.BOOL_VALUE, True)
|
||||
self.assertEquals(config.STRING_VALUE, 'Hello world')
|
||||
|
||||
# set values
|
||||
config.INT_VALUE = 100
|
||||
config.BOOL_VALUE = False
|
||||
|
||||
# read again
|
||||
self.assertEquals(config.INT_VALUE, 100)
|
||||
self.assertEquals(config.BOOL_VALUE, False)
|
||||
self.assertEquals(config.STRING_VALUE, 'Hello world')
|
||||
|
||||
def test_nonexistent(self):
|
||||
try:
|
||||
config.NON_EXISTENT
|
||||
except Exception, e:
|
||||
pass
|
||||
self.assertEquals(type(e), AttributeError)
|
||||
|
||||
try:
|
||||
config.NON_EXISTENT = 1
|
||||
except Exception, e:
|
||||
pass
|
||||
self.assertEquals(type(e), AttributeError)
|
||||
|
||||
def tearDown(self):
|
||||
if self.old_config:
|
||||
settings.CONSTANCE_CONFIG = self.old_config
|
||||
14
tests/test_settings.py
Normal file
14
tests/test_settings.py
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
DATABASES = {
|
||||
'default': {
|
||||
'ENGINE': 'django.db.backends.sqlite3',
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
CONSTANCE_CONNECTION_CLASS = 'tests.redis_mockup.Connection'
|
||||
|
||||
INSTALLED_APPS = (
|
||||
'tests',
|
||||
'constance',
|
||||
)
|
||||
|
||||
49
tests/tests.py
Normal file
49
tests/tests.py
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
from django.test import TestCase
|
||||
from django.conf import settings
|
||||
|
||||
from constance import config
|
||||
|
||||
|
||||
|
||||
class TestStorage(TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.old_config = getattr(settings, 'CONSTANCE_CONFIG', None)
|
||||
settings.CONSTANCE_CONFIG = {
|
||||
'INT_VALUE': (1, 'some int'),
|
||||
'BOOL_VALUE': (True, 'true or false'),
|
||||
'STRING_VALUE': ('Hello world', 'greetings'),
|
||||
}
|
||||
config._rd.clear()
|
||||
|
||||
def test_store(self):
|
||||
# read defaults
|
||||
self.assertEquals(config.INT_VALUE, 1)
|
||||
self.assertEquals(config.BOOL_VALUE, True)
|
||||
self.assertEquals(config.STRING_VALUE, 'Hello world')
|
||||
|
||||
# set values
|
||||
config.INT_VALUE = 100
|
||||
config.BOOL_VALUE = False
|
||||
|
||||
# read again
|
||||
self.assertEquals(config.INT_VALUE, 100)
|
||||
self.assertEquals(config.BOOL_VALUE, False)
|
||||
self.assertEquals(config.STRING_VALUE, 'Hello world')
|
||||
|
||||
def test_nonexistent(self):
|
||||
try:
|
||||
config.NON_EXISTENT
|
||||
except Exception, e:
|
||||
pass
|
||||
self.assertEquals(type(e), AttributeError)
|
||||
|
||||
try:
|
||||
config.NON_EXISTENT = 1
|
||||
except Exception, e:
|
||||
pass
|
||||
self.assertEquals(type(e), AttributeError)
|
||||
|
||||
def tearDown(self):
|
||||
if self.old_config:
|
||||
settings.CONSTANCE_CONFIG = self.old_config
|
||||
Loading…
Reference in a new issue