1) Fix an error in which I wasn't checking properly that the pledge_complete page should allow only the pledging user to see the results.

2) Now tests.campaigntest.support_campaign takes us all the way through pledging for the first campaign
pull/1/head
Raymond Yee 2012-03-19 11:46:41 -07:00
parent 6b4c426a74
commit 744693f178
3 changed files with 21 additions and 10 deletions

View File

@ -467,8 +467,12 @@ should briefly note next steps (e.g. if this campaign succeeds you will be email
try:
if user.id == transaction.user.id:
correct_user = True
else:
# should be 403 -- but let's try 404 for now -- 403 exception coming in Django 1.4
raise Http404
except Exception, e:
pass
raise Http404
# check that the user had not already approved the transaction
# do we need to first run PreapprovalDetails to check on the status

View File

@ -60,7 +60,8 @@ def loginSandbox(selenium):
except:
traceback.print_exc()
def paySandbox(test, selenium, url, authorize=False):
def paySandbox(test, selenium, url, authorize=False, already_at_url=False, sleep_time=20):
if authorize:
print "AUTHORIZE SANDBOX"
@ -69,10 +70,11 @@ def paySandbox(test, selenium, url, authorize=False):
try:
# We need this sleep to make sure the JS engine is finished from the sandbox loging page
time.sleep(20)
time.sleep(sleep_time)
selenium.get(url)
print "Opened URL %s" % url
if not already_at_url:
selenium.get(url)
print "Opened URL %s" % url
try:
# Button is only visible if the login box is NOT open
@ -82,7 +84,7 @@ def paySandbox(test, selenium, url, authorize=False):
# This sleep is needed for js to slide the buyer login into view. The elements are always in the DOM
# so selenium can find them, but we need them in view to interact
time.sleep(20)
time.sleep(sleep_time)
except:
print "Ready for Login"
@ -98,13 +100,13 @@ def paySandbox(test, selenium, url, authorize=False):
submit_button.click()
# This sleep makes sure js has time to animate out the next page
time.sleep(20)
time.sleep(sleep_time)
final_submit = WebDriverWait(selenium, 60).until(lambda d : d.find_element_by_id("submit.x"))
final_submit.click()
# This makes sure the processing of the final submit is complete
time.sleep(20)
time.sleep(sleep_time)
# Don't wait too long for this, it isn't really needed. By the time JS has gotten around to
# displaying this element, the redirect has usually occured

View File

@ -161,12 +161,12 @@ def support_campaign():
PASSWORD = settings.UNGLUEIT_TEST_PASSWORD
# PayPal developer sandbox
from regluit.payment.tests import loginSandbox
from regluit.payment.tests import loginSandbox, paySandbox
setup_selenium()
# we can experiment with different webdrivers
# sel = webdriver.Firefox()
#sel = webdriver.Firefox()
# Chrome
sel = webdriver.Chrome(executable_path='/Users/raymondyee/C/src/Gluejar/regluit/test/chromedriver')
@ -224,6 +224,11 @@ def support_campaign():
pledge_button = WebDriverWait(sel,20).until(lambda d: d.find_element_by_css_selector("input[value*='Pledge']"))
pledge_button.click()
# grab the URL where sel is now?
print "Now trying to pay PayPal", sel.current_url
paySandbox(None, sel, sel.current_url, authorize=True, already_at_url=True, sleep_time=5)
#sel.quit()