From 99b2ccdc503bd013a208c5cef2abba819e3cca8d Mon Sep 17 00:00:00 2001
From: Tanner Prestegard <tanner.prestegard@ligo.org>
Date: Sat, 18 May 2019 13:27:07 -0500
Subject: [PATCH] Fix urlencode imports

Import version of urlencode which is packaged with Django in order
to facilitate Python 2-3 compatibility.
---
 gracedb/api/v1/events/views.py           | 3 +--
 gracedb/api/v1/paginators.py             | 6 ++----
 gracedb/api/v1/superevents/paginators.py | 5 +++--
 gracedb/events/tests/test_perms.py       | 7 ++-----
 gracedb/search/tests/test_access.py      | 6 +-----
 5 files changed, 9 insertions(+), 18 deletions(-)

diff --git a/gracedb/api/v1/events/views.py b/gracedb/api/v1/events/views.py
index 11f64fcad..b6c6b8a39 100644
--- a/gracedb/api/v1/events/views.py
+++ b/gracedb/api/v1/events/views.py
@@ -6,10 +6,8 @@ import os
 import shutil
 try:
     from io import StringIO
-    from urllib.parse import urlencode
 except ImportError:  # python < 3
     from StringIO import StringIO
-    from urllib import urlencode
 
 from django.conf import settings
 from django.contrib.auth.models import User, Permission, Group as DjangoGroup
@@ -20,6 +18,7 @@ from django.http import HttpResponse, HttpResponseForbidden, \
     HttpResponseNotFound, HttpResponseServerError, HttpResponseBadRequest
 from django.http.request import QueryDict
 from django.utils.functional import wraps
+from django.utils.http import urlencode
 
 # Stuff for the LigoLwRenderer
 from glue.ligolw import ligolw
diff --git a/gracedb/api/v1/paginators.py b/gracedb/api/v1/paginators.py
index f03eaa9c7..d099a4b0d 100644
--- a/gracedb/api/v1/paginators.py
+++ b/gracedb/api/v1/paginators.py
@@ -1,9 +1,7 @@
 from collections import OrderedDict
 import logging
-try:
-    from urllib.parse import urlencode
-except ImportError:  # python < 3
-    from urllib import urlencode
+
+from django.utils.http import urlencode
 
 from rest_framework import pagination
 from rest_framework.response import Response
diff --git a/gracedb/api/v1/superevents/paginators.py b/gracedb/api/v1/superevents/paginators.py
index 599682a17..8cc967292 100644
--- a/gracedb/api/v1/superevents/paginators.py
+++ b/gracedb/api/v1/superevents/paginators.py
@@ -1,6 +1,7 @@
 from collections import OrderedDict
 import logging
-import urllib
+
+from django.utils.http import urlencode
 
 from rest_framework import pagination
 from rest_framework.response import Response
@@ -26,7 +27,7 @@ class CustomSupereventPagination(pagination.LimitOffsetPagination):
             'start': last,
             self.limit_query_param: self.limit,
         }
-        last_uri = base_uri + '?' + urllib.urlencode(param_dict)
+        last_uri = base_uri + '?' + urlencode(param_dict)
 
         output = OrderedDict([
             ('numRows', numRows),
diff --git a/gracedb/events/tests/test_perms.py b/gracedb/events/tests/test_perms.py
index 36ab3923e..61e22e16b 100644
--- a/gracedb/events/tests/test_perms.py
+++ b/gracedb/events/tests/test_perms.py
@@ -4,6 +4,7 @@ from django.contrib.contenttypes.models import ContentType
 from django.contrib.auth.models import Permission, Group, User
 from django.conf import settings
 from django.urls import reverse
+from django.utils.http import urlencode
 
 from guardian.models import GroupObjectPermission, UserObjectPermission
 from guardian.shortcuts import assign_perm
@@ -16,11 +17,7 @@ from events.permission_utils import assign_default_event_perms
 import json
 import os
 import shutil
-try:
-    from urllib.parse import urlencode
-except ImportError:  # python < 3
-    from urllib import urlencode
-    
+
 #------------------------------------------------------------------------------
 #------------------------------------------------------------------------------
 # Some utilities
diff --git a/gracedb/search/tests/test_access.py b/gracedb/search/tests/test_access.py
index 45592ae8b..94625c3bb 100644
--- a/gracedb/search/tests/test_access.py
+++ b/gracedb/search/tests/test_access.py
@@ -1,13 +1,9 @@
-try:
-    from urllib.parse import urlencode
-except ImportError:  # python < 3
-    from urllib import urlencode
-
 from django.conf import settings
 from django.contrib.auth.models import Group as DjangoGroup, Permission
 from django.contrib.contenttypes.models import ContentType
 from django.test import TestCase
 from django.urls import reverse
+from django.utils.http import urlencode
 
 from core.tests.utils import GraceDbTestBase
 from events.models import Event
-- 
GitLab