Python3 Update

Added future absolute_import
Changed unicode() with six.text_type()
This commit is contained in:
usama sadiq
2019-07-08 18:51:37 +05:00
parent e8ca657d78
commit eef3b65535
9 changed files with 75 additions and 45 deletions

View File

@@ -1,22 +1,23 @@
"""Tests for the certificates Python API. """
from __future__ import absolute_import
import uuid
from contextlib import contextmanager
from functools import wraps
from datetime import datetime, timedelta
import ddt
from datetime import datetime
from datetime import timedelta
import pytz
import six
from config_models.models import cache
from django.conf import settings
from django.urls import reverse
from django.test import RequestFactory, TestCase
from django.test.utils import override_settings
from django.urls import reverse
from django.utils import timezone
from freezegun import freeze_time
from mock import patch
from opaque_keys.edx.keys import CourseKey
from opaque_keys.edx.locator import CourseLocator
import pytz
from course_modes.models import CourseMode
from course_modes.tests.factories import CourseModeFactory
@@ -476,7 +477,7 @@ class CertificateGetTests(SharedModuleStoreTestCase):
'certificates:html_view',
kwargs={
"user_id": str(self.student.id),
"course_id": unicode(self.web_cert_course.id),
"course_id": six.text_type(self.web_cert_course.id),
}
)
@@ -546,7 +547,7 @@ class GenerateUserCertificatesTest(EventTestMixin, WebCertificateTestMixin, Modu
self.assert_event_emitted(
'edx.certificate.created',
user_id=self.student.id,
course_id=unicode(self.course.id),
course_id=six.text_type(self.course.id),
certificate_url=certs_api.get_certificate_url(self.student.id, self.course.id),
certificate_id=cert.verify_uuid,
enrollment_mode=cert.mode,
@@ -637,7 +638,7 @@ class CertificateGenerationEnabledTest(EventTestMixin, TestCase):
event_name = '.'.join(['edx', 'certificate', 'generation', cert_event_type])
self.assert_event_emitted(
event_name,
course_id=unicode(self.COURSE_KEY),
course_id=six.text_type(self.COURSE_KEY),
)
self._assert_enabled_for_course(self.COURSE_KEY, expect_enabled)
@@ -762,7 +763,7 @@ class CertificatesBrandingTest(TestCase):
# Make sure there are not unexpected keys in dict returned by 'get_certificate_header_context'
self.assertItemsEqual(
data.keys(),
list(data.keys()),
['logo_src', 'logo_url']
)
self.assertIn(
@@ -787,7 +788,7 @@ class CertificatesBrandingTest(TestCase):
# Make sure there are not unexpected keys in dict returned by 'get_certificate_footer_context'
self.assertItemsEqual(
data.keys(),
list(data.keys()),
['company_about_url', 'company_privacy_url', 'company_tos_url']
)
self.assertIn(

View File

@@ -1,4 +1,6 @@
"""Tests for the resubmit_error_certificates management command. """
from __future__ import absolute_import
import ddt
from django.core.management import call_command
from django.core.management.base import CommandError
@@ -6,12 +8,13 @@ from django.test.utils import override_settings
from mock import patch
from opaque_keys.edx.locator import CourseLocator
from six import text_type
from six.moves import range
from badges.events.course_complete import get_completion_badge
from badges.models import BadgeAssertion
from badges.tests.factories import BadgeAssertionFactory, CourseCompleteImageConfigurationFactory
from lms.djangoapps.certificates.models import CertificateStatuses, GeneratedCertificate
from course_modes.models import CourseMode
from lms.djangoapps.certificates.models import CertificateStatuses, GeneratedCertificate
from lms.djangoapps.grades.tests.utils import mock_passing_grade
from student.tests.factories import CourseEnrollmentFactory, UserFactory
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase

View File

@@ -1,4 +1,6 @@
"""Tests for certificate Django models. """
from __future__ import absolute_import
import json
import ddt
@@ -7,7 +9,7 @@ from django.core.exceptions import ValidationError
from django.core.files.uploadedfile import SimpleUploadedFile
from django.test import TestCase
from django.test.utils import override_settings
from opaque_keys.edx.locator import CourseLocator, CourseKey
from opaque_keys.edx.locator import CourseKey, CourseLocator
from path import Path as path
from lms.djangoapps.certificates.models import (

View File

@@ -1,6 +1,8 @@
"""
Unit Tests for the Certificate service
"""
from __future__ import absolute_import
from lms.djangoapps.certificates.models import CertificateStatuses, GeneratedCertificate
from lms.djangoapps.certificates.services import CertificateService
from lms.djangoapps.certificates.tests.factories import GeneratedCertificateFactory

View File

@@ -2,17 +2,20 @@
Unit tests for enabling self-generated certificates for self-paced courses
and disabling for instructor-paced courses.
"""
from __future__ import absolute_import
import ddt
import mock
import six
from lms.djangoapps.certificates import api as certs_api
from lms.djangoapps.certificates.models import (
CertificateGenerationConfiguration,
CertificateWhitelist,
GeneratedCertificate,
CertificateStatuses,
CertificateWhitelist,
GeneratedCertificate
)
from lms.djangoapps.certificates.signals import fire_ungenerated_certificate_task, CERTIFICATE_DELAY_SECONDS
from lms.djangoapps.certificates.signals import CERTIFICATE_DELAY_SECONDS, fire_ungenerated_certificate_task
from lms.djangoapps.grades.course_grade_factory import CourseGradeFactory
from lms.djangoapps.grades.tests.utils import mock_passing_grade
from lms.djangoapps.verify_student.models import IDVerificationAttempt, SoftwareSecurePhotoVerification
@@ -95,8 +98,8 @@ class WhitelistGeneratedCertificatesTest(ModuleStoreTestCase):
mock_generate_certificate_apply_async.assert_called_with(
countdown=CERTIFICATE_DELAY_SECONDS,
kwargs={
'student': unicode(self.user.id),
'course_key': unicode(self.course.id),
'student': six.text_type(self.user.id),
'course_key': six.text_type(self.course.id),
}
)
@@ -123,8 +126,8 @@ class WhitelistGeneratedCertificatesTest(ModuleStoreTestCase):
mock_generate_certificate_apply_async.assert_called_with(
countdown=CERTIFICATE_DELAY_SECONDS,
kwargs={
'student': unicode(self.user.id),
'course_key': unicode(self.ip_course.id),
'student': six.text_type(self.user.id),
'course_key': six.text_type(self.ip_course.id),
}
)
@@ -175,8 +178,8 @@ class PassingGradeCertsTest(ModuleStoreTestCase):
mock_generate_certificate_apply_async.assert_called_with(
countdown=CERTIFICATE_DELAY_SECONDS,
kwargs={
'student': unicode(self.user.id),
'course_key': unicode(self.course.id),
'student': six.text_type(self.user.id),
'course_key': six.text_type(self.course.id),
}
)
@@ -196,8 +199,8 @@ class PassingGradeCertsTest(ModuleStoreTestCase):
mock_generate_certificate_apply_async.assert_called_with(
countdown=CERTIFICATE_DELAY_SECONDS,
kwargs={
'student': unicode(self.user.id),
'course_key': unicode(self.ip_course.id),
'student': six.text_type(self.user.id),
'course_key': six.text_type(self.ip_course.id),
}
)
@@ -319,8 +322,8 @@ class LearnerTrackChangeCertsTest(ModuleStoreTestCase):
mock_generate_certificate_apply_async.assert_called_with(
countdown=CERTIFICATE_DELAY_SECONDS,
kwargs={
'student': unicode(self.user_one.id),
'course_key': unicode(self.course_one.id),
'student': six.text_type(self.user_one.id),
'course_key': six.text_type(self.course_one.id),
'expected_verification_status': IDVerificationAttempt.STATUS.approved,
}
)
@@ -340,8 +343,8 @@ class LearnerTrackChangeCertsTest(ModuleStoreTestCase):
mock_generate_certificate_apply_async.assert_called_with(
countdown=CERTIFICATE_DELAY_SECONDS,
kwargs={
'student': unicode(self.user_two.id),
'course_key': unicode(self.course_two.id),
'student': six.text_type(self.user_two.id),
'course_key': six.text_type(self.course_two.id),
'expected_verification_status': IDVerificationAttempt.STATUS.approved,
}
)

View File

@@ -2,12 +2,15 @@
Tests for certificate app views used by the support team.
"""
from __future__ import absolute_import
import json
import ddt
import six
from django.conf import settings
from django.urls import reverse
from django.test.utils import override_settings
from django.urls import reverse
from opaque_keys.edx.keys import CourseKey
from lms.djangoapps.certificates.models import CertificateInvalidation, CertificateStatuses, GeneratedCertificate
@@ -157,8 +160,10 @@ class CertificateSearchTests(CertificateSupportTestCase):
("bar@example.com", False),
("", False),
(CertificateSupportTestCase.STUDENT_USERNAME, False, 'invalid_key'),
(CertificateSupportTestCase.STUDENT_USERNAME, False, unicode(CertificateSupportTestCase.COURSE_NOT_EXIST_KEY)),
(CertificateSupportTestCase.STUDENT_USERNAME, True, unicode(CertificateSupportTestCase.EXISTED_COURSE_KEY_1)),
(CertificateSupportTestCase.STUDENT_USERNAME, False,
six.text_type(CertificateSupportTestCase.COURSE_NOT_EXIST_KEY)),
(CertificateSupportTestCase.STUDENT_USERNAME, True,
six.text_type(CertificateSupportTestCase.EXISTED_COURSE_KEY_1)),
)
@ddt.unpack
def test_search(self, user_filter, expect_result, course_filter=None):
@@ -194,10 +199,10 @@ class CertificateSearchTests(CertificateSupportTestCase):
retrieved_cert = results[0]
self.assertEqual(retrieved_cert["username"], self.STUDENT_USERNAME)
self.assertEqual(retrieved_cert["course_key"], unicode(self.CERT_COURSE_KEY))
self.assertEqual(retrieved_cert["course_key"], six.text_type(self.CERT_COURSE_KEY))
self.assertEqual(retrieved_cert["created"], self.cert.created_date.isoformat())
self.assertEqual(retrieved_cert["modified"], self.cert.modified_date.isoformat())
self.assertEqual(retrieved_cert["grade"], unicode(self.CERT_GRADE))
self.assertEqual(retrieved_cert["grade"], six.text_type(self.CERT_GRADE))
self.assertEqual(retrieved_cert["status"], self.CERT_STATUS)
self.assertEqual(retrieved_cert["type"], self.CERT_MODE)
self.assertEqual(retrieved_cert["download_url"], self.CERT_DOWNLOAD_URL)
@@ -305,7 +310,7 @@ class CertificateRegenerateTests(CertificateSupportTestCase):
def test_regenerate_no_such_user(self):
response = self._regenerate(
course_key=unicode(self.CERT_COURSE_KEY),
course_key=six.text_type(self.CERT_COURSE_KEY),
username="invalid_username",
)
self.assertEqual(response.status_code, 400)
@@ -481,7 +486,7 @@ class CertificateGenerateTests(CertificateSupportTestCase):
def test_generate_no_such_user(self):
response = self._generate(
course_key=unicode(self.EXISTED_COURSE_KEY_2),
course_key=six.text_type(self.EXISTED_COURSE_KEY_2),
username="invalid_username",
)
self.assertEqual(response.status_code, 400)

View File

@@ -1,3 +1,9 @@
"""
Test module for user certificate generation.
"""
from __future__ import absolute_import
import ddt
from django.test import TestCase
from mock import call, patch

View File

@@ -1,16 +1,20 @@
"""Tests for certificates views. """
from __future__ import absolute_import
import datetime
import json
from uuid import uuid4
import ddt
import datetime
import six
from django.conf import settings
from django.core.cache import cache
from django.urls import reverse
from django.test.client import Client
from django.test.utils import override_settings
from django.urls import reverse
from opaque_keys.edx.locator import CourseLocator
from six.moves import range
from lms.djangoapps.certificates.api import get_certificate_url
from lms.djangoapps.certificates.models import (
@@ -255,7 +259,7 @@ class CertificatesViewsSiteTests(ModuleStoreTestCase):
'organization': 'Signatory_Organization ' + str(i),
'signature_image_path': '/static/certificates/images/demo-sig{}.png'.format(i),
'id': i,
} for i in xrange(signatory_count)
} for i in range(signatory_count)
]
@@ -268,7 +272,7 @@ class CertificatesViewsSiteTests(ModuleStoreTestCase):
'signatories': signatories,
'version': 1,
'is_active': is_active
} for i in xrange(count)
} for i in range(count)
]
self.course.certificates = {'certificates': certificates}
@@ -281,7 +285,7 @@ class CertificatesViewsSiteTests(ModuleStoreTestCase):
def test_html_view_for_site(self):
test_url = get_certificate_url(
user_id=self.user.id,
course_id=unicode(self.course.id)
course_id=six.text_type(self.course.id)
)
self._add_course_certificates(count=1, signatory_count=2)
response = self.client.get(test_url)
@@ -293,7 +297,7 @@ class CertificatesViewsSiteTests(ModuleStoreTestCase):
def test_html_view_site_configuration_missing(self):
test_url = get_certificate_url(
user_id=self.user.id,
course_id=unicode(self.course.id)
course_id=six.text_type(self.course.id)
)
self._add_course_certificates(count=1, signatory_count=2)
response = self.client.get(test_url)

