Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
ecommerce
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
ecommerce
Commits
054fdb8d
Commit
054fdb8d
authored
May 23, 2018
by
Christopher Lee
Committed by
christopher lee
May 29, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Declare deprecation of traverse_pagination method
parent
aad11982
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
16 additions
and
9 deletions
+16
-9
ecommerce/core/utils.py
+8
-1
ecommerce/courses/utils.py
+2
-2
ecommerce/enterprise/utils.py
+2
-2
ecommerce/extensions/order/management/commands/create_fake_orders.py
+0
-1
ecommerce/programs/conditions.py
+3
-2
ecommerce/programs/tests/test_conditions.py
+1
-1
No files found.
ecommerce/core/utils.py
View file @
054fdb8d
...
@@ -5,6 +5,7 @@ import logging
...
@@ -5,6 +5,7 @@ import logging
from
urlparse
import
parse_qs
,
urlparse
from
urlparse
import
parse_qs
,
urlparse
import
six
import
six
import
waffle
from
django.core.exceptions
import
ValidationError
from
django.core.exceptions
import
ValidationError
logger
=
logging
.
getLogger
(
__name__
)
logger
=
logging
.
getLogger
(
__name__
)
...
@@ -48,10 +49,13 @@ def get_cache_key(**kwargs):
...
@@ -48,10 +49,13 @@ def get_cache_key(**kwargs):
return
hashlib
.
md5
(
key
)
.
hexdigest
()
return
hashlib
.
md5
(
key
)
.
hexdigest
()
def
traverse_pagination
(
response
,
endpoint
):
def
deprecated_
traverse_pagination
(
response
,
endpoint
):
"""
"""
Traverse a paginated API response.
Traverse a paginated API response.
Note: This method should be deprecated since it defeats the purpose
of pagination.
Extracts and concatenates "results" (list of dict) returned by DRF-powered
Extracts and concatenates "results" (list of dict) returned by DRF-powered
APIs.
APIs.
...
@@ -63,6 +67,9 @@ def traverse_pagination(response, endpoint):
...
@@ -63,6 +67,9 @@ def traverse_pagination(response, endpoint):
list of dict.
list of dict.
"""
"""
if
waffle
.
switch_is_active
(
"debug_logging_for_deprecated_traverse_pagination"
):
# pragma: no cover
logger
.
info
(
"deprecated_traverse_pagination method is called for endpoint
%
s"
,
endpoint
)
results
=
response
.
get
(
'results'
,
[])
results
=
response
.
get
(
'results'
,
[])
next_page
=
response
.
get
(
'next'
)
next_page
=
response
.
get
(
'next'
)
...
...
ecommerce/courses/utils.py
View file @
054fdb8d
...
@@ -5,7 +5,7 @@ from django.core.cache import cache
...
@@ -5,7 +5,7 @@ from django.core.cache import cache
from
django.utils.translation
import
ugettext_lazy
as
_
from
django.utils.translation
import
ugettext_lazy
as
_
from
opaque_keys.edx.keys
import
CourseKey
from
opaque_keys.edx.keys
import
CourseKey
from
ecommerce.core.utils
import
traverse_pagination
from
ecommerce.core.utils
import
deprecated_
traverse_pagination
def
mode_for_product
(
product
):
def
mode_for_product
(
product
):
...
@@ -77,7 +77,7 @@ def get_course_catalogs(site, resource_id=None):
...
@@ -77,7 +77,7 @@ def get_course_catalogs(site, resource_id=None):
if
resource_id
:
if
resource_id
:
results
=
response
results
=
response
else
:
else
:
results
=
traverse_pagination
(
response
,
endpoint
)
results
=
deprecated_
traverse_pagination
(
response
,
endpoint
)
cache
.
set
(
cache_key
,
results
,
settings
.
COURSES_API_CACHE_TIMEOUT
)
cache
.
set
(
cache_key
,
results
,
settings
.
COURSES_API_CACHE_TIMEOUT
)
return
results
return
results
...
...
ecommerce/enterprise/utils.py
View file @
054fdb8d
...
@@ -16,7 +16,7 @@ from oscar.core.loading import get_model
...
@@ -16,7 +16,7 @@ from oscar.core.loading import get_model
from
requests.exceptions
import
ConnectionError
,
Timeout
from
requests.exceptions
import
ConnectionError
,
Timeout
from
slumber.exceptions
import
SlumberHttpBaseException
from
slumber.exceptions
import
SlumberHttpBaseException
from
ecommerce.core.utils
import
traverse_pagination
from
ecommerce.core.utils
import
deprecated_
traverse_pagination
from
ecommerce.enterprise.exceptions
import
EnterpriseDoesNotExist
from
ecommerce.enterprise.exceptions
import
EnterpriseDoesNotExist
from
ecommerce.extensions.offer.models
import
OFFER_PRIORITY_ENTERPRISE
from
ecommerce.extensions.offer.models
import
OFFER_PRIORITY_ENTERPRISE
...
@@ -86,7 +86,7 @@ def get_enterprise_customers(site):
...
@@ -86,7 +86,7 @@ def get_enterprise_customers(site):
'name'
:
each
[
'name'
],
'name'
:
each
[
'name'
],
'id'
:
each
[
'uuid'
],
'id'
:
each
[
'uuid'
],
}
}
for
each
in
traverse_pagination
(
response
,
endpoint
)
for
each
in
deprecated_
traverse_pagination
(
response
,
endpoint
)
],
],
key
=
lambda
k
:
k
[
'name'
]
.
lower
()
key
=
lambda
k
:
k
[
'name'
]
.
lower
()
)
)
...
...
ecommerce/extensions/order/management/commands/create_fake_orders.py
View file @
054fdb8d
...
@@ -7,7 +7,6 @@ from django.db import transaction
...
@@ -7,7 +7,6 @@ from django.db import transaction
from
oscar.core.loading
import
get_class
,
get_model
from
oscar.core.loading
import
get_class
,
get_model
from
oscar.test.factories
import
UserFactory
from
oscar.test.factories
import
UserFactory
logger
=
logging
.
getLogger
(
__name__
)
logger
=
logging
.
getLogger
(
__name__
)
Order
=
get_model
(
'order'
,
'Order'
)
Order
=
get_model
(
'order'
,
'Order'
)
Basket
=
get_model
(
'basket'
,
'Basket'
)
Basket
=
get_model
(
'basket'
,
'Basket'
)
...
...
ecommerce/programs/conditions.py
View file @
054fdb8d
...
@@ -10,7 +10,7 @@ from requests.exceptions import ConnectionError, Timeout
...
@@ -10,7 +10,7 @@ from requests.exceptions import ConnectionError, Timeout
from
slumber.exceptions
import
HttpNotFoundError
,
SlumberBaseException
from
slumber.exceptions
import
HttpNotFoundError
,
SlumberBaseException
from
ecommerce.cache_utils.utils
import
TieredCache
from
ecommerce.cache_utils.utils
import
TieredCache
from
ecommerce.core.utils
import
get_cache_key
,
traverse_pagination
from
ecommerce.core.utils
import
deprecated_traverse_pagination
,
get_cache_key
from
ecommerce.extensions.offer.decorators
import
check_condition_applicability
from
ecommerce.extensions.offer.decorators
import
check_condition_applicability
from
ecommerce.extensions.offer.mixins
import
SingleItemConsumptionConditionMixin
from
ecommerce.extensions.offer.mixins
import
SingleItemConsumptionConditionMixin
from
ecommerce.programs.utils
import
get_program
from
ecommerce.programs.utils
import
get_program
...
@@ -85,7 +85,8 @@ class ProgramCourseRunSeatsCondition(SingleItemConsumptionConditionMixin, Condit
...
@@ -85,7 +85,8 @@ class ProgramCourseRunSeatsCondition(SingleItemConsumptionConditionMixin, Condit
basket
,
'entitlements'
,
site_configuration
.
entitlement_api_client
.
entitlements
basket
,
'entitlements'
,
site_configuration
.
entitlement_api_client
.
entitlements
)
)
if
isinstance
(
response
,
dict
):
if
isinstance
(
response
,
dict
):
entitlements
=
traverse_pagination
(
response
,
site_configuration
.
entitlement_api_client
.
entitlements
)
entitlements
=
deprecated_traverse_pagination
(
response
,
site_configuration
.
entitlement_api_client
.
entitlements
)
else
:
else
:
entitlements
=
response
entitlements
=
response
return
enrollments
,
entitlements
return
enrollments
,
entitlements
...
...
ecommerce/programs/tests/test_conditions.py
View file @
054fdb8d
...
@@ -267,7 +267,7 @@ class ProgramCourseRunSeatsConditionTests(ProgramTestMixin, TestCase):
...
@@ -267,7 +267,7 @@ class ProgramCourseRunSeatsConditionTests(ProgramTestMixin, TestCase):
if
seat
.
attr
.
id_verification_required
:
if
seat
.
attr
.
id_verification_required
:
basket
.
add_product
(
seat
)
basket
.
add_product
(
seat
)
with
mock
.
patch
(
'ecommerce.programs.conditions.traverse_pagination'
)
as
mock_processing_entitlements
:
with
mock
.
patch
(
'ecommerce.programs.conditions.
deprecated_
traverse_pagination'
)
as
mock_processing_entitlements
:
self
.
assertFalse
(
self
.
condition
.
is_satisfied
(
offer
,
basket
))
self
.
assertFalse
(
self
.
condition
.
is_satisfied
(
offer
,
basket
))
mock_processing_entitlements
.
assert_not_called
()
mock_processing_entitlements
.
assert_not_called
()
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment