From: Patrick Samson Date: Wed, 12 Dec 2012 10:09:00 +0000 (+0100) Subject: Fix issue #21 X-Git-Tag: 2.1.1 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=5978556a2bbc857487448d258eab05ef5490b900;p=django-postman.git Fix issue #21 --- diff --git a/docs/conf.py b/docs/conf.py index 68b4f5b..e94905b 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -47,7 +47,7 @@ copyright = u'2010, Patrick Samson' # The short X.Y version. version = '2.1' # The full version, including alpha/beta/rc tags. -release = '2.1.0' +release = '2.1.1' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/postman/__init__.py b/postman/__init__.py index 851b10a..7fb2f66 100644 --- a/postman/__init__.py +++ b/postman/__init__.py @@ -4,7 +4,7 @@ A messaging application for Django from __future__ import unicode_literals # following PEP 386: N.N[.N]+[{a|b|c|rc}N[.N]+][.postN][.devN] -VERSION = (2, 1, 0) +VERSION = (2, 1, 1) PREREL = () POST = 0 DEV = 0 diff --git a/postman/fields.py b/postman/fields.py index 554db64..6099ef7 100644 --- a/postman/fields.py +++ b/postman/fields.py @@ -107,9 +107,9 @@ autocompleter_app = {} if app_name in settings.INSTALLED_APPS and arg_default: autocompleter_app['is_active'] = True autocompleter_app['name'] = app_name - autocompleter_app['version'] = getattr(__import__(app_name, globals(), locals(), ['__version__']), '__version__', None) + autocompleter_app['version'] = getattr(__import__(app_name, globals(), locals(), [str('__version__')]), '__version__', None) # does something like "from ajax_select.fields import AutoCompleteField" - auto_complete_field = getattr(__import__(app_name + '.fields', globals(), locals(), [field_name]), field_name) + auto_complete_field = getattr(__import__(app_name + '.fields', globals(), locals(), [str(field_name)]), field_name) class CommaSeparatedUserField(BasicCommaSeparatedUserField, auto_complete_field): def __init__(self, *args, **kwargs): diff --git a/postman/tests.py b/postman/tests.py index 22a38d9..3f813da 100644 --- a/postman/tests.py +++ b/postman/tests.py @@ -61,7 +61,7 @@ except ImportError: now = datetime.now from postman.api import pm_broadcast, pm_write -from postman.fields import CommaSeparatedUserField +# because of reload()'s, do "from postman.fields import CommaSeparatedUserField" just before needs # because of reload()'s, do "from postman.forms import xxForm" just before needs from postman.models import ORDER_BY_KEY, ORDER_BY_MAPPER, Message, PendingMessage,\ STATUS_PENDING, STATUS_ACCEPTED, STATUS_REJECTED,\ @@ -76,7 +76,7 @@ class GenericTest(TestCase): Usual generic tests. """ def test_version(self): - self.assertEqual(sys.modules['postman'].__version__, "2.1.0") + self.assertEqual(sys.modules['postman'].__version__, "2.1.1") class BaseTest(TestCase): @@ -182,6 +182,7 @@ class BaseTest(TestCase): clear_url_caches() try: reload(sys.modules['postman.utils']) + reload(sys.modules['postman.fields']) reload(sys.modules['postman.forms']) reload(sys.modules['postman.views']) reload(sys.modules['postman.urls']) @@ -361,6 +362,7 @@ class ViewTest(BaseTest): def test_write_post_multirecipient(self): "Test number of recipients constraint." + from postman.fields import CommaSeparatedUserField url = reverse('postman_write') data = { 'email': 'a@b.com', 'subject': 's', 'body': 'b', @@ -524,6 +526,7 @@ class ViewTest(BaseTest): def test_reply_post_copies(self): "Test number of recipients constraint." + from postman.fields import CommaSeparatedUserField pk = self.c21().pk url = reverse('postman_reply', args=[pk]) data = {'subject': 's', 'body': 'b', 'recipients': self.user3.get_username()} @@ -816,6 +819,7 @@ class FieldTest(BaseTest): """ def test_label(self): "Test the plural/singular of the label." + from postman.fields import CommaSeparatedUserField f = CommaSeparatedUserField(label=('plural','singular')) self.assertEqual(f.label, 'plural') f.set_max(1) @@ -833,6 +837,7 @@ class FieldTest(BaseTest): def test_to_python(self): "Test the conversion to a python list." + from postman.fields import CommaSeparatedUserField f = CommaSeparatedUserField() self.assertEqual(f.to_python(''), []) self.assertEqual(f.to_python('foo'), ['foo']) @@ -844,6 +849,7 @@ class FieldTest(BaseTest): def test_clean(self): "Test the 'clean' validation." + from postman.fields import CommaSeparatedUserField f = CommaSeparatedUserField(required=False) self.assertEqual(f.clean(''), []) self.assertEqual(f.clean('foo'), [self.user1]) @@ -857,6 +863,7 @@ class FieldTest(BaseTest): def test_user_filter(self): "Test the 'user_filter' argument." + from postman.fields import CommaSeparatedUserField f = CommaSeparatedUserField(user_filter=lambda u: None) self.assertEqual(frozenset(f.clean('foo, bar')), frozenset([self.user1, self.user2])) # no reason @@ -868,6 +875,7 @@ class FieldTest(BaseTest): def test_min(self): "Test the 'min' argument." + from postman.fields import CommaSeparatedUserField f = CommaSeparatedUserField(required=False, min=1) self.assertEqual(f.clean(''), []) @@ -880,6 +888,7 @@ class FieldTest(BaseTest): def test_max(self): "Test the 'max' argument." + from postman.fields import CommaSeparatedUserField f = CommaSeparatedUserField(max=1) self.assertEqual(f.clean('foo'), [self.user1]) self.assertRaises(ValidationError, f.clean, 'foo, bar') diff --git a/postman/utils.py b/postman/utils.py index 88074f8..f7d5d7c 100644 --- a/postman/utils.py +++ b/postman/utils.py @@ -23,7 +23,7 @@ else: # but if not installed or not desired, fallback to django.core.mail name = getattr(settings, 'POSTMAN_MAILER_APP', 'mailer') if name and name in settings.INSTALLED_APPS: - send_mail = __import__(name, globals(), locals(), ['send_mail']).send_mail + send_mail = __import__(name, globals(), locals(), [str('send_mail')]).send_mail else: from django.core.mail import send_mail