View File

@@ -1,12 +1,16 @@
"""
Tests for the certificates models.
"""
from __future__ import absolute_import
from datetime import datetime, timedelta
import six
from ddt import data, ddt, unpack
from pytz import UTC
from django.conf import settings
from milestones.tests.utils import MilestonesTestCaseMixin
from mock import patch
from pytz import UTC
from badges.tests.factories import CourseCompleteImageConfigurationFactory
from lms.djangoapps.certificates.models import (
@@ -194,9 +198,9 @@ class CertificatesModelTest(ModuleStoreTestCase, MilestonesTestCaseMixin):
course = CourseFactory.create(org='edx', number='998', display_name='Test Course')
pre_requisite_course = CourseFactory.create(org='edx', number='999', display_name='Pre requisite Course')
# set pre-requisite course
set_prerequisite_courses(course.id, [unicode(pre_requisite_course.id)])
set_prerequisite_courses(course.id, [six.text_type(pre_requisite_course.id)])
# get milestones collected by user before completing the pre-requisite course
completed_milestones = milestones_achieved_by_user(student, unicode(pre_requisite_course.id))
completed_milestones = milestones_achieved_by_user(student, six.text_type(pre_requisite_course.id))
self.assertEqual(len(completed_milestones), 0)
GeneratedCertificateFactory.create(
@@ -206,9 +210,9 @@ class CertificatesModelTest(ModuleStoreTestCase, MilestonesTestCaseMixin):
mode='verified'
)
# get milestones collected by user after user has completed the pre-requisite course
completed_milestones = milestones_achieved_by_user(student, unicode(pre_requisite_course.id))
completed_milestones = milestones_achieved_by_user(student, six.text_type(pre_requisite_course.id))
self.assertEqual(len(completed_milestones), 1)
self.assertEqual(completed_milestones[0]['namespace'], unicode(pre_requisite_course.id))
self.assertEqual(completed_milestones[0]['namespace'], six.text_type(pre_requisite_course.id))
@patch.dict(settings.FEATURES, {'ENABLE_OPENBADGES': True})
@patch('badges.backends.badgr.BadgrBackend', spec=True)