def test_add_on(self): plan_code = 'plan%s' % self.test_id add_on_code = 'addon%s' % self.test_id plan = Plan( plan_code=plan_code, name='Mock Plan', setup_fee_in_cents=Money(0), unit_amount_in_cents=Money(1000), ) with self.mock_request('add-on/plan-created.xml'): plan.save() try: add_on = AddOn(add_on_code=add_on_code, name='Mock Add-On') with self.mock_request('add-on/created.xml'): plan.create_add_on(add_on) self.assertEqual(add_on.add_on_code, add_on_code) self.assertEqual(add_on.name, 'Mock Add-On') try: with self.mock_request('add-on/exists.xml'): same_add_on = plan.get_add_on(add_on_code) self.assertEqual(same_add_on.add_on_code, add_on_code) self.assertEqual(same_add_on.name, 'Mock Add-On') finally: with self.mock_request('add-on/deleted.xml'): add_on.delete() finally: with self.mock_request('add-on/plan-deleted.xml'): plan.delete()
def test_subscribe_add_on(self): plan = Plan( plan_code='basicplan', name='Basic Plan', setup_fee_in_cents=Money(0), unit_amount_in_cents=Money(1000), ) with self.mock_request('subscribe-add-on/plan-created.xml'): plan.save() try: add_on = AddOn( add_on_code='mock_add_on', name='Mock Add-On', unit_amount_in_cents=Money(100), ) with self.mock_request('subscribe-add-on/add-on-created.xml'): plan.create_add_on(add_on) second_add_on = AddOn( add_on_code='second_add_on', name='Second Add-On', unit_amount_in_cents=Money(50), ) with self.mock_request( 'subscribe-add-on/second-add-on-created.xml'): plan.create_add_on(second_add_on) account_code = 'sad-on-%s' % self.test_id sub = Subscription( plan_code='basicplan', subscription_add_ons=[ SubscriptionAddOn(add_on_code='mock_add_on', ), SubscriptionAddOn(add_on_code='second_add_on', ), ], currency='USD', account=Account( account_code=account_code, billing_info=BillingInfo( first_name='Verena', last_name='Example', number='4111 1111 1111 1111', verification_value='7777', year='2015', month='12', ), ), ) with self.mock_request('subscribe-add-on/subscribed.xml'): sub.save() with self.mock_request('subscribe-add-on/account-exists.xml'): account = Account.get(account_code) with self.mock_request('subscribe-add-on/account-deleted.xml'): account.delete() finally: with self.mock_request('subscribe-add-on/plan-deleted.xml'): plan.delete()
def test_add_on(self): plan_code = 'plan%s' % self.test_id add_on_code = 'addon%s' % self.test_id plan = Plan( plan_code=plan_code, name='Mock Plan', setup_fee_in_cents=Money(0), unit_amount_in_cents=Money(1000), ) with self.mock_request('add-on/plan-created.xml'): plan.save() try: add_on = AddOn(add_on_code=add_on_code, name='Mock Add-On') exc = None with self.mock_request('add-on/need-amount.xml'): try: plan.create_add_on(add_on) except ValidationError as _exc: exc = _exc else: self.fail("Creating a plan add-on without an amount did not raise a ValidationError") error = exc.errors['add_on.unit_amount_in_cents'] self.assertEqual(error.symbol, 'blank') add_on = AddOn(add_on_code=add_on_code, name='Mock Add-On', unit_amount_in_cents=Money(40)) with self.mock_request('add-on/created.xml'): plan.create_add_on(add_on) self.assertEqual(add_on.add_on_code, add_on_code) self.assertEqual(add_on.name, 'Mock Add-On') try: with self.mock_request('add-on/exists.xml'): same_add_on = plan.get_add_on(add_on_code) self.assertEqual(same_add_on.add_on_code, add_on_code) self.assertEqual(same_add_on.name, 'Mock Add-On') self.assertEqual(same_add_on.unit_amount_in_cents['USD'], 40) finally: with self.mock_request('add-on/deleted.xml'): add_on.delete() finally: with self.mock_request('add-on/plan-deleted.xml'): plan.delete()
def test_add_on(self): plan_code = 'plan%s' % self.test_id add_on_code = 'addon%s' % self.test_id plan = Plan( plan_code=plan_code, name='Mock Plan', setup_fee_in_cents=Money(0), unit_amount_in_cents=Money(1000), ) with self.mock_request('add-on/plan-created.xml'): plan.save() try: add_on = AddOn(add_on_code=add_on_code, name='Mock Add-On') exc = None with self.mock_request('add-on/need-amount.xml'): try: plan.create_add_on(add_on) except ValidationError as _exc: exc = _exc else: self.fail( "Creating a plan add-on without an amount did not raise a ValidationError" ) error = exc.errors['add_on.unit_amount_in_cents'] self.assertEqual(error.symbol, 'blank') add_on = AddOn(add_on_code=add_on_code, name='Mock Add-On', unit_amount_in_cents=Money(40)) with self.mock_request('add-on/created.xml'): plan.create_add_on(add_on) self.assertEqual(add_on.add_on_code, add_on_code) self.assertEqual(add_on.name, 'Mock Add-On') try: with self.mock_request('add-on/exists.xml'): same_add_on = plan.get_add_on(add_on_code) self.assertEqual(same_add_on.add_on_code, add_on_code) self.assertEqual(same_add_on.name, 'Mock Add-On') self.assertEqual(same_add_on.unit_amount_in_cents['USD'], 40) finally: with self.mock_request('add-on/deleted.xml'): add_on.delete() finally: with self.mock_request('add-on/plan-deleted.xml'): plan.delete()
def test_add_on(self): plan_code = 'plan%s' % self.test_id add_on_code = 'addon%s' % self.test_id plan = Plan( plan_code=plan_code, name='Mock Plan', setup_fee_in_cents=Money(0), unit_amount_in_cents=Money(1000), ) with self.mock_request('add-on/plan-created.xml'): plan.save() try: add_on = AddOn(add_on_code=add_on_code, name='Mock Add-On') with self.mock_request('add-on/need-amount.xml'): try: plan.create_add_on(add_on) except ValidationError, exc: pass else:
plan.save() try: add_on = AddOn(add_on_code=add_on_code, name='Mock Add-On') with self.mock_request('add-on/need-amount.xml'): try: plan.create_add_on(add_on) except ValidationError, exc: pass else: self.fail("Creating a plan add-on without an amount did not raise a ValidationError") error = exc.errors['add_on.unit_amount_in_cents'] self.assertEqual(error.symbol, 'blank') add_on = AddOn(add_on_code=add_on_code, name='Mock Add-On', unit_amount_in_cents=Money(40)) with self.mock_request('add-on/created.xml'): plan.create_add_on(add_on) self.assertEqual(add_on.add_on_code, add_on_code) self.assertEqual(add_on.name, 'Mock Add-On') try: with self.mock_request('add-on/exists.xml'): same_add_on = plan.get_add_on(add_on_code) self.assertEqual(same_add_on.add_on_code, add_on_code) self.assertEqual(same_add_on.name, 'Mock Add-On') self.assertEqual(same_add_on.unit_amount_in_cents['USD'], 40) finally: with self.mock_request('add-on/deleted.xml'):
def test_subscribe_add_on(self): plan = Plan( plan_code='basicplan', name='Basic Plan', setup_fee_in_cents=Money(0), unit_amount_in_cents=Money(1000), ) with self.mock_request('subscribe-add-on/plan-created.xml'): plan.save() try: add_on = AddOn( add_on_code='mock_add_on', name='Mock Add-On', unit_amount_in_cents=Money(100), ) with self.mock_request('subscribe-add-on/add-on-created.xml'): plan.create_add_on(add_on) second_add_on = AddOn( add_on_code='second_add_on', name='Second Add-On', unit_amount_in_cents=Money(50), ) with self.mock_request( 'subscribe-add-on/second-add-on-created.xml'): plan.create_add_on(second_add_on) account_code = 'sad-on-%s' % self.test_id sub = Subscription( plan_code='basicplan', subscription_add_ons=[ SubscriptionAddOn(add_on_code='mock_add_on', ), SubscriptionAddOn(add_on_code='second_add_on', ), ], currency='USD', account=Account( account_code=account_code, billing_info=BillingInfo( first_name='Verena', last_name='Example', number='4111 1111 1111 1111', address1='123 Main St', city='San Francisco', state='CA', zip='94105', country='US', verification_value='7777', year='2015', month='12', ), ), ) with self.mock_request('subscribe-add-on/subscribed.xml'): sub.save() # Subscription amounts are in one real currency, so they aren't Money instances. sub_amount = sub.unit_amount_in_cents self.assertTrue(not isinstance(sub_amount, Money)) self.assertEqual(sub_amount, 1000) # Test that the add-ons' amounts aren't real Money instances either. add_on_1, add_on_2 = sub.subscription_add_ons self.assertIsInstance(add_on_1, SubscriptionAddOn) amount_1 = add_on_1.unit_amount_in_cents self.assertTrue(not isinstance(amount_1, Money)) self.assertEqual(amount_1, 100) with self.mock_request('subscribe-add-on/account-exists.xml'): account = Account.get(account_code) with self.mock_request('subscribe-add-on/account-deleted.xml'): account.delete() finally: with self.mock_request('subscribe-add-on/plan-deleted.xml'): plan.delete()
add_on = AddOn(add_on_code=add_on_code, name='Mock Add-On') with self.mock_request('add-on/need-amount.xml'): try: plan.create_add_on(add_on) except ValidationError, exc: pass else: self.fail( "Creating a plan add-on without an amount did not raise a ValidationError" ) error = exc.errors['add_on.unit_amount_in_cents'] self.assertEqual(error.symbol, 'blank') add_on = AddOn(add_on_code=add_on_code, name='Mock Add-On', unit_amount_in_cents=Money(40)) with self.mock_request('add-on/created.xml'): plan.create_add_on(add_on) self.assertEqual(add_on.add_on_code, add_on_code) self.assertEqual(add_on.name, 'Mock Add-On') try: with self.mock_request('add-on/exists.xml'): same_add_on = plan.get_add_on(add_on_code) self.assertEqual(same_add_on.add_on_code, add_on_code) self.assertEqual(same_add_on.name, 'Mock Add-On') self.assertEqual(same_add_on.unit_amount_in_cents['USD'], 40) finally: