INCR-280 Run python-modernize on lms/djangoapps/commerce/api/v1 (#20579)
* run python modernize * run isort * Fix quality
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
""" 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
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
""" Custom API permissions. """
|
||||
|
||||
from __future__ import absolute_import
|
||||
|
||||
from django.contrib.auth.models import User
|
||||
from rest_framework.permissions import BasePermission, DjangoModelPermissions
|
||||
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
""" 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(
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
""" Tests for models. """
|
||||
from __future__ import absolute_import
|
||||
|
||||
import ddt
|
||||
from django.test import TestCase
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
""" Commerce API v1 serializer tests. """
|
||||
from __future__ import absolute_import
|
||||
|
||||
from django.test import TestCase
|
||||
|
||||
from ..serializers import serializers, validate_course_id
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
""" 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)
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
"""
|
||||
Commerce URLs
|
||||
"""
|
||||
from __future__ import absolute_import
|
||||
|
||||
from django.conf import settings
|
||||
from django.conf.urls import include, url
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
"""
|
||||
Commerce views
|
||||
"""
|
||||
from __future__ import absolute_import
|
||||
|
||||
import logging
|
||||
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
Reference in New Issue
Block a user