Skip to content
Snippets Groups Projects
Commit 95986d16 authored by Stu Young's avatar Stu Young Committed by Christie Rice
Browse files

INCR-280 Run python-modernize on lms/djangoapps/commerce/api/v1 (#20579)

* run python modernize

* run isort

* Fix quality
parent 94efff46
No related branches found
No related tags found
No related merge requests found
""" API v1 models. """
from __future__ import absolute_import
import logging
from itertools import groupby
import six
from django.db import transaction
from opaque_keys import InvalidKeyError
from opaque_keys.edx.keys import CourseKey
......@@ -22,7 +25,7 @@ class Course(object):
_deleted_modes = None
def __init__(self, id, modes, **kwargs): # pylint: disable=redefined-builtin
self.id = CourseKey.from_string(unicode(id)) # pylint: disable=invalid-name
self.id = CourseKey.from_string(six.text_type(id)) # pylint: disable=invalid-name
self.modes = list(modes)
self.verification_deadline = UNDEFINED
if 'verification_deadline' in kwargs:
......@@ -32,7 +35,7 @@ class Course(object):
@property
def name(self):
""" Return course name. """
course_id = CourseKey.from_string(unicode(self.id))
course_id = CourseKey.from_string(six.text_type(self.id))
try:
return CourseOverview.get_from_id(course_id).display_name
......@@ -112,7 +115,7 @@ class Course(object):
def get(cls, course_id):
""" Retrieve a single course. """
try:
course_id = CourseKey.from_string(unicode(course_id))
course_id = CourseKey.from_string(six.text_type(course_id))
except InvalidKeyError:
log.debug(u'[%s] is not a valid course key.', course_id)
raise ValueError
......
""" Custom API permissions. """
from __future__ import absolute_import
from django.contrib.auth.models import User
from rest_framework.permissions import BasePermission, DjangoModelPermissions
......
""" API v1 serializers. """
from __future__ import absolute_import
from datetime import datetime
import pytz
import six
from django.utils.translation import ugettext as _
from opaque_keys import InvalidKeyError
from opaque_keys.edx.keys import CourseKey
......@@ -10,7 +13,7 @@ from rest_framework import serializers
from course_modes.models import CourseMode
from xmodule.modulestore.django import modulestore
from .models import Course, UNDEFINED
from .models import UNDEFINED, Course
class CourseModeSerializer(serializers.ModelSerializer):
......@@ -40,7 +43,7 @@ def validate_course_id(course_id):
Check that course id is valid and exists in modulestore.
"""
try:
course_key = CourseKey.from_string(unicode(course_id))
course_key = CourseKey.from_string(six.text_type(course_id))
except InvalidKeyError:
raise serializers.ValidationError(
_(u"{course_id} is not a valid course key.").format(
......
""" Tests for models. """
from __future__ import absolute_import
import ddt
from django.test import TestCase
......
""" Commerce API v1 serializer tests. """
from __future__ import absolute_import
from django.test import TestCase
from ..serializers import serializers, validate_course_id
......
""" Commerce API v1 view tests. """
from __future__ import absolute_import
import itertools
import json
from datetime import datetime, timedelta
import ddt
import pytz
import six
from django.conf import settings
from django.contrib.auth.models import Permission
from django.urls import reverse, reverse_lazy
from django.test import TestCase
from django.test.utils import override_settings
from django.urls import reverse, reverse_lazy
from rest_framework.utils.encoders import JSONEncoder
from course_modes.models import CourseMode
......@@ -72,8 +75,8 @@ class CourseApiViewTestMixin(object):
verification_deadline = verification_deadline or VerificationDeadline.deadline_for_course(course.id)
return {
u'id': unicode(course.id),
u'name': unicode(course.display_name),
u'id': six.text_type(course.id),
u'name': six.text_type(course.display_name),
u'verification_deadline': cls._serialize_datetime(verification_deadline),
u'modes': [cls._serialize_course_mode(mode) for mode in modes]
}
......@@ -112,7 +115,7 @@ class CourseRetrieveUpdateViewTests(CourseApiViewTestMixin, ModuleStoreTestCase)
def setUp(self):
super(CourseRetrieveUpdateViewTests, self).setUp()
self.path = reverse('commerce_api:v1:courses:retrieve_update', args=[unicode(self.course.id)])
self.path = reverse('commerce_api:v1:courses:retrieve_update', args=[six.text_type(self.course.id)])
self.user = UserFactory.create()
self.client.login(username=self.user.username, password=PASSWORD)
......@@ -286,7 +289,7 @@ class CourseRetrieveUpdateViewTests(CourseApiViewTestMixin, ModuleStoreTestCase)
def test_update_overwrite(self):
""" Verify that data submitted via PUT overwrites/deletes modes that are
not included in the body of the request. """
course_id = unicode(self.course.id)
course_id = six.text_type(self.course.id)
expected_course_mode = CourseMode(
mode_slug=u'credit',
min_price=500,
......@@ -323,7 +326,7 @@ class CourseRetrieveUpdateViewTests(CourseApiViewTestMixin, ModuleStoreTestCase)
expiration_datetime=expiration_datetime
)
)
course_id = unicode(self.course.id)
course_id = six.text_type(self.course.id)
payload = {u'id': course_id, u'modes': [mode]}
path = reverse('commerce_api:v1:courses:retrieve_update', args=[course_id])
......@@ -351,7 +354,7 @@ class CourseRetrieveUpdateViewTests(CourseApiViewTestMixin, ModuleStoreTestCase)
)
]
expected = self._serialize_course(course, expected_modes)
path = reverse('commerce_api:v1:courses:retrieve_update', args=[unicode(course.id)])
path = reverse('commerce_api:v1:courses:retrieve_update', args=[six.text_type(course.id)])
response = self.client.put(path, json.dumps(expected), content_type=JSON_CONTENT_TYPE, **request_kwargs)
self.assertEqual(response.status_code, 201)
......@@ -397,13 +400,13 @@ class CourseRetrieveUpdateViewTests(CourseApiViewTestMixin, ModuleStoreTestCase)
course_key = 'non/existing/key'
course_dict = {
u'id': unicode(course_key),
u'name': unicode('Non Existing Course'),
u'id': six.text_type(course_key),
u'name': six.text_type('Non Existing Course'),
u'verification_deadline': None,
u'modes': [self._serialize_course_mode(mode) for mode in expected_modes]
}
path = reverse('commerce_api:v1:courses:retrieve_update', args=[unicode(course_key)])
path = reverse('commerce_api:v1:courses:retrieve_update', args=[six.text_type(course_key)])
response = self.client.put(path, json.dumps(course_dict), content_type=JSON_CONTENT_TYPE)
self.assertEqual(response.status_code, 400)
......
"""
Commerce URLs
"""
from __future__ import absolute_import
from django.conf import settings
from django.conf.urls import include, url
......
"""
Commerce views
"""
from __future__ import absolute_import
import logging
from django.contrib.auth.models import User
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment