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
844f93cf
Commit
844f93cf
authored
Jan 26, 2017
by
Marko Jevtic
Committed by
Marko Jevtić
Jan 30, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[SOL-2165] Fix voucher remove error
parent
911eb125
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
46 additions
and
2 deletions
+46
-2
ecommerce/extensions/basket/app.py
+1
-0
ecommerce/extensions/basket/tests/test_views.py
+37
-2
ecommerce/extensions/basket/views.py
+8
-0
No files found.
ecommerce/extensions/basket/app.py
View file @
844f93cf
...
@@ -6,6 +6,7 @@ from oscar.core.loading import get_class
...
@@ -6,6 +6,7 @@ from oscar.core.loading import get_class
class
BasketApplication
(
app
.
BasketApplication
):
class
BasketApplication
(
app
.
BasketApplication
):
add_voucher_view
=
get_class
(
'basket.views'
,
'VoucherAddMessagesView'
)
add_voucher_view
=
get_class
(
'basket.views'
,
'VoucherAddMessagesView'
)
remove_voucher_view
=
get_class
(
'basket.views'
,
'VoucherRemoveMessagesView'
)
single_item_view
=
get_class
(
'basket.views'
,
'BasketSingleItemView'
)
single_item_view
=
get_class
(
'basket.views'
,
'BasketSingleItemView'
)
summary_view
=
get_class
(
'basket.views'
,
'BasketSummaryView'
)
summary_view
=
get_class
(
'basket.views'
,
'BasketSummaryView'
)
...
...
ecommerce/extensions/basket/tests/test_views.py
View file @
844f93cf
...
@@ -30,7 +30,7 @@ from ecommerce.core.url_utils import get_lms_url
...
@@ -30,7 +30,7 @@ from ecommerce.core.url_utils import get_lms_url
from
ecommerce.coupons.tests.mixins
import
CouponMixin
,
CourseCatalogMockMixin
from
ecommerce.coupons.tests.mixins
import
CouponMixin
,
CourseCatalogMockMixin
from
ecommerce.courses.tests.factories
import
CourseFactory
from
ecommerce.courses.tests.factories
import
CourseFactory
from
ecommerce.extensions.basket.utils
import
get_basket_switch_data
from
ecommerce.extensions.basket.utils
import
get_basket_switch_data
from
ecommerce.extensions.basket.views
import
VoucherAddMessagesView
from
ecommerce.extensions.basket.views
import
VoucherAddMessagesView
,
VoucherRemoveMessagesView
from
ecommerce.extensions.catalogue.tests.mixins
import
CourseCatalogTestMixin
from
ecommerce.extensions.catalogue.tests.mixins
import
CourseCatalogTestMixin
from
ecommerce.extensions.offer.utils
import
format_benefit_value
from
ecommerce.extensions.offer.utils
import
format_benefit_value
from
ecommerce.extensions.payment.constants
import
CLIENT_SIDE_CHECKOUT_FLAG_NAME
from
ecommerce.extensions.payment.constants
import
CLIENT_SIDE_CHECKOUT_FLAG_NAME
...
@@ -544,7 +544,7 @@ class VoucherAddMessagesViewTests(TestCase):
...
@@ -544,7 +544,7 @@ class VoucherAddMessagesViewTests(TestCase):
self
.
voucher_add_view
.
request
=
self
.
request
self
.
voucher_add_view
.
request
=
self
.
request
self
.
voucher_add_view
.
form_valid
(
self
.
form
)
self
.
voucher_add_view
.
form_valid
(
self
.
form
)
request_message
=
self
.
get_error_message_from_request
()
request_message
=
self
.
get_error_message_from_request
()
self
.
assertEqual
(
request_message
,
message
)
self
.
assertEqual
(
str
(
request_message
)
,
message
)
def
test_no_voucher_error_msg
(
self
):
def
test_no_voucher_error_msg
(
self
):
""" Verify correct error message is returned when voucher can't be found. """
""" Verify correct error message is returned when voucher can't be found. """
...
@@ -587,3 +587,38 @@ class VoucherAddMessagesViewTests(TestCase):
...
@@ -587,3 +587,38 @@ class VoucherAddMessagesViewTests(TestCase):
order
=
factories
.
OrderFactory
()
order
=
factories
.
OrderFactory
()
VoucherApplication
.
objects
.
create
(
voucher
=
voucher
,
user
=
self
.
user
,
order
=
order
)
VoucherApplication
.
objects
.
create
(
voucher
=
voucher
,
user
=
self
.
user
,
order
=
order
)
self
.
assertMessage
(
_
(
"Coupon code '{code}' is invalid."
)
.
format
(
code
=
COUPON_CODE
))
self
.
assertMessage
(
_
(
"Coupon code '{code}' is invalid."
)
.
format
(
code
=
COUPON_CODE
))
class
VoucherRemoveMessagesViewTests
(
CouponMixin
,
CourseCatalogTestMixin
,
TestCase
):
""" VoucherRemoveMessagesView view tests. """
def
setUp
(
self
):
super
(
VoucherRemoveMessagesViewTests
,
self
)
.
setUp
()
self
.
user
=
self
.
create_user
()
self
.
client
.
login
(
username
=
self
.
user
.
username
,
password
=
self
.
password
)
self
.
course
=
CourseFactory
()
self
.
course
.
create_or_update_seat
(
'verified'
,
True
,
50
,
self
.
partner
)
self
.
product
=
self
.
course
.
create_or_update_seat
(
'verified'
,
False
,
0
,
self
.
partner
)
self
.
voucher
,
__
=
prepare_voucher
(
code
=
COUPON_CODE
)
self
.
request
=
RequestFactory
()
.
request
()
# Fallback storage is needed in tests with messages
setattr
(
self
.
request
,
'session'
,
'session'
)
messages
=
FallbackStorage
(
self
.
request
)
setattr
(
self
.
request
,
'_messages'
,
messages
)
self
.
request
.
user
=
self
.
user
basket
=
factories
.
BasketFactory
(
owner
=
self
.
user
,
site
=
self
.
site
)
basket
.
add_product
(
self
.
product
,
1
)
self
.
request
.
basket
=
basket
self
.
voucher_remove_view
=
VoucherRemoveMessagesView
()
def
test_remove_voucher_pk_conversion
(
self
):
""" Verify that voucher primary key is converted to integer """
self
.
voucher_remove_view
.
post
(
self
.
request
,
pk
=
self
.
voucher
.
id
)
request_message
=
list
(
get_messages
(
self
.
request
))[
-
1
]
.
message
self
.
assertEqual
(
str
(
request_message
),
"No voucher found with id '{0}'"
.
format
(
self
.
voucher
.
id
)
)
ecommerce/extensions/basket/views.py
View file @
844f93cf
...
@@ -333,3 +333,11 @@ class VoucherAddMessagesView(VoucherAddView):
...
@@ -333,3 +333,11 @@ class VoucherAddMessagesView(VoucherAddView):
)
)
return
redirect_to_referrer
(
self
.
request
,
'basket:summary'
)
return
redirect_to_referrer
(
self
.
request
,
'basket:summary'
)
class
VoucherRemoveMessagesView
(
VoucherRemoveView
):
def
post
(
self
,
request
,
*
args
,
**
kwargs
):
# This will fix the bug in Django Oscar
# Expected Primary Key to be integer, but it's Unicode instead
kwargs
[
'pk'
]
=
int
(
kwargs
[
'pk'
])
return
super
(
VoucherRemoveMessagesView
,
self
)
.
post
(
request
,
*
args
,
**
kwargs
)
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