From 8ebb5cad6ab0034b9acfec2bf2a125c966a3fadc Mon Sep 17 00:00:00 2001
From: Jan Dittberner <jan@dittberner.info>
Date: Sun, 11 Oct 2015 15:30:23 +0200
Subject: [PATCH] bump dependency versions, fix tests and deprecation warnings

---
 gnuviechadmin/managemails/admin.py |  2 +-
 gnuviechadmin/osusers/models.py    |  5 ++++-
 requirements/base.txt              | 30 +++++++++++++++---------------
 requirements/local.txt             | 11 +++++------
 requirements/test.txt              |  4 ++--
 5 files changed, 27 insertions(+), 25 deletions(-)

diff --git a/gnuviechadmin/managemails/admin.py b/gnuviechadmin/managemails/admin.py
index f059fd4..da12f85 100644
--- a/gnuviechadmin/managemails/admin.py
+++ b/gnuviechadmin/managemails/admin.py
@@ -1,7 +1,7 @@
 from django.utils.html import format_html
 from django.contrib import admin
 from django import forms
-from django.forms.util import flatatt
+from django.forms.utils import flatatt
 from django.utils.translation import ugettext as _
 
 from .models import (
diff --git a/gnuviechadmin/osusers/models.py b/gnuviechadmin/osusers/models.py
index 28e93a7..1122ed6 100644
--- a/gnuviechadmin/osusers/models.py
+++ b/gnuviechadmin/osusers/models.py
@@ -533,7 +533,10 @@ class SshPublicKeyManager(models.Manager):
                 raise ValueError('invalid SSH public key')
             data = parts[1]
             comment = len(parts) == 3 and parts[2] or ""
-        keybytes = base64.b64decode(data)
+        try:
+            keybytes = base64.b64decode(data)
+        except TypeError:
+            raise ValueError('invalid SSH public key')
         parts = keybytes.split(b'\x00' * 3)
         alglength = six.byte2int(parts[1])
         algname = parts[1][1:1+alglength]
diff --git a/requirements/base.txt b/requirements/base.txt
index 74be894..b15e7da 100644
--- a/requirements/base.txt
+++ b/requirements/base.txt
@@ -1,18 +1,18 @@
-Django==1.7.4
-bpython==0.13.1
-django-braces==1.4.0
-django-model-utils==2.2
-django-crispy-forms==1.4.0
+Django==1.8.5
+bpython==0.14.2
+django-braces==1.8.1
+django-model-utils==2.3.1
+django-crispy-forms==1.5.2
 logutils==0.3.3
-psycopg2==2.5.4
-passlib==1.6.2
-celery==3.1.17
-billiard==3.3.0.19
-kombu==3.0.24
-pytz==2014.10
-pyaml==14.12.10
-django-allauth==0.19.0
-oauthlib==0.7.2
+psycopg2==2.6.1
+passlib==1.6.5
+celery==3.1.18
+billiard==3.3.0.20
+kombu==3.0.27
+pytz==2015.6
+pyaml==15.8.2
+django-allauth==0.21.0
+oauthlib==1.0.3
 python-openid==2.2.5
 requests==2.5.1
-requests-oauthlib==0.4.2
+requests-oauthlib==0.5.0
diff --git a/requirements/local.txt b/requirements/local.txt
index 97a9db7..e2bf154 100644
--- a/requirements/local.txt
+++ b/requirements/local.txt
@@ -1,8 +1,7 @@
 # Local development dependencies go here
--r base.txt
-coverage==3.7.1
-mock==1.0.1
-django-debug-toolbar==1.2.2
-sqlparse==0.1.14
-Sphinx==1.2.3
+-r test.txt
+django-debug-toolbar==1.4
+sqlparse==0.1.16
+Sphinx==1.3.1
+snowballstemmer==1.2.0
 releases==0.7.0
diff --git a/requirements/test.txt b/requirements/test.txt
index 8bf1098..96baf85 100644
--- a/requirements/test.txt
+++ b/requirements/test.txt
@@ -1,4 +1,4 @@
 # Test dependencies go here.
 -r base.txt
-coverage==3.7.1
-mock==1.0.1
+coverage==4.0
+mock==1.3.0