From 1139eb6bfba13b555fe1433163e07ae3b1d88d15 Mon Sep 17 00:00:00 2001 From: Michael Youngstrom Date: Wed, 27 Mar 2019 15:59:57 -0400 Subject: [PATCH 1/2] Run python-modernize on openedx/core/djangoapps/credit/tests --- .../core/djangoapps/credit/tests/factories.py | 12 ++++--- .../core/djangoapps/credit/tests/test_api.py | 7 ++-- .../djangoapps/credit/tests/test_models.py | 2 ++ .../credit/tests/test_serializers.py | 7 ++-- .../djangoapps/credit/tests/test_services.py | 21 ++++++------ .../djangoapps/credit/tests/test_signals.py | 18 +++++----- .../djangoapps/credit/tests/test_signature.py | 2 ++ .../djangoapps/credit/tests/test_tasks.py | 27 ++++++++------- .../djangoapps/credit/tests/test_views.py | 34 ++++++++++++------- 9 files changed, 76 insertions(+), 54 deletions(-) diff --git a/openedx/core/djangoapps/credit/tests/factories.py b/openedx/core/djangoapps/credit/tests/factories.py index 44c29dbefa..c657a7415f 100644 --- a/openedx/core/djangoapps/credit/tests/factories.py +++ b/openedx/core/djangoapps/credit/tests/factories.py @@ -1,20 +1,22 @@ # pylint:disable=missing-docstring +from __future__ import absolute_import + import datetime import json import uuid -from django.contrib.auth.models import User import factory -from factory.fuzzy import FuzzyText import pytz +from django.contrib.auth.models import User +from factory.fuzzy import FuzzyText from openedx.core.djangoapps.credit.models import ( - CreditProvider, - CreditEligibility, CreditCourse, + CreditEligibility, + CreditProvider, CreditRequest, CreditRequirement, - CreditRequirementStatus, + CreditRequirementStatus ) from util.date_utils import to_timestamp diff --git a/openedx/core/djangoapps/credit/tests/test_api.py b/openedx/core/djangoapps/credit/tests/test_api.py index 4a539ad9a9..4a3e5adc02 100644 --- a/openedx/core/djangoapps/credit/tests/test_api.py +++ b/openedx/core/djangoapps/credit/tests/test_api.py @@ -1,6 +1,8 @@ """ Tests for the API functions in the credit app. """ +from __future__ import absolute_import + import datetime import json @@ -8,6 +10,7 @@ import ddt import httpretty import mock import pytz +import six from django.contrib.auth.models import User from django.core import mail from django.db import connection @@ -195,7 +198,7 @@ class CreditApiTestBase(ModuleStoreTestCase): """ Mock GET requests to the ecommerce course API endpoint. """ httpretty.reset() httpretty.register_uri( - httpretty.GET, '{}/courses/{}/?include_products=1'.format(TEST_API_URL, unicode(course_key)), + httpretty.GET, '{}/courses/{}/?include_products=1'.format(TEST_API_URL, six.text_type(course_key)), status=status, body=json.dumps(body), content_type='application/json', ) @@ -977,7 +980,7 @@ class CreditProviderIntegrationApiTests(CreditApiTestBase): self.assertEqual(parameters['course_org'], self.course_key.org) self.assertEqual(parameters['course_num'], self.course_key.course) self.assertEqual(parameters['course_run'], self.course_key.run) - self.assertEqual(parameters['final_grade'], unicode(self.FINAL_GRADE)) + self.assertEqual(parameters['final_grade'], six.text_type(self.FINAL_GRADE)) # Validate user information for key in self.USER_INFO.keys(): diff --git a/openedx/core/djangoapps/credit/tests/test_models.py b/openedx/core/djangoapps/credit/tests/test_models.py index 5d4b608527..266e4cafe5 100644 --- a/openedx/core/djangoapps/credit/tests/test_models.py +++ b/openedx/core/djangoapps/credit/tests/test_models.py @@ -3,6 +3,8 @@ Tests for credit course models. """ +from __future__ import absolute_import + import ddt from django.test import TestCase from opaque_keys.edx.keys import CourseKey diff --git a/openedx/core/djangoapps/credit/tests/test_serializers.py b/openedx/core/djangoapps/credit/tests/test_serializers.py index 29639669ee..7f544dd63c 100644 --- a/openedx/core/djangoapps/credit/tests/test_serializers.py +++ b/openedx/core/djangoapps/credit/tests/test_serializers.py @@ -1,11 +1,12 @@ """ Tests for Credit API serializers. """ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals +import six from django.test import TestCase from openedx.core.djangoapps.credit import serializers -from openedx.core.djangoapps.credit.tests.factories import CreditProviderFactory, CreditEligibilityFactory +from openedx.core.djangoapps.credit.tests.factories import CreditEligibilityFactory, CreditProviderFactory from student.tests.factories import UserFactory @@ -38,7 +39,7 @@ class CreditEligibilitySerializerTests(TestCase): eligibility = CreditEligibilityFactory(username=user.username) serializer = serializers.CreditEligibilitySerializer(eligibility) expected = { - 'course_key': unicode(eligibility.course.course_key), + 'course_key': six.text_type(eligibility.course.course_key), 'deadline': eligibility.deadline.strftime('%Y-%m-%dT%H:%M:%S.%fZ'), 'username': user.username, } diff --git a/openedx/core/djangoapps/credit/tests/test_services.py b/openedx/core/djangoapps/credit/tests/test_services.py index 92276b05b3..076c7a3c42 100644 --- a/openedx/core/djangoapps/credit/tests/test_services.py +++ b/openedx/core/djangoapps/credit/tests/test_services.py @@ -2,18 +2,19 @@ Tests for the Credit xBlock service """ -import ddt -from course_modes.models import CourseMode +from __future__ import absolute_import +import ddt +import six + +from course_modes.models import CourseMode +from openedx.core.djangoapps.credit.api.eligibility import set_credit_requirements +from openedx.core.djangoapps.credit.models import CreditCourse +from openedx.core.djangoapps.credit.services import CreditService +from student.models import CourseEnrollment, UserProfile from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase from xmodule.modulestore.tests.factories import CourseFactory -from openedx.core.djangoapps.credit.services import CreditService -from openedx.core.djangoapps.credit.models import CreditCourse -from openedx.core.djangoapps.credit.api.eligibility import set_credit_requirements - -from student.models import CourseEnrollment, UserProfile - @ddt.ddt class CreditServiceTests(ModuleStoreTestCase): @@ -383,12 +384,12 @@ class CreditServiceTests(ModuleStoreTestCase): # mark the grade as satisfied self.service.set_credit_requirement_status( self.user.id, - unicode(self.course.id), + six.text_type(self.course.id), 'grade', 'grade' ) - credit_state = self.service.get_credit_state(self.user.id, unicode(self.course.id)) + credit_state = self.service.get_credit_state(self.user.id, six.text_type(self.course.id)) self.assertIsNotNone(credit_state) self.assertEqual(credit_state['enrollment_mode'], 'verified') diff --git a/openedx/core/djangoapps/credit/tests/test_signals.py b/openedx/core/djangoapps/credit/tests/test_signals.py index 7bd289a577..629cac79b7 100644 --- a/openedx/core/djangoapps/credit/tests/test_signals.py +++ b/openedx/core/djangoapps/credit/tests/test_signals.py @@ -2,25 +2,25 @@ Tests for minimum grade requirement status """ +from __future__ import absolute_import + +from datetime import datetime, timedelta + import ddt import pytz -from datetime import timedelta, datetime +from django.test.client import RequestFactory from mock import MagicMock -from django.test.client import RequestFactory from course_modes.models import CourseMode +from openedx.core.djangoapps.credit.api import get_credit_requirement_status, set_credit_requirements +from openedx.core.djangoapps.credit.models import CreditCourse, CreditProvider +from openedx.core.djangoapps.credit.signals import listen_for_grade_calculation +from openedx.core.djangolib.testing.utils import skip_unless_lms from student.models import CourseEnrollment from student.tests.factories import UserFactory from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase from xmodule.modulestore.tests.factories import CourseFactory -from openedx.core.djangoapps.credit.api import ( - set_credit_requirements, get_credit_requirement_status -) -from openedx.core.djangoapps.credit.models import CreditCourse, CreditProvider -from openedx.core.djangoapps.credit.signals import listen_for_grade_calculation -from openedx.core.djangolib.testing.utils import skip_unless_lms - @skip_unless_lms @ddt.ddt diff --git a/openedx/core/djangoapps/credit/tests/test_signature.py b/openedx/core/djangoapps/credit/tests/test_signature.py index 0160616e0b..428c7b38ba 100644 --- a/openedx/core/djangoapps/credit/tests/test_signature.py +++ b/openedx/core/djangoapps/credit/tests/test_signature.py @@ -3,6 +3,8 @@ Tests for digital signatures used to validate messages to/from credit providers. """ +from __future__ import absolute_import + from django.test import TestCase from django.test.utils import override_settings diff --git a/openedx/core/djangoapps/credit/tests/test_tasks.py b/openedx/core/djangoapps/credit/tests/test_tasks.py index b61a923e38..d03213f449 100644 --- a/openedx/core/djangoapps/credit/tests/test_tasks.py +++ b/openedx/core/djangoapps/credit/tests/test_tasks.py @@ -2,9 +2,14 @@ Tests for credit course tasks. """ -import mock +from __future__ import absolute_import + from datetime import datetime +import mock +import six +from edx_proctoring.api import create_exam + from openedx.core.djangoapps.credit.api import get_credit_requirements from openedx.core.djangoapps.credit.exceptions import InvalidCreditRequirements from openedx.core.djangoapps.credit.models import CreditCourse @@ -12,8 +17,6 @@ from openedx.core.djangoapps.credit.signals import on_course_publish from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory -from edx_proctoring.api import create_exam - class TestTaskExecution(ModuleStoreTestCase): """Set of tests to ensure that the task code will do the right thing when @@ -71,8 +74,8 @@ class TestTaskExecution(ModuleStoreTestCase): self.add_credit_course(self.course.id) create_exam( - course_id=unicode(self.course.id), - content_id=unicode(self.subsection.location), + course_id=six.text_type(self.course.id), + content_id=six.text_type(self.subsection.location), exam_name='A Proctored Exam', time_limit_mins=10, is_proctored=True, @@ -87,7 +90,7 @@ class TestTaskExecution(ModuleStoreTestCase): requirements = get_credit_requirements(self.course.id) self.assertEqual(len(requirements), 2) self.assertEqual(requirements[1]['namespace'], 'proctored_exam') - self.assertEqual(requirements[1]['name'], unicode(self.subsection.location)) + self.assertEqual(requirements[1]['name'], six.text_type(self.subsection.location)) self.assertEqual(requirements[1]['display_name'], 'A Proctored Exam') self.assertEqual(requirements[1]['criteria'], {}) @@ -99,7 +102,7 @@ class TestTaskExecution(ModuleStoreTestCase): self.add_credit_course(self.course.id) create_exam( - course_id=unicode(self.course.id), + course_id=six.text_type(self.course.id), content_id='foo', exam_name='A Proctored Exam', time_limit_mins=10, @@ -123,7 +126,7 @@ class TestTaskExecution(ModuleStoreTestCase): ]) create_exam( - course_id=unicode(self.course.id), + course_id=six.text_type(self.course.id), content_id='foo2', exam_name='A Proctored Exam', time_limit_mins=10, @@ -145,7 +148,7 @@ class TestTaskExecution(ModuleStoreTestCase): # practice proctored exams aren't requirements create_exam( - course_id=unicode(self.course.id), + course_id=six.text_type(self.course.id), content_id='foo3', exam_name='A Proctored Exam', time_limit_mins=10, @@ -195,8 +198,8 @@ class TestTaskExecution(ModuleStoreTestCase): self.add_credit_course(self.course.id) subsection = ItemFactory.create(parent=self.section, category='sequential', display_name='Dummy Subsection') create_exam( - course_id=unicode(self.course.id), - content_id=unicode(subsection.location), + course_id=six.text_type(self.course.id), + content_id=six.text_type(subsection.location), exam_name='A Proctored Exam', time_limit_mins=10, is_proctored=True, @@ -210,7 +213,7 @@ class TestTaskExecution(ModuleStoreTestCase): requirements = get_credit_requirements(self.course.id) self.assertEqual(len(requirements), 2) self.assertEqual(requirements[1]['namespace'], 'proctored_exam') - self.assertEqual(requirements[1]['name'], unicode(subsection.location)) + self.assertEqual(requirements[1]['name'], six.text_type(subsection.location)) self.assertEqual(requirements[1]['display_name'], 'A Proctored Exam') self.assertEqual(requirements[1]['criteria'], {}) diff --git a/openedx/core/djangoapps/credit/tests/test_views.py b/openedx/core/djangoapps/credit/tests/test_views.py index 5347417080..9a27e3eb49 100644 --- a/openedx/core/djangoapps/credit/tests/test_views.py +++ b/openedx/core/djangoapps/credit/tests/test_views.py @@ -2,31 +2,39 @@ Tests for credit app views. """ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals import datetime import json import ddt import pytz +import six from django.conf import settings -from django.urls import reverse -from django.test import TestCase, Client +from django.test import Client, TestCase from django.test.utils import override_settings +from django.urls import reverse from edx_oauth2_provider.tests.factories import AccessTokenFactory, ClientFactory from opaque_keys.edx.keys import CourseKey from openedx.core.djangoapps.credit.models import ( - CreditCourse, CreditProvider, CreditRequest, CreditRequirement, CreditRequirementStatus, + CreditCourse, + CreditProvider, + CreditRequest, + CreditRequirement, + CreditRequirementStatus ) -from openedx.core.djangoapps.credit.serializers import CreditProviderSerializer, CreditEligibilitySerializer +from openedx.core.djangoapps.credit.serializers import CreditEligibilitySerializer, CreditProviderSerializer from openedx.core.djangoapps.credit.signature import signature from openedx.core.djangoapps.credit.tests.factories import ( - CreditProviderFactory, CreditEligibilityFactory, CreditCourseFactory, CreditRequestFactory, + CreditCourseFactory, + CreditEligibilityFactory, + CreditProviderFactory, + CreditRequestFactory ) from openedx.core.djangoapps.oauth_dispatch.jwt import create_jwt_for_user from openedx.core.djangolib.testing.utils import skip_unless_lms -from student.tests.factories import UserFactory, AdminFactory +from student.tests.factories import AdminFactory, UserFactory from util.date_utils import to_timestamp JSON = 'application/json' @@ -120,7 +128,7 @@ class CreditCourseViewSetTests(AuthMixin, UserMixin, TestCase): """ Serializes a CreditCourse to a Python dict. """ return { - 'course_key': unicode(credit_course.course_key), + 'course_key': six.text_type(credit_course.course_key), 'enabled': credit_course.enabled } @@ -187,7 +195,7 @@ class CreditCourseViewSetTests(AuthMixin, UserMixin, TestCase): """ Verify an API request created a new CreditCourse object. """ enabled = True data = { - 'course_key': unicode(course_id), + 'course_key': six.text_type(course_id), 'enabled': enabled } @@ -205,7 +213,7 @@ class CreditCourseViewSetTests(AuthMixin, UserMixin, TestCase): course_id = 'a/b/c' enabled = True data = { - 'course_key': unicode(course_id), + 'course_key': six.text_type(course_id), 'enabled': enabled } @@ -217,7 +225,7 @@ class CreditCourseViewSetTests(AuthMixin, UserMixin, TestCase): course_id = 'd/e/f' enabled = True data = { - 'course_key': unicode(course_id), + 'course_key': six.text_type(course_id), 'enabled': enabled } @@ -330,7 +338,7 @@ class CreditProviderRequestCreateViewTests(ApiTestCaseMixin, UserMixin, TestCase """ Create a credit request for the given user and course. """ data = { 'username': username, - 'course_key': unicode(course_id) + 'course_key': six.text_type(course_id) } return self.client.post(self.path, json.dumps(data), content_type=JSON) @@ -379,7 +387,7 @@ class CreditProviderRequestCreateViewTests(ApiTestCaseMixin, UserMixin, TestCase self.assertEqual(parameters['course_org'], course_key.org) self.assertEqual(parameters['course_num'], course_key.course) self.assertEqual(parameters['course_run'], course_key.run) - self.assertEqual(parameters['final_grade'], unicode(final_grade)) + self.assertEqual(parameters['final_grade'], six.text_type(final_grade)) self.assertEqual(parameters['user_username'], username) self.assertEqual(parameters['user_full_name'], self.user.get_full_name()) self.assertEqual(parameters['user_mailing_address'], '') From 488e54247d4f0eff17516d3ab8c25ab160ee8d69 Mon Sep 17 00:00:00 2001 From: Michael Youngstrom Date: Thu, 28 Mar 2019 11:14:51 -0400 Subject: [PATCH 2/2] group --- openedx/core/djangoapps/credit/tests/factories.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openedx/core/djangoapps/credit/tests/factories.py b/openedx/core/djangoapps/credit/tests/factories.py index c657a7415f..36d1d18cbb 100644 --- a/openedx/core/djangoapps/credit/tests/factories.py +++ b/openedx/core/djangoapps/credit/tests/factories.py @@ -6,9 +6,9 @@ import json import uuid import factory +from factory.fuzzy import FuzzyText import pytz from django.contrib.auth.models import User -from factory.fuzzy import FuzzyText from openedx.core.djangoapps.credit.models import ( CreditCourse,