billing: Don't check for stripe key and plan objects in tests.

Stripe already returns an appropriate error in prod, and these checks are
just a hassle in tests.

Also fixes an error where the check for Plan.objects.exists() was missing
a "not".
This commit is contained in:
Vishnu Ks 2018-07-26 13:46:20 +05:30 committed by Rishi Gupta
parent ecb3879d0c
commit b7d3a1a0f3
2 changed files with 8 additions and 27 deletions

View File

@ -69,14 +69,13 @@ class StripeError(JsonableError):
def catch_stripe_errors(func: CallableT) -> CallableT:
@wraps(func)
def wrapped(*args: Any, **kwargs: Any) -> Any:
if not settings.TEST_SUITE and STRIPE_PUBLISHABLE_KEY is None:
# Dev-only message; no translation needed.
raise StripeError(
"Missing Stripe config. See https://zulip.readthedocs.io/en/latest/subsystems/billing.html.")
if settings.DEVELOPMENT and not settings.TEST_SUITE: # nocoverage
if STRIPE_PUBLISHABLE_KEY is None:
raise AssertionError(
"Missing Stripe config. "
"See https://zulip.readthedocs.io/en/latest/subsystems/billing.html.")
if not Plan.objects.exists():
# Dev-only message; no translation needed.
raise StripeError(
raise AssertionError(
"Plan objects not created. Please run ./manage.py setup_stripe")
try:

View File

@ -74,24 +74,6 @@ class StripeTest(ZulipTestCase):
raise_exception()
mock_billing_logger_error.assert_called()
@mock.patch("zilencer.lib.stripe.STRIPE_PUBLISHABLE_KEY", None)
def test_no_stripe_keys(self) -> None:
@catch_stripe_errors
def foo() -> None:
pass # nocoverage
with self.settings(TEST_SUITE=False):
with self.assertRaisesRegex(StripeError, "Missing Stripe config."):
foo()
def test_no_plan_objects(self) -> None:
Plan.objects.all().delete()
@catch_stripe_errors
def foo() -> None:
pass # nocoverage
with self.assertRaisesRegex(StripeError, "Plan objects not created. Please run ./manage.py"):
foo()
@mock.patch("stripe.Customer.create", side_effect=mock_create_customer)
@mock.patch("stripe.Subscription.create", side_effect=mock_create_subscription)
def test_initial_upgrade(self, mock_create_subscription: mock.Mock,