Update 'certificate_url' field for view certificate on learner dashboard.

ECOM-3281
This commit is contained in:
Tasawer
2016-01-11 14:55:42 +05:00
committed by Ahsan Ulhaq
parent 70eaf18936
commit 394601f301
5 changed files with 25 additions and 25 deletions

View File

@@ -41,7 +41,8 @@ class CredentialsDataMixin(object):
"program_id": 1
},
"status": "awarded",
"uuid": "dummy-uuid-1"
"uuid": "dummy-uuid-1",
"certificate_url": "http://credentials.edx.org/credentials/dummy-uuid-1/"
},
{
"id": 2,
@@ -51,7 +52,8 @@ class CredentialsDataMixin(object):
"program_id": 2
},
"status": "awarded",
"uuid": "dummy-uuid-2"
"uuid": "dummy-uuid-2",
"certificate_url": "http://credentials.edx.org/credentials/dummy-uuid-2/"
},
{
"id": 3,
@@ -61,7 +63,8 @@ class CredentialsDataMixin(object):
"program_id": 3
},
"status": "revoked",
"uuid": "dummy-uuid-3"
"uuid": "dummy-uuid-3",
"certificate_url": "http://credentials.edx.org/credentials/dummy-uuid-3/"
},
{
"id": 4,
@@ -72,7 +75,8 @@ class CredentialsDataMixin(object):
"certificate_type": "honor"
},
"status": "awarded",
"uuid": "dummy-uuid-4"
"uuid": "dummy-uuid-4",
"certificate_url": "http://credentials.edx.org/credentials/dummy-uuid-4/"
},
{
"id": 5,
@@ -83,7 +87,8 @@ class CredentialsDataMixin(object):
"certificate_type": "verified"
},
"status": "awarded",
"uuid": "dummy-uuid-5"
"uuid": "dummy-uuid-5",
"certificate_url": "http://credentials.edx.org/credentials/dummy-uuid-5/"
},
{
"id": 6,
@@ -94,7 +99,8 @@ class CredentialsDataMixin(object):
"certificate_type": "honor"
},
"status": "revoked",
"uuid": "dummy-uuid-6"
"uuid": "dummy-uuid-6",
"certificate_url": "http://credentials.edx.org/credentials/dummy-uuid-6/"
}
]
}
@@ -110,7 +116,8 @@ class CredentialsDataMixin(object):
"program_id": 7
},
"status": "awarded",
"uuid": "dummy-uuid-7"
"uuid": "dummy-uuid-7",
"certificate_url": "http://credentials.edx.org/credentials/dummy-uuid-7"
},
{
"id": 8,
@@ -120,7 +127,8 @@ class CredentialsDataMixin(object):
"program_id": 8
},
"status": "awarded",
"uuid": "dummy-uuid-8"
"uuid": "dummy-uuid-8",
"certificate_url": "http://credentials.edx.org/credentials/dummy-uuid-8/"
}
]
}

View File

@@ -80,7 +80,7 @@ class TestCredentialsRetrieval(ProgramsApiConfigMixin, CredentialsApiConfigMixin
def test_get_user_programs_credentials(self):
"""Verify program credentials data can be retrieved and parsed correctly."""
# create credentials and program configuration
credentials_config = self.create_credentials_config()
self.create_credentials_config()
self.create_programs_config()
# Mocking the API responses from programs and credentials
@@ -89,10 +89,6 @@ class TestCredentialsRetrieval(ProgramsApiConfigMixin, CredentialsApiConfigMixin
actual = get_user_program_credentials(self.user)
expected = self.PROGRAMS_API_RESPONSE['results']
expected[0]['credential_url'] = \
credentials_config.public_service_url + 'credentials/' + self.PROGRAMS_CREDENTIALS_DATA[0]['uuid']
expected[1]['credential_url'] = \
credentials_config.public_service_url + 'credentials/' + self.PROGRAMS_CREDENTIALS_DATA[1]['uuid']
# checking response from API is as expected
self.assertEqual(len(actual), 2)

View File

@@ -57,6 +57,7 @@ class ProgramsDataMixin(object):
'category': 'xseries',
'status': 'unpublished',
'marketing_slug': '',
'credential_url': 'http://credentials.edx.org/credentials/dummy-uuid-1/',
'organizations': [
{
'display_name': 'Test Organization A',
@@ -123,6 +124,7 @@ class ProgramsDataMixin(object):
'category': 'xseries',
'status': 'unpublished',
'marketing_slug': '',
'credential_url': 'http://credentials.edx.org/credentials/dummy-uuid-2/',
'organizations': [
{
'display_name': 'Test Organization B',
@@ -194,7 +196,8 @@ class ProgramsDataMixin(object):
"program_id": 1
},
"status": "awarded",
"uuid": "dummy-uuid-1"
"uuid": "dummy-uuid-1",
"certificate_url": "http://credentials.edx.org/credentials/dummy-uuid-1/"
},
{
"id": 2,
@@ -204,7 +207,8 @@ class ProgramsDataMixin(object):
"program_id": 2
},
"status": "awarded",
"uuid": "dummy-uuid-2"
"uuid": "dummy-uuid-2",
"certificate_url": "http://credentials.edx.org/credentials/dummy-uuid-2/"
}
]

View File

@@ -137,15 +137,11 @@ class TestProgramRetrieval(ProgramsApiConfigMixin, ProgramsDataMixin,
def test_get_program_for_certificates(self):
"""Verify programs data can be retrieved and parsed correctly for certificates."""
self.create_programs_config()
credentials_config = self.create_credentials_config()
self.mock_programs_api()
actual = get_programs_for_credentials(self.user, self.PROGRAMS_CREDENTIALS_DATA)
expected = self.PROGRAMS_API_RESPONSE['results']
expected[0]['credential_url'] = \
credentials_config.public_service_url + 'credentials/' + self.PROGRAMS_CREDENTIALS_DATA[0]['uuid']
expected[1]['credential_url'] = \
credentials_config.public_service_url + 'credentials/' + self.PROGRAMS_CREDENTIALS_DATA[1]['uuid']
self.assertEqual(len(actual), 2)
self.assertEqual(actual, expected)

View File

@@ -1,8 +1,6 @@
"""Helper functions for working with Programs."""
import logging
from urlparse import urljoin
from openedx.core.djangoapps.credentials.models import CredentialsApiConfig
from openedx.core.djangoapps.programs.models import ProgramsApiConfig
from openedx.core.lib.edx_api_utils import get_edx_api_data
@@ -98,12 +96,10 @@ def get_programs_for_credentials(user, programs_credentials):
log.debug('No programs found for the user with ID %d.', user.id)
return certificate_programs
credential_configuration = CredentialsApiConfig.current()
for program in programs:
for credential in programs_credentials:
if program['id'] == credential['credential']['program_id']:
credentials_url = 'credentials/' + credential['uuid']
program['credential_url'] = urljoin(credential_configuration.public_service_url, credentials_url)
program['credential_url'] = credential['certificate_url']
certificate_programs.append(program)
return certificate_programs