Skip to content
This repository has been archived by the owner on Feb 13, 2019. It is now read-only.

Commit

Permalink
made this bitch python3 compliant
Browse files Browse the repository at this point in the history
  • Loading branch information
vforgione committed Jul 9, 2015
1 parent 435aba4 commit a362894
Show file tree
Hide file tree
Showing 15 changed files with 64 additions and 46 deletions.
4 changes: 3 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
language: python
python:
- '2.7'
- '3.2'
- '3.4'
install:
- travis_retry pip install -e .
- travis_retry pip install "file://$(pwd)#egg=django-bulbs[dev]"
Expand All @@ -12,4 +14,4 @@ before_script:
script: py.test --cov bulbs --cov-report term-missing
after_success:
- coveralls
sudo: false
sudo: false
4 changes: 2 additions & 2 deletions bulbs/content/custom_search.py
Original file line number Diff line number Diff line change
Expand Up @@ -165,9 +165,9 @@ def groups_filter_from_query(query, field_map={}):
def date_range_filter(range_name):
"""Create a filter from a named date range."""

filter_days = filter(
filter_days = list(filter(
lambda time: time["label"] == range_name,
settings.CUSTOM_SEARCH_TIME_PERIODS)
settings.CUSTOM_SEARCH_TIME_PERIODS))
num_days = filter_days[0]["days"] if len(filter_days) else None

if num_days:
Expand Down
7 changes: 3 additions & 4 deletions bulbs/content/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,11 @@
from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import ValidationError
from django.template.defaultfilters import slugify

from djbetty.serializers import ImageFieldSerializer
from rest_framework.utils import model_meta
from rest_framework import relations
from rest_framework import serializers

from djbetty.serializers import ImageFieldSerializer
from six import string_types

from .models import Content, Tag, LogEntry, FeatureType, TemplateType, ObfuscatedUrlInfo

Expand Down Expand Up @@ -140,7 +139,7 @@ def to_internal_value(self, value):
if value == "":
return None

