Merge branch 'jkace' of github.com:Gluejar/regluit into fps
Also fixed things so that regluit.test.campaigntest.support_campaign runs for Amazon without error -- though I still need to confirm that the status of transactions properly handled Next up: see whether this works for PayPal too. Conflicts: frontend/views.pypull/1/head
commit
061f656e63
|
@ -49,7 +49,8 @@ from regluit.frontend.forms import EbookForm, CustomPremiumForm, EditManagersFor
|
||||||
from regluit.payment.manager import PaymentManager
|
from regluit.payment.manager import PaymentManager
|
||||||
from regluit.payment.models import Transaction
|
from regluit.payment.models import Transaction
|
||||||
from regluit.payment.parameters import TARGET_TYPE_CAMPAIGN, TARGET_TYPE_DONATION, PAYMENT_TYPE_AUTHORIZATION
|
from regluit.payment.parameters import TARGET_TYPE_CAMPAIGN, TARGET_TYPE_DONATION, PAYMENT_TYPE_AUTHORIZATION
|
||||||
from regluit.payment.paypal import Preapproval, IPN_PAY_STATUS_NONE, IPN_PREAPPROVAL_STATUS_ACTIVE, IPN_PAY_STATUS_INCOMPLETE, IPN_PAY_STATUS_COMPLETED, IPN_PREAPPROVAL_STATUS_CANCELED, IPN_TYPE_PREAPPROVAL
|
from regluit.payment.parameters import TRANSACTION_STATUS_ACTIVE, TRANSACTION_STATUS_COMPLETE_PRIMARY, TRANSACTION_STATUS_CANCELED, TRANSACTION_STATUS_ERROR, TRANSACTION_STATUS_FAILED
|
||||||
|
from regluit.payment.paypal import Preapproval
|
||||||
from regluit.core import goodreads
|
from regluit.core import goodreads
|
||||||
from tastypie.models import ApiKey
|
from tastypie.models import ApiKey
|
||||||
from regluit.payment.models import Transaction
|
from regluit.payment.models import Transaction
|
||||||
|
@ -501,13 +502,10 @@ class PledgeModifyView(FormView):
|
||||||
# Campaign must be ACTIVE
|
# Campaign must be ACTIVE
|
||||||
assert campaign.status == 'ACTIVE'
|
assert campaign.status == 'ACTIVE'
|
||||||
|
|
||||||
# PayPal
|
transactions = campaign.transactions().filter(user=user, status=TRANSACTION_STATUS_ACTIVE)
|
||||||
#transactions = campaign.transactions().filter(user=user, status=IPN_PREAPPROVAL_STATUS_ACTIVE)
|
|
||||||
# Amazon
|
|
||||||
transactions = campaign.transactions().filter(user=user, status=IPN_PREAPPROVAL_STATUS_ACTIVE)
|
|
||||||
assert transactions.count() == 1
|
assert transactions.count() == 1
|
||||||
transaction = transactions[0]
|
transaction = transactions[0]
|
||||||
assert transaction.type == PAYMENT_TYPE_AUTHORIZATION and transaction.status == IPN_PREAPPROVAL_STATUS_ACTIVE
|
assert transaction.type == PAYMENT_TYPE_AUTHORIZATION and transaction.status == TRANSACTION_STATUS_ACTIVE
|
||||||
|
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
raise e
|
raise e
|
||||||
|
@ -570,10 +568,10 @@ class PledgeModifyView(FormView):
|
||||||
except models.Premium.DoesNotExist, e:
|
except models.Premium.DoesNotExist, e:
|
||||||
premium = None
|
premium = None
|
||||||
|
|
||||||
transactions = campaign.transactions().filter(user=user, status=IPN_PREAPPROVAL_STATUS_ACTIVE)
|
transactions = campaign.transactions().filter(user=user, status=TRANSACTION_STATUS_ACTIVE)
|
||||||
assert transactions.count() == 1
|
assert transactions.count() == 1
|
||||||
transaction = transactions[0]
|
transaction = transactions[0]
|
||||||
assert transaction.type == PAYMENT_TYPE_AUTHORIZATION and transaction.status == IPN_PREAPPROVAL_STATUS_ACTIVE
|
assert transaction.type == PAYMENT_TYPE_AUTHORIZATION and transaction.status == TRANSACTION_STATUS_ACTIVE
|
||||||
|
|
||||||
p = PaymentManager(embedded=self.embedded)
|
p = PaymentManager(embedded=self.embedded)
|
||||||
status, url = p.modify_transaction(transaction=transaction, amount=preapproval_amount, premium=premium)
|
status, url = p.modify_transaction(transaction=transaction, amount=preapproval_amount, premium=premium)
|
||||||
|
@ -889,22 +887,21 @@ def campaign_admin(request):
|
||||||
# pull out Campaigns with Transactions that are ACTIVE -- and hence can be executed
|
# pull out Campaigns with Transactions that are ACTIVE -- and hence can be executed
|
||||||
# Campaign.objects.filter(transaction__status='ACTIVE')
|
# Campaign.objects.filter(transaction__status='ACTIVE')
|
||||||
|
|
||||||
campaigns_with_active_transactions = models.Campaign.objects.filter(transaction__status=IPN_PREAPPROVAL_STATUS_ACTIVE)
|
campaigns_with_active_transactions = models.Campaign.objects.filter(transaction__status=TRANSACTION_STATUS_ACTIVE)
|
||||||
|
|
||||||
# pull out Campaigns with Transactions that are INCOMPLETE
|
# pull out Campaigns with Transactions that are INCOMPLETE
|
||||||
|
|
||||||
campaigns_with_incomplete_transactions = models.Campaign.objects.filter(transaction__status=IPN_PAY_STATUS_INCOMPLETE)
|
campaigns_with_incomplete_transactions = models.Campaign.objects.filter(transaction__status=TRANSACTION_STATUS_INCOMPLETE)
|
||||||
|
|
||||||
# show all Campaigns with Transactions that are COMPLETED
|
# show all Campaigns with Transactions that are COMPLETED
|
||||||
|
|
||||||
campaigns_with_completed_transactions = models.Campaign.objects.filter(transaction__status=IPN_PAY_STATUS_COMPLETED)
|
campaigns_with_completed_transactions = models.Campaign.objects.filter(transaction__status=TRANSACTION_STATUS_COMPLETE_PRIMARY)
|
||||||
|
|
||||||
# show Campaigns with Transactions that are CANCELED
|
# show Campaigns with Transactions that are CANCELED
|
||||||
|
|
||||||
campaigns_with_canceled_transactions = models.Campaign.objects.filter(transaction__status=IPN_PREAPPROVAL_STATUS_CANCELED)
|
campaigns_with_canceled_transactions = models.Campaign.objects.filter(transaction__status=TRANSACTION_STATUS_CANCELED)
|
||||||
|
|
||||||
return (campaigns_with_active_transactions, campaigns_with_incomplete_transactions, campaigns_with_completed_transactions,
|
return (campaigns_with_active_transactions, campaigns_with_incomplete_transactions, campaigns_with_completed_transactions, campaigns_with_canceled_transactions)
|
||||||
campaigns_with_canceled_transactions)
|
|
||||||
|
|
||||||
form = CampaignAdminForm()
|
form = CampaignAdminForm()
|
||||||
pm = PaymentManager()
|
pm = PaymentManager()
|
||||||
|
|
|
@ -123,6 +123,29 @@ def paySandbox(test, selenium, url, authorize=False, already_at_url=False, sleep
|
||||||
|
|
||||||
print "Tranasction Complete"
|
print "Tranasction Complete"
|
||||||
|
|
||||||
|
def payAmazonSandbox(sel):
|
||||||
|
login_email = WebDriverWait(sel,20).until(lambda d: d.find_element_by_css_selector("input#ap_email"))
|
||||||
|
login_email.click()
|
||||||
|
login_email.clear()
|
||||||
|
login_email.send_keys('supporter1@raymondyee.net')
|
||||||
|
login_password = WebDriverWait(sel,20).until(lambda d: d.find_element_by_css_selector("input#ap_password"))
|
||||||
|
login_password.click()
|
||||||
|
login_password.clear()
|
||||||
|
login_password.send_keys('testpw__')
|
||||||
|
submit_button = WebDriverWait(sel,20).until(lambda d: d.find_element_by_css_selector("input#signInSubmit"))
|
||||||
|
submit_button.click()
|
||||||
|
time.sleep(2)
|
||||||
|
|
||||||
|
# sel.find_element_by_css_selector("input[type='image']")
|
||||||
|
print "looking for credit_card_confirm", sel.current_url
|
||||||
|
credit_card_confirm = WebDriverWait(sel,20).until(lambda d: d.find_elements_by_css_selector("input[type='image']"))
|
||||||
|
credit_card_confirm[0].click()
|
||||||
|
|
||||||
|
print "looking for payment_confirm", sel.current_url
|
||||||
|
payment_confirm = WebDriverWait(sel,20).until(lambda d: d.find_elements_by_css_selector("input[type='image']"))
|
||||||
|
time.sleep(1)
|
||||||
|
payment_confirm[-1].click()
|
||||||
|
|
||||||
class PledgeTest(TestCase):
|
class PledgeTest(TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
|
|
@ -166,7 +166,7 @@ def support_campaign(unglue_it_url = settings.LIVE_SERVER_TEST_URL, do_local=Tru
|
||||||
PASSWORD = settings.UNGLUEIT_TEST_PASSWORD
|
PASSWORD = settings.UNGLUEIT_TEST_PASSWORD
|
||||||
|
|
||||||
# PayPal developer sandbox
|
# PayPal developer sandbox
|
||||||
from regluit.payment.tests import loginSandbox, paySandbox
|
from regluit.payment.tests import loginSandbox, paySandbox, payAmazonSandbox
|
||||||
|
|
||||||
setup_selenium()
|
setup_selenium()
|
||||||
|
|
||||||
|
@ -246,27 +246,8 @@ def support_campaign(unglue_it_url = settings.LIVE_SERVER_TEST_URL, do_local=Tru
|
||||||
print "Now trying to pay PayPal", sel.current_url
|
print "Now trying to pay PayPal", sel.current_url
|
||||||
paySandbox(None, sel, sel.current_url, authorize=True, already_at_url=True, sleep_time=5)
|
paySandbox(None, sel, sel.current_url, authorize=True, already_at_url=True, sleep_time=5)
|
||||||
elif backend == 'amazon':
|
elif backend == 'amazon':
|
||||||
login_email = WebDriverWait(sel,20).until(lambda d: d.find_element_by_css_selector("input#ap_email"))
|
payAmazonSandbox(sel)
|
||||||
login_email.click()
|
|
||||||
login_email.clear()
|
|
||||||
login_email.send_keys('supporter1@raymondyee.net')
|
|
||||||
login_password = WebDriverWait(sel,20).until(lambda d: d.find_element_by_css_selector("input#ap_password"))
|
|
||||||
login_password.click()
|
|
||||||
login_password.clear()
|
|
||||||
login_password.send_keys('testpw__')
|
|
||||||
submit_button = WebDriverWait(sel,20).until(lambda d: d.find_element_by_css_selector("input#signInSubmit"))
|
|
||||||
submit_button.click()
|
|
||||||
time.sleep(2)
|
|
||||||
|
|
||||||
# sel.find_element_by_css_selector("input[type='image']")
|
|
||||||
print "looking for credit_card_confirm", sel.current_url
|
|
||||||
credit_card_confirm = WebDriverWait(sel,20).until(lambda d: d.find_elements_by_css_selector("input[type='image']"))
|
|
||||||
credit_card_confirm[0].click()
|
|
||||||
|
|
||||||
print "looking for payment_confirm", sel.current_url
|
|
||||||
payment_confirm = WebDriverWait(sel,20).until(lambda d: d.find_elements_by_css_selector("input[type='image']"))
|
|
||||||
time.sleep(1)
|
|
||||||
payment_confirm[-1].click()
|
|
||||||
|
|
||||||
# should be back on a pledge complete page
|
# should be back on a pledge complete page
|
||||||
print sel.current_url, re.search(r"/pledge/complete",sel.current_url)
|
print sel.current_url, re.search(r"/pledge/complete",sel.current_url)
|
||||||
|
@ -295,8 +276,6 @@ def support_campaign(unglue_it_url = settings.LIVE_SERVER_TEST_URL, do_local=Tru
|
||||||
change_pledge_button = WebDriverWait(sel,20).until(lambda d: d.find_element_by_css_selector("input[value*='Modify Pledge']"))
|
change_pledge_button = WebDriverWait(sel,20).until(lambda d: d.find_element_by_css_selector("input[value*='Modify Pledge']"))
|
||||||
change_pledge_button.click()
|
change_pledge_button.click()
|
||||||
|
|
||||||
yield sel
|
|
||||||
|
|
||||||
# enter a new pledge, which is less than the previous amount and therefore doesn't require a new PayPal transaction
|
# enter a new pledge, which is less than the previous amount and therefore doesn't require a new PayPal transaction
|
||||||
print "changing pledge to $5 -- should not need to go to PayPal"
|
print "changing pledge to $5 -- should not need to go to PayPal"
|
||||||
preapproval_amount_input = WebDriverWait(sel,20).until(lambda d: d.find_element_by_css_selector("input#id_preapproval_amount"))
|
preapproval_amount_input = WebDriverWait(sel,20).until(lambda d: d.find_element_by_css_selector("input#id_preapproval_amount"))
|
||||||
|
@ -317,7 +296,10 @@ def support_campaign(unglue_it_url = settings.LIVE_SERVER_TEST_URL, do_local=Tru
|
||||||
preapproval_amount_input.send_keys("25")
|
preapproval_amount_input.send_keys("25")
|
||||||
pledge_button = WebDriverWait(sel,20).until(lambda d: d.find_element_by_css_selector("input[value*='Modify Pledge']"))
|
pledge_button = WebDriverWait(sel,20).until(lambda d: d.find_element_by_css_selector("input[value*='Modify Pledge']"))
|
||||||
pledge_button.click()
|
pledge_button.click()
|
||||||
paySandbox(None, sel, sel.current_url, authorize=True, already_at_url=True, sleep_time=5)
|
if backend == 'paypal':
|
||||||
|
paySandbox(None, sel, sel.current_url, authorize=True, already_at_url=True, sleep_time=5)
|
||||||
|
elif backend == 'amazon':
|
||||||
|
payAmazonSandbox(sel)
|
||||||
|
|
||||||
# wait a bit to allow PayPal sandbox to be update the status of the Transaction
|
# wait a bit to allow PayPal sandbox to be update the status of the Transaction
|
||||||
time.sleep(10)
|
time.sleep(10)
|
||||||
|
|
Loading…
Reference in New Issue