Merge pull request #12543 from edx/waheed/ecom-2361-complete-order-history-for-students
Complete Order History tab for students on account settings page
This commit is contained in:
64
common/djangoapps/terrain/stubs/ecommerce.py
Normal file
64
common/djangoapps/terrain/stubs/ecommerce.py
Normal file
@@ -0,0 +1,64 @@
|
||||
"""
|
||||
Stub implementation of ecommerce service for acceptance tests
|
||||
"""
|
||||
|
||||
import re
|
||||
import urlparse
|
||||
from .http import StubHttpRequestHandler, StubHttpService
|
||||
|
||||
|
||||
class StubEcommerceServiceHandler(StubHttpRequestHandler): # pylint: disable=missing-docstring
|
||||
|
||||
def do_GET(self): # pylint: disable=invalid-name, missing-docstring
|
||||
pattern_handlers = {
|
||||
'/api/v2/orders/$': self.get_orders_list,
|
||||
}
|
||||
if self.match_pattern(pattern_handlers):
|
||||
return
|
||||
self.send_response(404, content='404 Not Found')
|
||||
|
||||
def match_pattern(self, pattern_handlers):
|
||||
"""
|
||||
Find the correct handler method given the path info from the HTTP request.
|
||||
"""
|
||||
path = urlparse.urlparse(self.path).path
|
||||
for pattern in pattern_handlers:
|
||||
match = re.match(pattern, path)
|
||||
if match:
|
||||
pattern_handlers[pattern](**match.groupdict())
|
||||
return True
|
||||
return None
|
||||
|
||||
def get_orders_list(self):
|
||||
"""
|
||||
Stubs the orders list endpoint.
|
||||
"""
|
||||
orders = {
|
||||
'results': [
|
||||
{
|
||||
'status': 'Complete',
|
||||
'number': 'Edx-123',
|
||||
'total_excl_tax': '100.0',
|
||||
'date_placed': '2016-04-21T23:14:23Z',
|
||||
'lines': [
|
||||
{
|
||||
'title': 'Test Course',
|
||||
'product': {
|
||||
'attribute_values': [
|
||||
{
|
||||
'name': 'certificate_type',
|
||||
'value': 'verified'
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
}
|
||||
]
|
||||
}
|
||||
orders = self.server.config.get('orders', orders)
|
||||
self.send_json_response(orders)
|
||||
|
||||
|
||||
class StubEcommerceService(StubHttpService): # pylint: disable=missing-docstring
|
||||
HANDLER_CLASS = StubEcommerceServiceHandler
|
||||
@@ -4,7 +4,9 @@ Command-line utility to start a stub service.
|
||||
import sys
|
||||
import time
|
||||
import logging
|
||||
|
||||
from .comments import StubCommentsService
|
||||
from .ecommerce import StubEcommerceService
|
||||
from .xqueue import StubXQueueService
|
||||
from .youtube import StubYouTubeService
|
||||
from .lti import StubLtiService
|
||||
@@ -23,6 +25,7 @@ SERVICES = {
|
||||
'video': VideoSourceHttpService,
|
||||
'edxnotes': StubEdxNotesService,
|
||||
'programs': StubProgramsService,
|
||||
'ecommerce': StubEcommerceService,
|
||||
}
|
||||
|
||||
# Log to stdout, including debug messages
|
||||
|
||||
@@ -13,10 +13,12 @@ from django.contrib.sessions.backends import cache
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.test import utils as django_utils
|
||||
from django.conf import settings as django_settings
|
||||
from edxmako.tests import mako_middleware_process_request
|
||||
from social import actions, exceptions
|
||||
from social.apps.django_app import utils as social_utils
|
||||
from social.apps.django_app import views as social_views
|
||||
|
||||
from edxmako.tests import mako_middleware_process_request
|
||||
from lms.djangoapps.commerce.tests import TEST_API_URL, TEST_API_SIGNING_KEY
|
||||
from student import models as student_models
|
||||
from student import views as student_views
|
||||
from student.tests.factories import UserFactory
|
||||
@@ -898,7 +900,9 @@ class IntegrationTest(testutil.TestCase, test.TestCase):
|
||||
strategy.request.backend.auth_complete = mock.MagicMock(return_value=self.fake_auth_complete(strategy))
|
||||
|
||||
|
||||
class Oauth2IntegrationTest(IntegrationTest): # pylint: disable=abstract-method
|
||||
# pylint: disable=test-inherits-tests, abstract-method
|
||||
@django_utils.override_settings(ECOMMERCE_API_URL=TEST_API_URL, ECOMMERCE_API_SIGNING_KEY=TEST_API_SIGNING_KEY)
|
||||
class Oauth2IntegrationTest(IntegrationTest):
|
||||
"""Base test case for integration tests of Oauth2 providers."""
|
||||
|
||||
# Dict of string -> object. Information about the token granted to the
|
||||
|
||||
Reference in New Issue
Block a user