Commit b98bfc7f by Ivan Ivic Committed by GitHub

Merge pull request #879 from edx/iivic/SOL-1981

Fix Coupon Acceptance Tests
parents d89b1f0b 15bfdf52
from datetime import date from datetime import date
CODE = 'ABCD'
# cybersource data # cybersource data
CYBERSOURCE_DATA1 = { CYBERSOURCE_DATA1 = {
'country': 'US', 'country': 'US',
......
...@@ -8,8 +8,8 @@ from selenium.webdriver.support import expected_conditions as EC ...@@ -8,8 +8,8 @@ from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.select import Select from selenium.webdriver.support.select import Select
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support.ui import WebDriverWait
from acceptance_tests.config import VERIFIED_COURSE_ID from acceptance_tests.config import ECOMMERCE_URL_ROOT, VERIFIED_COURSE_ID
from acceptance_tests.constants import DEFAULT_END_DATE, DEFAULT_START_DATE from acceptance_tests.constants import CODE, DEFAULT_END_DATE, DEFAULT_START_DATE
from acceptance_tests.expected_conditions import option_selected from acceptance_tests.expected_conditions import option_selected
from acceptance_tests.pages.ecommerce import EcommerceAppPage from acceptance_tests.pages.ecommerce import EcommerceAppPage
...@@ -64,15 +64,19 @@ class CouponsCreatePage(EcommerceAppPage): ...@@ -64,15 +64,19 @@ class CouponsCreatePage(EcommerceAppPage):
verified_option_selected = option_selected(select, 'Verified') verified_option_selected = option_selected(select, 'Verified')
wait.until(verified_option_selected) wait.until(verified_option_selected)
if is_discount: select = Select(self.browser.find_element_by_css_selector('select[name="code_type"]'))
select = Select(self.browser.find_element_by_css_selector('select[name="code_type"]')) select.select_by_value('Discount code')
select.select_by_value('Discount code')
wait = WebDriverWait(self.browser, 2)
benefit_input_present = EC.presence_of_element_located((By.CSS_SELECTOR, 'input[name="benefit_value"]'))
wait.until(benefit_input_present)
wait = WebDriverWait(self.browser, 2) self.q(css="input[name='code']").fill(CODE)
benefit_input_present = EC.presence_of_element_located((By.CSS_SELECTOR, 'input[name="benefit_value"]'))
wait.until(benefit_input_present)
if is_discount:
self.q(css="input[name='benefit_value']").fill('50') self.q(css="input[name='benefit_value']").fill('50')
else:
self.q(css="input[name='benefit_value']").fill('100')
self.q(css="input[name='invoice_number']").fill('1001') self.q(css="input[name='invoice_number']").fill('1001')
self.q(css="input[name='invoice_payment_date']").fill(str(DEFAULT_END_DATE)) self.q(css="input[name='invoice_payment_date']").fill(str(DEFAULT_END_DATE))
...@@ -97,8 +101,8 @@ class CouponsDetailsPage(EcommerceAppPage): ...@@ -97,8 +101,8 @@ class CouponsDetailsPage(EcommerceAppPage):
return self.browser.title.endswith('- View Coupon') return self.browser.title.endswith('- View Coupon')
@wait_for_js @wait_for_js
def get_redeem_url(self): def get_redeem_url(self, code):
return self.q(css='table#vouchersTable tbody tr td')[1].text return '{}/coupons/offer/?code={}'.format(ECOMMERCE_URL_ROOT, code)
@wait_for_js @wait_for_js
def go_to_edit_coupon_form_page(self): def go_to_edit_coupon_form_page(self):
......
...@@ -4,7 +4,7 @@ import ddt ...@@ -4,7 +4,7 @@ import ddt
from bok_choy.web_app_test import WebAppTest from bok_choy.web_app_test import WebAppTest
from acceptance_tests.config import VERIFIED_COURSE_ID, ENABLE_CYBERSOURCE_TESTS from acceptance_tests.config import VERIFIED_COURSE_ID, ENABLE_CYBERSOURCE_TESTS
from acceptance_tests.constants import CYBERSOURCE_DATA1, CYBERSOURCE_DATA2 from acceptance_tests.constants import CODE, CYBERSOURCE_DATA1, CYBERSOURCE_DATA2
from acceptance_tests.mixins import (CouponMixin, EcommerceApiMixin, EnrollmentApiMixin, from acceptance_tests.mixins import (CouponMixin, EcommerceApiMixin, EnrollmentApiMixin,
LogistrationMixin, UnenrollmentMixin, PaymentMixin) LogistrationMixin, UnenrollmentMixin, PaymentMixin)
from acceptance_tests.pages.basket import BasketPage from acceptance_tests.pages.basket import BasketPage
...@@ -35,7 +35,7 @@ class CouponCheckoutTests(CouponMixin, UnenrollmentMixin, EcommerceApiMixin, Enr ...@@ -35,7 +35,7 @@ class CouponCheckoutTests(CouponMixin, UnenrollmentMixin, EcommerceApiMixin, Enr
self.prepare_coupon(is_discount) self.prepare_coupon(is_discount)
# Get the redeem URL for the coupon's detail page and go to it. # Get the redeem URL for the coupon's detail page and go to it.
redeem_url = self.coupons_details_page.get_redeem_url() redeem_url = self.coupons_details_page.get_redeem_url(CODE)
self.browser.get(redeem_url) self.browser.get(redeem_url)
self.assertTrue(self.redeem_voucher_page.is_browser_on_page()) self.assertTrue(self.redeem_voucher_page.is_browser_on_page())
......
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
</p> </p>
</div> </div>
<div class="pull-right"> <div class="pull-right">
<% if (course.isEnrollmentCode) { %> <% if (isEnrollmentCode) { %>
<a href="/coupons/redeem/?code=<%= code %>&sku=<%= course.attributes.stockrecords.partner_sku %>" <a href="/coupons/redeem/?code=<%= code %>&sku=<%= course.attributes.stockrecords.partner_sku %>"
id="RedeemEnrollment" id="RedeemEnrollment"
class="btn btn-success"><%- gettext('Enroll Now') %></a> class="btn btn-success"><%- gettext('Enroll Now') %></a>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment