Merge pull request #21127 from edx/revert-21014-INCR-343

Revert "INCR-343 Python 3 compatibility"
This commit is contained in:
Ayub
2019-07-15 17:04:20 +05:00
committed by GitHub
6 changed files with 26 additions and 46 deletions

View File

@@ -1,20 +1,18 @@
""" Course run serializers. """
from __future__ import absolute_import
import logging
import time # pylint: disable=unused-import
import six
from contentstore.views.assets import update_course_run_asset
from django.contrib.auth import get_user_model
from django.db import transaction
from django.utils.translation import ugettext_lazy as _
from rest_framework import serializers
from rest_framework.fields import empty
from student.models import CourseAccessRole
from xmodule.modulestore.django import modulestore
from cms.djangoapps.contentstore.views.course import create_new_course, get_course_and_check_access, rerun_course
from contentstore.views.assets import update_course_run_asset
from openedx.core.lib.courses import course_image_url
from student.models import CourseAccessRole
from xmodule.modulestore.django import modulestore
IMAGE_TYPES = {
'image/jpeg': 'jpg',
@@ -84,7 +82,7 @@ class CourseRunTeamSerializerMixin(serializers.Serializer):
def image_is_jpeg_or_png(value):
content_type = value.content_type
if content_type not in list(IMAGE_TYPES.keys()):
if content_type not in IMAGE_TYPES.keys():
raise serializers.ValidationError(
u'Only JPEG and PNG image types are supported. {} is not valid'.format(content_type))

View File

@@ -1,26 +1,20 @@
"""Course Run Serializer Tests"""
from __future__ import absolute_import
import datetime
import ddt
import pytz
from django.test import RequestFactory
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
from xmodule.modulestore.tests.factories import CourseFactory
from openedx.core.lib.courses import course_image_url
from student.roles import CourseInstructorRole, CourseStaffRole
from student.tests.factories import UserFactory
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
from xmodule.modulestore.tests.factories import CourseFactory
from ...serializers.course_runs import CourseRunSerializer
from ..utils import serialize_datetime
from ...serializers.course_runs import CourseRunSerializer
@ddt.ddt
class CourseRunSerializerTests(ModuleStoreTestCase):
"""Tests for Course Run serializer"""
def setUp(self):
super(CourseRunSerializerTests, self).setUp()

View File

@@ -1,20 +1,13 @@
"""Course run Tests"""
from __future__ import absolute_import
import datetime
import ddt
import pytz
from django.core.files.uploadedfile import SimpleUploadedFile
from django.test import RequestFactory
from django.urls import reverse
from django.test import RequestFactory
from opaque_keys.edx.keys import CourseKey
from rest_framework.test import APIClient
from openedx.core.lib.courses import course_image_url
from student.models import CourseAccessRole
from student.tests.factories import TEST_PASSWORD, AdminFactory, UserFactory
from rest_framework.test import APIClient
from xmodule.contentstore.content import StaticContent
from xmodule.contentstore.django import contentstore
from xmodule.exceptions import NotFoundError
@@ -22,8 +15,10 @@ from xmodule.modulestore.django import modulestore
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
from xmodule.modulestore.tests.factories import CourseFactory, ToyCourseFactory
from ...serializers.course_runs import CourseRunSerializer
from student.models import CourseAccessRole
from student.tests.factories import AdminFactory, TEST_PASSWORD, UserFactory
from ..utils import serialize_datetime
from ...serializers.course_runs import CourseRunSerializer
@ddt.ddt

View File

@@ -1,5 +1,2 @@
"""Utils for tests"""
def serialize_datetime(d):
return d.strftime('%Y-%m-%dT%H:%M:%S.%fZ')

View File

@@ -1,23 +1,21 @@
"""
Tests for the maintenance app views.
"""
from __future__ import absolute_import
import json
import ddt
import six
from django.conf import settings
from django.urls import reverse
from contentstore.management.commands.utils import get_course_versions
from openedx.features.announcements.models import Announcement
from student.tests.factories import AdminFactory, UserFactory
from xmodule.modulestore import ModuleStoreEnum
from xmodule.modulestore.django import modulestore
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory
from openedx.features.announcements.models import Announcement
from .views import COURSE_KEY_ERROR_MESSAGES, MAINTENANCE_VIEWS
# This list contains URLs of all maintenance app views.
@@ -176,7 +174,7 @@ class TestForcePublish(MaintenanceViewTestCase):
# validate non split error message
course = CourseFactory.create(default_store=ModuleStoreEnum.Type.mongo)
self.verify_error_message(
data={'course-id': six.text_type(course.id)},
data={'course-id': unicode(course.id)},
error_message='Force publishing course is not supported with old mongo courses.'
)
@@ -188,7 +186,7 @@ class TestForcePublish(MaintenanceViewTestCase):
# validate non split error message
course = CourseFactory.create(org='e', number='d', run='X', default_store=ModuleStoreEnum.Type.mongo)
self.verify_error_message(
data={'course-id': six.text_type(course.id)},
data={'course-id': unicode(course.id)},
error_message='Force publishing course is not supported with old mongo courses.'
)
# Now search for the course key in split version.
@@ -209,7 +207,7 @@ class TestForcePublish(MaintenanceViewTestCase):
# now course is published, we should get `already published course` error.
self.verify_error_message(
data={'course-id': six.text_type(course.id)},
data={'course-id': unicode(course.id)},
error_message='Course is already in published state.'
)
@@ -221,7 +219,7 @@ class TestForcePublish(MaintenanceViewTestCase):
course (object): a course object.
"""
# get draft and publish branch versions
versions = get_course_versions(six.text_type(course.id))
versions = get_course_versions(unicode(course.id))
# verify that draft and publish point to different versions
self.assertNotEqual(versions['draft-branch'], versions['published-branch'])
@@ -241,7 +239,7 @@ class TestForcePublish(MaintenanceViewTestCase):
# force publish course view
data = {
'course-id': six.text_type(course.id)
'course-id': unicode(course.id)
}
response = self.client.post(self.view_url, data=data, HTTP_X_REQUESTED_WITH='XMLHttpRequest')
response_data = json.loads(response.content)

View File

@@ -1,33 +1,31 @@
"""
Views for the maintenance app.
"""
from __future__ import absolute_import
import logging
import six
from django.core.urlresolvers import reverse, reverse_lazy
from django.core.validators import ValidationError
from django.db import transaction
from django.utils.decorators import method_decorator
from django.utils.translation import ugettext as _
from django.views.generic import View
from django.views.generic.edit import CreateView, DeleteView, UpdateView
from django.views.generic.list import ListView
from django.views.generic.edit import CreateView, UpdateView, DeleteView
from opaque_keys import InvalidKeyError
from opaque_keys.edx.keys import CourseKey
from six import text_type
from contentstore.management.commands.utils import get_course_versions
from edxmako.shortcuts import render_to_response
from openedx.features.announcements.forms import AnnouncementForm
from openedx.features.announcements.models import Announcement
from util.json_request import JsonResponse
from util.views import require_global_staff
from xmodule.modulestore import ModuleStoreEnum
from xmodule.modulestore.django import modulestore
from xmodule.modulestore.exceptions import ItemNotFoundError
from openedx.features.announcements.models import Announcement
from openedx.features.announcements.forms import AnnouncementForm
log = logging.getLogger(__name__)
# This dict maintains all the views that will be used Maintenance app.
@@ -157,8 +155,8 @@ class ForcePublishCourseView(MaintenanceBaseView):
Returns a dict containing unicoded values of draft and published draft versions.
"""
return {
'draft-branch': six.text_type(versions['draft-branch']),
'published-branch': six.text_type(versions['published-branch'])
'draft-branch': unicode(versions['draft-branch']),
'published-branch': unicode(versions['published-branch'])
}
@transaction.atomic