if isinstance(value, basestring):
if isinstance(value, string_types):
slug = slugify(value)
feature_type, created = FeatureType.objects.get_or_create(
slug=slug,
Expand Down
22 changes: 16 additions & 6 deletions bulbs/content/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,11 @@ def get_queryset(self):
if not isinstance(tags, list):
tags = [tags]
search_kwargs["tags"] = tags
if self.tags > 0:
search_kwargs["tags"] = self.tags
try:
if self.tags > 0:
search_kwargs["tags"] = self.tags
except TypeError:
pass

if "types" in self.request.GET:
search_kwargs["types"] = self.request.GET.getlist("types", [])
Expand All @@ -51,8 +54,12 @@ def get_queryset(self):

if "types" in self.kwargs:
search_kwargs["types"] = self.kwargs["types"]
if self.types > 0:
search_kwargs["types"] = self.types

try:
if self.types > 0:
search_kwargs["types"] = self.types
except TypeError:
pass

if "feature_types" in self.request.GET:
search_kwargs["feature_types"] = self.request.GET.getlist("feature_types", [])
Expand All @@ -61,8 +68,11 @@ def get_queryset(self):

if "feature_types" in self.kwargs:
search_kwargs["feature_types"] = self.kwargs["feature_types"]
if self.feature_types > 0:
search_kwargs["feature_types"] = self.feature_types
try:
if self.feature_types > 0:
search_kwargs["feature_types"] = self.feature_types
except TypeError:
pass

if "published" in self.kwargs:
search_kwargs["published"] = self.kwargs["published"]
Expand Down
4 changes: 2 additions & 2 deletions bulbs/promotion/operations.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def apply(self, data):
if self.content.published and self.when >= self.content.published:
# content has a published date, and that date is before when this

filtered = filter(lambda content: content["id"] == self.content.pk, data)
filtered = list(filter(lambda content: content["id"] == self.content.pk, data))
if len(filtered) == 0:
# content doesn't already exist in list
data.insert(self.index, {
Expand Down Expand Up @@ -66,7 +66,7 @@ def apply(self, data):
# content has a published date, and that date is before when this
# operation is occurring
try:
filtered = filter(lambda content: content["id"] == self.content.pk, data)
filtered = list(filter(lambda content: content["id"] == self.content.pk, data))
if len(filtered) == 0:
# content doesn't already exist in list
data[self.index] = {
Expand Down
2 changes: 1 addition & 1 deletion bulbs/promotion/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ def post(self, request, pzone_pk):
json_obj = []
http_status = 500

json_op = json.loads(request.body)
json_op = json.loads(request.body.decode("utf8"))
if not isinstance(json_op, list):
json_op = [json_op]

Expand Down
7 changes: 5 additions & 2 deletions bulbs/redirects/views.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
import urllib
try:
from urllib import urlencode
except ImportError:
from urllib.parse import urlencode

from bulbs.content.models import Content

Expand Down Expand Up @@ -34,7 +37,7 @@ def utm_redirect(request, pk, source=None, medium=None, name=None):

# UTM Tracking only works if all three are present...
if source and medium and name:
query_string = urllib.urlencode({
query_string = urlencode({
"utm_source": utm_source.get(source, "none"),
"utm_medium": utm_medium.get(medium, "none"),
"utm_campaign": utm_campaign.get("utm_campaign", "default")
Expand Down
2 changes: 1 addition & 1 deletion example/testcontent/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ def post(self, *args, **kwargs):
return self.get(*args, **kwargs)

def get_search_query(self):
params = json.loads(self.request.body)
params = json.loads(self.request.body.decode("utf8"))
query = params.get("query", {})
return query

Expand Down
6 changes: 3 additions & 3 deletions tests/api/test_content_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -386,7 +386,7 @@ def test_image_serializer(self):

response = client.get(content_detail_url, content_type="application/json")
self.assertEqual(response.status_code, 200)
data = json.loads(response.content)
data = json.loads(response.content.decode("utf8"))
self.assertEqual(data["thumbnail"], None)
self.assertEqual(data["detail_image"], None)

Expand Down Expand Up @@ -523,7 +523,7 @@ def test_create_token(self):
)

# test that what we expect to happen happened
json_response = json.loads(response.content)
json_response = json.loads(response.content.decode("utf8"))
self.assertEquals(len(json_response["url_uuid"]), 32)
self.assertEquals(json_response["content"], 1)
self.assertEquals(ObfuscatedUrlInfo.objects.count(), 1)
Expand Down Expand Up @@ -558,7 +558,7 @@ def test_list_tokens(self):
response = self.client.get(reverse("content-list-tokens", kwargs={"pk": content.id}))

# check out stuff
json_response = json.loads(response.content)
json_response = json.loads(response.content.decode("utf8"))
self.assertEqual(len(json_response), 3)
self.assertEqual(json_response[0]["id"], info_1.id)
self.assertEqual(json_response[0]["url_uuid"], info_1.url_uuid)
Expand Down
2 changes: 1 addition & 1 deletion tests/campaigns/test_campaign_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ def test_get_api(self):
response = self.client.get(campaign_detail_endpoint, content_type="application/json")
self.assertEqual(response.status_code, 200)

data = json.loads(response.content)
data = json.loads(response.content.decode("utf8"))

self.assertEqual(data["id"], campaign.id)
self.assertEqual(len(data["pixels"]), 2)
Expand Down
8 changes: 4 additions & 4 deletions tests/cms_notifications/test_cms_notifications_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ def test_listing(self):
response = self.client.get(reverse("notifications"))
self.assertEqual(response.status_code, 200)

resp_cms_notification = json.loads(response.content)
resp_cms_notification = json.loads(response.content.decode("utf8"))

self.assertEqual(len(resp_cms_notification), 1)
self.assertTrue("id" in resp_cms_notification[0])
Expand All @@ -65,7 +65,7 @@ def test_listing(self):
response = self.client.get(reverse("notifications"))
self.assertEqual(response.status_code, 200)

up_resp_cms_notification = json.loads(response.content)
up_resp_cms_notification = json.loads(response.content.decode("utf8"))

self.assertEqual(len(up_resp_cms_notification), 1)
self.assertEqual(up_cms_notification["title"], up_resp_cms_notification[0]["title"])
Expand Down Expand Up @@ -120,13 +120,13 @@ def test_validation(self):
content_type="application/json"
)

errors = json.loads(response.content)
errors = json.loads(response.content.decode("utf8"))

self.assertEquals(errors["non_field_errors"][0], "Post date must occur before promotion end date.")

response = self.client.get(reverse("notifications"))

self.assertEqual(len(json.loads(response.content)), 0)
self.assertEqual(len(json.loads(response.content.decode("utf8"))), 0)

def test_permissions(self):
"""Test that only super users can PUT/POST."""
Expand Down
8 changes: 6 additions & 2 deletions tests/contributions/test_contributions_reporting.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
import datetime
import csv
import StringIO

try:
import StringIO
except ImportError:
import io as StringIO

from django.core.urlresolvers import reverse
from django.test.client import Client
Expand Down Expand Up @@ -72,7 +76,7 @@ def test_reporting_api(self):
response = client.get(endpoint,
data={"start": start_date.strftime("%Y-%m-%d"), "format": "csv"})
self.assertEqual(response.status_code, 200)
csvreader = csv.DictReader(StringIO.StringIO(response.content))
csvreader = csv.DictReader(StringIO.StringIO(response.content.decode("utf8")))
self.assertEqual(len(csvreader.fieldnames), 12)
for line in csvreader:
pass
Expand Down
2 changes: 1 addition & 1 deletion tests/special_coverage/test_spec_cov_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def test_special_coverage_detail(self):
kwargs={"pk": special_coverage.id})
response = self.client.get(endpoint)

response_data = json.loads(response.content)
response_data = json.loads(response.content.decode("utf8"))

self.assertEqual(response.status_code, 200)
self.assertEqual(response_data["id"], special_coverage.id)
Expand Down
10 changes: 4 additions & 6 deletions tests/test_logout.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
from __future__ import print_function

from django.contrib.auth import get_user_model
# from django.conf import settings
from django.core.urlresolvers import reverse
# from django.db.models.loading import get_model
from django.test import Client
from bulbs.utils.test import BaseIndexableTestCase

# User = get_user_model()
# User = get_model(*settings.AUTH_USER_MODEL.split("."))
from bulbs.utils.test import BaseIndexableTestCase


class TestLogoutApi(BaseIndexableTestCase):
Expand All @@ -28,7 +26,7 @@ def test_logout(self):
# check that user is logged in
self.assertTrue(client.session['_auth_user_id'], user.pk)

print client.session['_auth_user_id']
print(client.session['_auth_user_id'])

# log user out via endpoint
request = client.get(
Expand Down
22 changes: 12 additions & 10 deletions tests/test_redirects.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
import urlparse
try:
import urlparse
except ImportError:
import urllib.parse as urlparse

from django.core.urlresolvers import reverse
from django.test import Client

from bulbs.utils.test import BaseIndexableTestCase

from example.testcontent.models import TestContentObj


class RedirectTestCase(BaseIndexableTestCase):

def setUp(self):
super(RedirectTestCase, self).setUp()
self.test_obj = TestContentObj.objects.create(title="Testing redirects")
Expand All @@ -24,13 +25,14 @@ def test_simple_redirect(self):

def test_utm_redirect(self):
client = Client()
endpoint = reverse("utm-redirect-tracking",
kwargs={
"pk": self.test_obj.id,
"source": "tsd",
"medium": "",
"name": ""
})
endpoint = reverse(
"utm-redirect-tracking",
kwargs={
"pk": self.test_obj.id,
"source": "tsd",
"medium": "",
"name": ""
})
response = client.get(endpoint)
self.assertEqual(response.status_code, 301)

Expand Down

0 comments on commit a362894

Please sign in to comment.