Added test_create_duplicate_plans_error_handling

This commit is contained in:
PCoder 2017-08-17 13:01:48 +05:30
parent 783ab5714c
commit 08c5485352

View file

@ -7,6 +7,8 @@ from utils.stripe_utils import StripeUtils
import stripe import stripe
from django.conf import settings from django.conf import settings
from datacenterlight.models import StripePlan from datacenterlight.models import StripePlan
import uuid
from unittest.mock import patch
class BaseTestCase(TestCase): class BaseTestCase(TestCase):
@ -125,10 +127,27 @@ class StripePlanTestCase(TestStripeCustomerDescription):
A class to test Stripe plans A class to test Stripe plans
""" """
def test_create_plan(self): def test_get_or_create_plan(self):
stripe_utils = StripeUtils() stripe_utils = StripeUtils()
plan_id_string = stripe_utils.get_stripe_plan_id_string(2, 20, 100, 1) plan_id_string = stripe_utils.get_stripe_plan_id_string(2, 20, 100, 1)
self.assertEqual(plan_id_string, 'dcl-v1-cpu-2-ram-20gb-ssd-100gb') self.assertEqual(plan_id_string, 'dcl-v1-cpu-2-ram-20gb-ssd-100gb')
stripe_plan = stripe_utils.get_or_create_plan(2000, "test plan 1", stripe_plan_id='test-plan-1') stripe_plan = stripe_utils.get_or_create_plan(2000, "test plan 1", stripe_plan_id='test-plan-1')
self.assertEqual(stripe_plan.get('error'), None) self.assertEqual(stripe_plan.get('error'), None)
self.assertIsInstance(stripe_plan.get('response_object'), StripePlan) self.assertIsInstance(stripe_plan.get('response_object'), StripePlan)
@patch('utils.stripe_utils.logger')
def test_create_duplicate_plans_error_handling(self, mock_logger):
stripe_utils = StripeUtils()
unique_id = str(uuid.uuid4().hex)
new_plan_id_str = 'test-plan-{}'.format(unique_id)
stripe_plan = stripe_utils.get_or_create_plan(2000, "test plan {}".format(unique_id),
stripe_plan_id=new_plan_id_str)
self.assertIsInstance(stripe_plan.get('response_object'), StripePlan)
self.assertEqual(stripe_plan.get('response_object').stripe_plan_id, new_plan_id_str)
# Test creating the same plan again and expect the PLAN_EXISTS_ERROR_MSG
StripePlan.objects.filter(stripe_plan_id=new_plan_id_str).all().delete()
stripe_plan_1 = stripe_utils.get_or_create_plan(2000, "test plan {}".format(unique_id),
stripe_plan_id=new_plan_id_str)
mock_logger.debug.assert_called_with(stripe_utils.PLAN_EXISTS_ERROR_MSG.format(new_plan_id_str))
self.assertIsInstance(stripe_plan_1.get('response_object'), StripePlan)
self.assertEqual(stripe_plan_1.get('response_object').stripe_plan_id, new_plan_id_str)