diff --git a/src/postorius/auth/decorators.py b/src/postorius/auth/decorators.py index 80f39dc..1b4ea88 100644 --- a/src/postorius/auth/decorators.py +++ b/src/postorius/auth/decorators.py @@ -29,7 +29,7 @@ def wrapper(*args, **kwargs): request = args[0] if request.user.is_authenticated(): - print 'already logged in' + print('already logged in') if not request.user.is_authenticated(): if request.META.has_key('HTTP_AUTHORIZATION'): authmeth, auth = request.META['HTTP_AUTHORIZATION'].split(' ', diff --git a/src/postorius/forms.py b/src/postorius/forms.py index 3342077..1d1cece 100644 --- a/src/postorius/forms.py +++ b/src/postorius/forms.py @@ -19,7 +19,7 @@ from django import forms from django.core.validators import validate_email, URLValidator from django.utils.translation import ugettext_lazy as _ -from fieldset_forms import FieldsetForm +from postorius.fieldset_forms import FieldsetForm class DomainNew(FieldsetForm): @@ -560,7 +560,7 @@ class ListSubscriptionPolicyForm(forms.Form): """ List subscription policy settings. - """ + """ subscription_policy = forms.ChoiceField( label=_('Subscription Policy'), choices=SUBSCRIPTION_POLICY_CHOICES, diff --git a/src/postorius/models.py b/src/postorius/models.py index cb79995..bdc7ee8 100644 --- a/src/postorius/models.py +++ b/src/postorius/models.py @@ -37,8 +37,10 @@ from django.template.loader import get_template from mailmanclient import MailmanConnectionError from postorius.utils import get_client -from urllib2 import HTTPError - +try: + from urllib2 import HTTPError +except ImportError: + from urllib.error import HTTPError logger = logging.getLogger(__name__) @@ -84,21 +86,21 @@ return getattr(get_client(), self.resource_name_plural) except AttributeError: raise MailmanApiError - except MailmanConnectionError, e: + except MailmanConnectionError as e: raise MailmanApiError(e) def get(self, **kwargs): try: method = getattr(get_client(), 'get_' + self.resource_name) return method(**kwargs) - except AttributeError, e: + except AttributeError as e: raise MailmanApiError(e) - except HTTPError, e: + except HTTPError as e: if e.code == 404: raise Mailman404Error('Mailman resource could not be found.') else: raise - except MailmanConnectionError, e: + except MailmanConnectionError as e: raise MailmanApiError(e) def get_or_404(self, **kwargs): @@ -108,16 +110,16 @@ return self.get(**kwargs) except Mailman404Error: raise Http404 - except MailmanConnectionError, e: + except MailmanConnectionError as e: raise MailmanApiError(e) def create(self, **kwargs): try: method = getattr(get_client(), 'create_' + self.resource_name) return method(**kwargs) - except AttributeError, e: + except AttributeError as e: raise MailmanApiError(e) - except HTTPError, e: + except HTTPError as e: if e.code == 409: raise MailmanApiError else: @@ -142,7 +144,7 @@ objects = getattr(get_client(), self.resource_name_plural) except AttributeError: raise MailmanApiError - except MailmanConnectionError, e: + except MailmanConnectionError as e: raise MailmanApiError(e) if only_public: public = [] diff --git a/src/postorius/tests/mailman_api_tests/test_archival_options.py b/src/postorius/tests/mailman_api_tests/test_archival_options.py index 5974087..199b93a 100644 --- a/src/postorius/tests/mailman_api_tests/test_archival_options.py +++ b/src/postorius/tests/mailman_api_tests/test_archival_options.py @@ -30,7 +30,10 @@ from django.core.urlresolvers import reverse from django.test import Client, RequestFactory, TestCase from django.test.utils import override_settings -from urllib2 import HTTPError +try: + from urllib2 import HTTPError +except ImportError: + from urllib.error import HTTPError from postorius.forms import ListArchiverForm from postorius.tests import MM_VCR @@ -122,7 +125,7 @@ archivers = self.m_list.archivers # Archiver is enabled by default. self.assertTrue(archivers['mail-archive']) - + with MM_VCR.use_cassette('test_list_archival_options_disable_archiver.yaml'): # Archiver is disabled after it's deactivated in the form. response = self.client.post( @@ -156,7 +159,7 @@ self.assertTrue('foo-archiver' in mock_warning.call_args[0][1]) # messages.success should not have been called. self.assertEqual(mock_success.call_count, 0) - + @mock.patch('django.contrib.messages.success') @mock.patch('django.contrib.messages.warning') def test_success_messages(self, mock_warning, mock_success): diff --git a/src/postorius/tests/mailman_api_tests/test_list_index.py b/src/postorius/tests/mailman_api_tests/test_list_index.py index ce86115..d7d71ac 100644 --- a/src/postorius/tests/mailman_api_tests/test_list_index.py +++ b/src/postorius/tests/mailman_api_tests/test_list_index.py @@ -20,7 +20,10 @@ from django.core.urlresolvers import reverse from django.test import Client, SimpleTestCase from django.test.utils import override_settings -from urllib2 import HTTPError +try: + from urllib2 import HTTPError +except ImportError: + from urllib.error import HTTPError from postorius.utils import get_client from postorius.tests import MM_VCR diff --git a/src/postorius/tests/mailman_api_tests/test_list_members.py b/src/postorius/tests/mailman_api_tests/test_list_members.py index 21884d5..cd90f8d 100644 --- a/src/postorius/tests/mailman_api_tests/test_list_members.py +++ b/src/postorius/tests/mailman_api_tests/test_list_members.py @@ -20,7 +20,10 @@ from django.core.urlresolvers import reverse from django.test import Client, TestCase from django.test.utils import override_settings -from urllib2 import HTTPError +try: + from urllib2 import HTTPError +except ImportError: + from urllib.error import HTTPError from postorius.tests import MM_VCR from postorius.utils import get_client diff --git a/src/postorius/tests/mailman_api_tests/test_list_new.py b/src/postorius/tests/mailman_api_tests/test_list_new.py index 49e6224..2824b78 100644 --- a/src/postorius/tests/mailman_api_tests/test_list_new.py +++ b/src/postorius/tests/mailman_api_tests/test_list_new.py @@ -21,7 +21,10 @@ from django.core.urlresolvers import reverse from django.test import Client, SimpleTestCase from django.test.utils import override_settings -from urllib2 import HTTPError +try: + from urllib2 import HTTPError +except ImportError: + from urllib.error import HTTPError from postorius.utils import get_client from postorius.tests import MM_VCR diff --git a/src/postorius/tests/mailman_api_tests/test_list_summary.py b/src/postorius/tests/mailman_api_tests/test_list_summary.py index dbe927d..acb50d7 100644 --- a/src/postorius/tests/mailman_api_tests/test_list_summary.py +++ b/src/postorius/tests/mailman_api_tests/test_list_summary.py @@ -21,7 +21,10 @@ from django.db import IntegrityError from django.test import Client, SimpleTestCase from django.test.utils import override_settings -from urllib2 import HTTPError +try: + from urllib2 import HTTPError +except ImportError: + from urllib.error import HTTPError from postorius.utils import get_client from postorius.tests import MM_VCR diff --git a/src/postorius/tests/mailman_api_tests/test_models.py b/src/postorius/tests/mailman_api_tests/test_models.py index e3278c6..655ea42 100644 --- a/src/postorius/tests/mailman_api_tests/test_models.py +++ b/src/postorius/tests/mailman_api_tests/test_models.py @@ -21,7 +21,10 @@ from django.db import IntegrityError from django.test import Client, SimpleTestCase from django.test.utils import override_settings -from urllib2 import HTTPError +try: + from urllib2 import HTTPError +except ImportError: + from urllib.error import HTTPError from postorius.utils import get_client from postorius.tests import MM_VCR diff --git a/src/postorius/tests/mailman_api_tests/test_subscriptions.py b/src/postorius/tests/mailman_api_tests/test_subscriptions.py index 5216408..6bdd987 100644 --- a/src/postorius/tests/mailman_api_tests/test_subscriptions.py +++ b/src/postorius/tests/mailman_api_tests/test_subscriptions.py @@ -20,7 +20,10 @@ from django.core.urlresolvers import reverse from django.test import Client, TestCase from django.test.utils import override_settings -from urllib2 import HTTPError +try: + from urllib2 import HTTPError +except ImportError: + from urllib.error import HTTPError from postorius.tests import MM_VCR from postorius.utils import get_client diff --git a/src/postorius/views/list.py b/src/postorius/views/list.py index 9d5d986..304d7cc 100644 --- a/src/postorius/views/list.py +++ b/src/postorius/views/list.py @@ -30,8 +30,10 @@ from django.core.exceptions import ValidationError from django.utils.decorators import method_decorator from django.utils.translation import gettext as _ -from urllib2 import HTTPError - +try: + from urllib2 import HTTPError +except ImportError: + from urllib.error import HTTPError from postorius import utils from postorius.models import (Domain, List, MailmanApiError) from postorius.forms import * @@ -124,7 +126,7 @@ settingsform = UserPreferences(initial=mm_member.preferences) except MailmanApiError: return utils.render_api_error(request) - except HTTPError, e: + except HTTPError as e: messages.error(request, e.msg) return render_to_response( 'postorius/lists/memberoptions.html', @@ -243,7 +245,7 @@ 'Please try again.') except MailmanApiError: return utils.render_api_error(request) - except HTTPError, e: + except HTTPError as e: messages.error(request, e.msg) return redirect('list_summary', self.mailing_list.list_id) @@ -255,7 +257,7 @@ @method_decorator(login_required) def post(self, request, list_id): """ - Subscribes an email address to a mailing list via POST and + Subscribes an email address to a mailing list via POST and redirects to the `list_summary` view. """ try: @@ -285,7 +287,7 @@ 'Please try again.') except MailmanApiError: return utils.render_api_error(request) - except HTTPError, e: + except HTTPError as e: messages.error(request, e.msg) return redirect('list_summary', self.mailing_list.list_id) @@ -304,7 +306,7 @@ email) except MailmanApiError: return utils.render_api_error(request) - except ValueError, e: + except ValueError as e: messages.error(request, e) return redirect('list_summary', self.mailing_list.list_id) @@ -336,7 +338,7 @@ (email, self.mailing_list.fqdn_listname)) except MailmanApiError: return utils.render_api_error(request) - except HTTPError, e: + except HTTPError as e: messages.error(request, e) except ValidationError: messages.error(request, @@ -372,9 +374,7 @@ (email, self.mailing_list.fqdn_listname)) except MailmanApiError: return utils.render_api_error(request) - except HTTPError, e: - messages.error(request, e) - except ValueError, e: + except (HTTPError, ValueError) as e: messages.error(request, e) except ValidationError: messages.error(request, @@ -451,7 +451,7 @@ return redirect("list_summary", list_id=mailing_list.list_id) # TODO catch correct Error class: - except HTTPError, e: + except HTTPError as e: return render_to_response( 'postorius/errors/generic.html', {'error': e}, context_instance=RequestContext(request)) @@ -634,7 +634,7 @@ the_list.accept_message(msg_id) except MailmanApiError: return utils.render_api_error(request) - except HTTPError, e: + except HTTPError as e: messages.error(request, e.msg) return redirect('list_held_messages', the_list.list_id) messages.success(request, 'The message has been accepted.') @@ -650,7 +650,7 @@ the_list.discard_message(msg_id) except MailmanApiError: return utils.render_api_error(request) - except HTTPError, e: + except HTTPError as e: messages.error(request, e.msg) return redirect('list_held_messages', the_list.list_id) messages.success(request, 'The message has been discarded.') @@ -666,7 +666,7 @@ the_list.defer_message(msg_id) except MailmanApiError: return utils.render_api_error(request) - except HTTPError, e: + except HTTPError as e: messages.error(request, e.msg) return redirect('list_held_messages', the_list.list_id) messages.success(request, 'The message has been deferred.') @@ -682,7 +682,7 @@ the_list.reject_message(msg_id) except MailmanApiError: return utils.render_api_error(request) - except HTTPError, e: + except HTTPError as e: messages.error(request, e.msg) return redirect('list_held_messages', the_list.list_id) messages.success(request, 'The message has been rejected.') @@ -771,7 +771,7 @@ try: m_list = List.objects.get_or_404(fqdn_listname=list_id) list_settings = m_list.settings - except MailmanApiError, HTTPError: + except (MailmanApiError, HTTPError): return utils.render_api_error(request) # List settings are grouped an processed in different forms. if form_class: @@ -894,7 +894,7 @@ messages.success(request, 'All members have been unsubscribed from the list.') return redirect('list_members', mlist.list_id) - except Exception, e: + except Exception as e: messages.error(request, e) return render_to_response('postorius/lists/confirm_removeall_subscribers.html', {'list_id': mlist.list_id}, diff --git a/src/postorius/views/settings.py b/src/postorius/views/settings.py index 43e24f2..68bdf07 100644 --- a/src/postorius/views/settings.py +++ b/src/postorius/views/settings.py @@ -35,8 +35,10 @@ from django.template import Context, loader, RequestContext from django.utils.decorators import method_decorator from django.utils.translation import gettext as _ -from urllib2 import HTTPError - +try: + from urllib2 import HTTPError +except ImportError: + from urllib.error import HTTPError from postorius import utils from postorius.models import (Domain, List, Member, MailmanUser, MailmanApiError, Mailman404Error) @@ -78,7 +80,7 @@ domain.save() except MailmanApiError: return utils.render_api_error(request) - except HTTPError, e: + except HTTPError as e: messages.error(request, e) else: messages.success(request, _("New Domain registered")) @@ -101,7 +103,6 @@ _('The domain %s has been deleted.' % domain)) return redirect("domain_index") except HTTPError as e: - print e.__dict__ messages.error(request, _('The domain could not be deleted:' ' %s' % e.msg)) return redirect("domain_index") diff --git a/src/postorius/views/user.py b/src/postorius/views/user.py index 7a34654..876a432 100644 --- a/src/postorius/views/user.py +++ b/src/postorius/views/user.py @@ -31,7 +31,10 @@ from django.utils.decorators import method_decorator from django.utils.translation import gettext as _ from django.views.generic import TemplateView -from urllib2 import HTTPError +try: + from urllib2 import HTTPError +except ImportError: + from urllib.error import HTTPError from postorius import utils from postorius.models import ( @@ -106,7 +109,7 @@ messages.error(request, 'Something went wrong.') except MailmanApiError: return utils.render_api_error(request) - except HTTPError, e: + except HTTPError as e: messages.error(request, e.msg) return redirect("user_address_preferences") @@ -162,7 +165,7 @@ messages.error(request, 'Something went wrong.') except MailmanApiError: return utils.render_api_error(request) - except HTTPError, e: + except HTTPError as e: messages.error(request, e.msg) return redirect("user_subscription_preferences") @@ -227,7 +230,7 @@ class AddressActivationView(TemplateView): """ - Starts the process of adding additional email addresses to a mailman user + Starts the process of adding additional email addresses to a mailman user record. Forms are processes and email notifications are sent accordingly. """ @@ -290,7 +293,7 @@ user.save() except MailmanApiError: return utils.render_api_error(request) - except HTTPError, e: + except HTTPError as e: messages.error(request, e) else: messages.success(request, _("New User registered")) @@ -367,8 +370,8 @@ def address_activation_link(request, activation_key): """ Checks the given activation_key. If it is valid, the saved address will be - added to mailman. Also, the corresponding profile record will be removed. - If the key is not valid, it will be ignored. + added to mailman. Also, the corresponding profile record will be removed. + If the key is not valid, it will be ignored. """ try: profile = AddressConfirmationProfile.objects.get(