Example #1
0
 def inner(instance, user, *args):
     account = AccountManager().get_user_account(user)
     balance_before = account.balance()
     fun(instance, user, *args)
     balance_after = account.balance()
     BalanceThresholds.process_transaction(project_id=user,
                                           balance_before=balance_before,
                                           balance_after=balance_after)
Example #2
0
 def inner(instance, user, *args):
     account = AccountManager().get_user_account(user)
     balance_before = account.balance()
     fun(instance, user, *args)
     balance_after = account.balance()
     BalanceThresholds.process_transaction(
         project_id=user,
         balance_before=balance_before,
         balance_after=balance_after)
Example #3
0
 def setUp(self):
     super(PaymentsTests, self).setUp()
     self.stripe = stripe
     self.stripe.api_key = settings.MERCHANT_SETTINGS['stripe']['API_KEY']
     self.am = AccountManager()
     self.card1_data = {
         'number': '4242424242424242',
         'exp_month': 12,
         'exp_year': 2016,
         'cvc': '123'
     }
     self.card1_params = {
         'last4': '4242',
         'email': '*****@*****.**',
         'default': False,
         'tenant_id': '1'
     }
Example #4
0
 def handler(cls, **kwargs):
     if AccountManager().get_user_account(
             kwargs['project_id']).balance() >= 0:
         return
     # need to enable all_tenants because of this (read comments):
     # https://bugs.launchpad.net/python-novaclient/+bug/1134382
     [server.stop() for server in NovaClient.get_client().servers.list(
         search_opts={'all_tenants': True,
                      'tenant_id': kwargs['project_id'],
                      'status': 'ACTIVE'})]
Example #5
0
 def setUp(self):
     super(PaymentsTests, self).setUp()
     self.stripe = stripe
     self.stripe.api_key = settings.MERCHANT_SETTINGS['stripe']['API_KEY']
     self.am = AccountManager()
     self.card1_data = {'number': '4242424242424242',
                        'exp_month': 12,
                        'exp_year': 2016,
                        'cvc': '123'}
     self.card1_params = {
         'last4': '4242',
         'email': '*****@*****.**',
         'default': False,
         'tenant_id': '1'}
Example #6
0
def balance(request):
    return AccountManager().get_user_account(request.user.tenant_id).balance()
Example #7
0
class PaymentsTests(test.TestCase):
    # Unit tests for payments.

    def setUp(self):
        super(PaymentsTests, self).setUp()
        self.stripe = stripe
        self.stripe.api_key = settings.MERCHANT_SETTINGS['stripe']['API_KEY']
        self.am = AccountManager()
        self.card1_data = {
            'number': '4242424242424242',
            'exp_month': 12,
            'exp_year': 2016,
            'cvc': '123'
        }
        self.card1_params = {
            'last4': '4242',
            'email': '*****@*****.**',
            'default': False,
            'tenant_id': '1'
        }

    def test_environment_sanity(self):
        # make sure our test environment is realy in TEST MODE

        self.assertTrue(settings.MERCHANT_TEST_MODE)
        self.assertTrue(
            "test" in settings.MERCHANT_SETTINGS['stripe']['API_KEY'])
        self.assertTrue(
            "test" in settings.MERCHANT_SETTINGS['stripe']['PUBLISHABLE_KEY'])

    # integration tests
    def test_add_card(self):
        card_token = self.stripe.Token.create(card=self.card1_data)
        card = Card.create(stripe_card_token=card_token.id,
                           **self.card1_params)
        self.assertEqual(card.default, True)

    def test_add_duplicate_card(self):
        card_token = self.stripe.Token.create(card=self.card1_data)
        Card.create(stripe_card_token=card_token.id, **self.card1_params)
        stripe.api_key = settings.MERCHANT_SETTINGS['stripe']['API_KEY']
        card_token = self.stripe.Token.create(card=self.card1_data)
        logging.disable(logging.exception)
        with self.assertRaises(IntegrityError):
            Card.create(stripe_card_token=card_token.id, **self.card1_params)

    def test_charge_user(self):
        card_token = self.stripe.Token.create(card=self.card1_data)
        Card.create(stripe_card_token=card_token.id, **self.card1_params)
        formData = {'amount': 123123}
        self.client.post(reverse('horizon:billing:payments:add_funds'),
                         formData)
        self.assertEqual(
            self.am.get_user_account(self.card1_params['tenant_id']).balance(),
            123123)

    # Unit tests for payments.
    def test_me(self):
        self.assertTrue(1 + 1 == 2)

    def test_add_mobile_number(self):
        pass

    # k2 notification endpoint test
    def test_k2_notification(self):
        k2_notification_data
        response = k2_notify(k2_notification_data)
        self.assertTrue(
            json.loads(response.content)['status'] == u'01',
            u'Unexpected k2 notification endpoint response')
        return True
Example #8
0
class PaymentsTests(test.TestCase):
    # Unit tests for payments.

    def setUp(self):
        super(PaymentsTests, self).setUp()
        self.stripe = stripe
        self.stripe.api_key = settings.MERCHANT_SETTINGS['stripe']['API_KEY']
        self.am = AccountManager()
        self.card1_data = {'number': '4242424242424242',
                           'exp_month': 12,
                           'exp_year': 2016,
                           'cvc': '123'}
        self.card1_params = {
            'last4': '4242',
            'email': '*****@*****.**',
            'default': False,
            'tenant_id': '1'}

    def test_environment_sanity(self):
        # make sure our test environment is realy in TEST MODE

        self.assertTrue(settings.MERCHANT_TEST_MODE)
        self.assertTrue(
            "test" in
            settings.MERCHANT_SETTINGS['stripe']['API_KEY'])
        self.assertTrue(
            "test" in
            settings.MERCHANT_SETTINGS['stripe']['PUBLISHABLE_KEY'])

    # integration tests
    def test_add_card(self):
        card_token = self.stripe.Token.create(card=self.card1_data)
        card = Card.create(stripe_card_token=card_token.id,
                           **self.card1_params)
        self.assertEqual(card.default, True)

    def test_add_duplicate_card(self):
        card_token = self.stripe.Token.create(card=self.card1_data)
        Card.create(stripe_card_token=card_token.id, **self.card1_params)
        stripe.api_key = settings.MERCHANT_SETTINGS['stripe']['API_KEY']
        card_token = self.stripe.Token.create(card=self.card1_data)
        logging.disable(logging.exception)
        with self.assertRaises(IntegrityError):
            Card.create(stripe_card_token=card_token.id, **self.card1_params)

    def test_charge_user(self):
        card_token = self.stripe.Token.create(card=self.card1_data)
        Card.create(stripe_card_token=card_token.id,
                           **self.card1_params)
        formData = {'amount': 123123}
        self.client.post(reverse('horizon:billing:payments:add_funds'),
                         formData)
        self.assertEqual(
            self.am.get_user_account(
                self.card1_params['tenant_id']).balance(),
            123123)

    # Unit tests for payments.
    def test_me(self):
        self.assertTrue(1 + 1 == 2)

    def test_add_mobile_number(self):
        pass

    # k2 notification endpoint test
    def test_k2_notification(self):
        k2_notification_data
        response = k2_notify(k2_notification_data)
        self.assertTrue(json.loads(response.content)['status'] == u'01',
                        u'Unexpected k2 notification endpoint response')
        return True