mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	billing: Update test_billing_page_permissions to use @mock_stripe.
This commit is contained in:
		@@ -0,0 +1,61 @@
 | 
			
		||||
{
 | 
			
		||||
  "account_balance": 0,
 | 
			
		||||
  "created": 1539881153,
 | 
			
		||||
  "currency": null,
 | 
			
		||||
  "default_source": "card_1DMedAGh0CmXqmnwDLwrAV1v",
 | 
			
		||||
  "delinquent": false,
 | 
			
		||||
  "description": "zulip (Zulip Dev)",
 | 
			
		||||
  "discount": null,
 | 
			
		||||
  "email": "hamlet@zulip.com",
 | 
			
		||||
  "id": "cus_DoHBcS2dBGOP9t",
 | 
			
		||||
  "invoice_prefix": "3B3F5D6",
 | 
			
		||||
  "livemode": false,
 | 
			
		||||
  "metadata": {
 | 
			
		||||
    "realm_id": "1",
 | 
			
		||||
    "realm_str": "zulip"
 | 
			
		||||
  },
 | 
			
		||||
  "object": "customer",
 | 
			
		||||
  "shipping": null,
 | 
			
		||||
  "sources": {
 | 
			
		||||
    "data": [
 | 
			
		||||
      {
 | 
			
		||||
        "address_city": "Pacific",
 | 
			
		||||
        "address_country": "United States",
 | 
			
		||||
        "address_line1": "Under the sea,",
 | 
			
		||||
        "address_line1_check": "pass",
 | 
			
		||||
        "address_line2": null,
 | 
			
		||||
        "address_state": null,
 | 
			
		||||
        "address_zip": "33333",
 | 
			
		||||
        "address_zip_check": "pass",
 | 
			
		||||
        "brand": "Visa",
 | 
			
		||||
        "country": "US",
 | 
			
		||||
        "customer": "cus_DoHBcS2dBGOP9t",
 | 
			
		||||
        "cvc_check": "pass",
 | 
			
		||||
        "dynamic_last4": null,
 | 
			
		||||
        "exp_month": 3,
 | 
			
		||||
        "exp_year": 2033,
 | 
			
		||||
        "fingerprint": "6dAXT9VZvwro65EK",
 | 
			
		||||
        "funding": "credit",
 | 
			
		||||
        "id": "card_1DMedAGh0CmXqmnwDLwrAV1v",
 | 
			
		||||
        "last4": "4242",
 | 
			
		||||
        "metadata": {},
 | 
			
		||||
        "name": "Ada Starr",
 | 
			
		||||
        "object": "card",
 | 
			
		||||
        "tokenization_method": null
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "has_more": false,
 | 
			
		||||
    "object": "list",
 | 
			
		||||
    "total_count": 1,
 | 
			
		||||
    "url": "/v1/customers/cus_DoHBcS2dBGOP9t/sources"
 | 
			
		||||
  },
 | 
			
		||||
  "subscriptions": {
 | 
			
		||||
    "data": [],
 | 
			
		||||
    "has_more": false,
 | 
			
		||||
    "object": "list",
 | 
			
		||||
    "total_count": 0,
 | 
			
		||||
    "url": "/v1/customers/cus_DoHBcS2dBGOP9t/subscriptions"
 | 
			
		||||
  },
 | 
			
		||||
  "tax_info": null,
 | 
			
		||||
  "tax_info_verification": null
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,168 @@
 | 
			
		||||
{
 | 
			
		||||
  "account_balance": 0,
 | 
			
		||||
  "created": 1539881153,
 | 
			
		||||
  "currency": "usd",
 | 
			
		||||
  "default_source": {
 | 
			
		||||
    "address_city": "Pacific",
 | 
			
		||||
    "address_country": "United States",
 | 
			
		||||
    "address_line1": "Under the sea,",
 | 
			
		||||
    "address_line1_check": "pass",
 | 
			
		||||
    "address_line2": null,
 | 
			
		||||
    "address_state": null,
 | 
			
		||||
    "address_zip": "33333",
 | 
			
		||||
    "address_zip_check": "pass",
 | 
			
		||||
    "brand": "Visa",
 | 
			
		||||
    "country": "US",
 | 
			
		||||
    "customer": "cus_DoHBcS2dBGOP9t",
 | 
			
		||||
    "cvc_check": "pass",
 | 
			
		||||
    "dynamic_last4": null,
 | 
			
		||||
    "exp_month": 3,
 | 
			
		||||
    "exp_year": 2033,
 | 
			
		||||
    "fingerprint": "6dAXT9VZvwro65EK",
 | 
			
		||||
    "funding": "credit",
 | 
			
		||||
    "id": "card_1DMedAGh0CmXqmnwDLwrAV1v",
 | 
			
		||||
    "last4": "4242",
 | 
			
		||||
    "metadata": {},
 | 
			
		||||
    "name": "Ada Starr",
 | 
			
		||||
    "object": "card",
 | 
			
		||||
    "tokenization_method": null
 | 
			
		||||
  },
 | 
			
		||||
  "delinquent": false,
 | 
			
		||||
  "description": "zulip (Zulip Dev)",
 | 
			
		||||
  "discount": null,
 | 
			
		||||
  "email": "hamlet@zulip.com",
 | 
			
		||||
  "id": "cus_DoHBcS2dBGOP9t",
 | 
			
		||||
  "invoice_prefix": "3B3F5D6",
 | 
			
		||||
  "livemode": false,
 | 
			
		||||
  "metadata": {
 | 
			
		||||
    "realm_id": "1",
 | 
			
		||||
    "realm_str": "zulip"
 | 
			
		||||
  },
 | 
			
		||||
  "object": "customer",
 | 
			
		||||
  "shipping": null,
 | 
			
		||||
  "sources": {
 | 
			
		||||
    "data": [
 | 
			
		||||
      {
 | 
			
		||||
        "address_city": "Pacific",
 | 
			
		||||
        "address_country": "United States",
 | 
			
		||||
        "address_line1": "Under the sea,",
 | 
			
		||||
        "address_line1_check": "pass",
 | 
			
		||||
        "address_line2": null,
 | 
			
		||||
        "address_state": null,
 | 
			
		||||
        "address_zip": "33333",
 | 
			
		||||
        "address_zip_check": "pass",
 | 
			
		||||
        "brand": "Visa",
 | 
			
		||||
        "country": "US",
 | 
			
		||||
        "customer": "cus_DoHBcS2dBGOP9t",
 | 
			
		||||
        "cvc_check": "pass",
 | 
			
		||||
        "dynamic_last4": null,
 | 
			
		||||
        "exp_month": 3,
 | 
			
		||||
        "exp_year": 2033,
 | 
			
		||||
        "fingerprint": "6dAXT9VZvwro65EK",
 | 
			
		||||
        "funding": "credit",
 | 
			
		||||
        "id": "card_1DMedAGh0CmXqmnwDLwrAV1v",
 | 
			
		||||
        "last4": "4242",
 | 
			
		||||
        "metadata": {},
 | 
			
		||||
        "name": "Ada Starr",
 | 
			
		||||
        "object": "card",
 | 
			
		||||
        "tokenization_method": null
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "has_more": false,
 | 
			
		||||
    "object": "list",
 | 
			
		||||
    "total_count": 1,
 | 
			
		||||
    "url": "/v1/customers/cus_DoHBcS2dBGOP9t/sources"
 | 
			
		||||
  },
 | 
			
		||||
  "subscriptions": {
 | 
			
		||||
    "data": [
 | 
			
		||||
      {
 | 
			
		||||
        "application_fee_percent": null,
 | 
			
		||||
        "billing": "charge_automatically",
 | 
			
		||||
        "billing_cycle_anchor": 1539881154,
 | 
			
		||||
        "cancel_at_period_end": false,
 | 
			
		||||
        "canceled_at": null,
 | 
			
		||||
        "created": 1539881154,
 | 
			
		||||
        "current_period_end": 1571417154,
 | 
			
		||||
        "current_period_start": 1539881154,
 | 
			
		||||
        "customer": "cus_DoHBcS2dBGOP9t",
 | 
			
		||||
        "days_until_due": null,
 | 
			
		||||
        "discount": null,
 | 
			
		||||
        "ended_at": null,
 | 
			
		||||
        "id": "sub_DoHBD49xn11qGo",
 | 
			
		||||
        "items": {
 | 
			
		||||
          "data": [
 | 
			
		||||
            {
 | 
			
		||||
              "created": 1539881154,
 | 
			
		||||
              "id": "si_DoHB9flY9e7zrZ",
 | 
			
		||||
              "metadata": {},
 | 
			
		||||
              "object": "subscription_item",
 | 
			
		||||
              "plan": {
 | 
			
		||||
                "active": true,
 | 
			
		||||
                "aggregate_usage": null,
 | 
			
		||||
                "amount": 8000,
 | 
			
		||||
                "billing_scheme": "per_unit",
 | 
			
		||||
                "created": 1539831971,
 | 
			
		||||
                "currency": "usd",
 | 
			
		||||
                "id": "plan_Do3xCvbzO89OsR",
 | 
			
		||||
                "interval": "year",
 | 
			
		||||
                "interval_count": 1,
 | 
			
		||||
                "livemode": false,
 | 
			
		||||
                "metadata": {},
 | 
			
		||||
                "nickname": "annual",
 | 
			
		||||
                "object": "plan",
 | 
			
		||||
                "product": "prod_Do3x494SetTDpx",
 | 
			
		||||
                "tiers": null,
 | 
			
		||||
                "tiers_mode": null,
 | 
			
		||||
                "transform_usage": null,
 | 
			
		||||
                "trial_period_days": null,
 | 
			
		||||
                "usage_type": "licensed"
 | 
			
		||||
              },
 | 
			
		||||
              "quantity": 8,
 | 
			
		||||
              "subscription": "sub_DoHBD49xn11qGo"
 | 
			
		||||
            }
 | 
			
		||||
          ],
 | 
			
		||||
          "has_more": false,
 | 
			
		||||
          "object": "list",
 | 
			
		||||
          "total_count": 1,
 | 
			
		||||
          "url": "/v1/subscription_items?subscription=sub_DoHBD49xn11qGo"
 | 
			
		||||
        },
 | 
			
		||||
        "livemode": false,
 | 
			
		||||
        "metadata": {},
 | 
			
		||||
        "object": "subscription",
 | 
			
		||||
        "plan": {
 | 
			
		||||
          "active": true,
 | 
			
		||||
          "aggregate_usage": null,
 | 
			
		||||
          "amount": 8000,
 | 
			
		||||
          "billing_scheme": "per_unit",
 | 
			
		||||
          "created": 1539831971,
 | 
			
		||||
          "currency": "usd",
 | 
			
		||||
          "id": "plan_Do3xCvbzO89OsR",
 | 
			
		||||
          "interval": "year",
 | 
			
		||||
          "interval_count": 1,
 | 
			
		||||
          "livemode": false,
 | 
			
		||||
          "metadata": {},
 | 
			
		||||
          "nickname": "annual",
 | 
			
		||||
          "object": "plan",
 | 
			
		||||
          "product": "prod_Do3x494SetTDpx",
 | 
			
		||||
          "tiers": null,
 | 
			
		||||
          "tiers_mode": null,
 | 
			
		||||
          "transform_usage": null,
 | 
			
		||||
          "trial_period_days": null,
 | 
			
		||||
          "usage_type": "licensed"
 | 
			
		||||
        },
 | 
			
		||||
        "quantity": 8,
 | 
			
		||||
        "start": 1539881154,
 | 
			
		||||
        "status": "active",
 | 
			
		||||
        "tax_percent": 0.0,
 | 
			
		||||
        "trial_end": null,
 | 
			
		||||
        "trial_start": null
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "has_more": false,
 | 
			
		||||
    "object": "list",
 | 
			
		||||
    "total_count": 1,
 | 
			
		||||
    "url": "/v1/customers/cus_DoHBcS2dBGOP9t/subscriptions"
 | 
			
		||||
  },
 | 
			
		||||
  "tax_info": null,
 | 
			
		||||
  "tax_info_verification": null
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,168 @@
 | 
			
		||||
{
 | 
			
		||||
  "account_balance": 0,
 | 
			
		||||
  "created": 1539881153,
 | 
			
		||||
  "currency": "usd",
 | 
			
		||||
  "default_source": {
 | 
			
		||||
    "address_city": "Pacific",
 | 
			
		||||
    "address_country": "United States",
 | 
			
		||||
    "address_line1": "Under the sea,",
 | 
			
		||||
    "address_line1_check": "pass",
 | 
			
		||||
    "address_line2": null,
 | 
			
		||||
    "address_state": null,
 | 
			
		||||
    "address_zip": "33333",
 | 
			
		||||
    "address_zip_check": "pass",
 | 
			
		||||
    "brand": "Visa",
 | 
			
		||||
    "country": "US",
 | 
			
		||||
    "customer": "cus_DoHBcS2dBGOP9t",
 | 
			
		||||
    "cvc_check": "pass",
 | 
			
		||||
    "dynamic_last4": null,
 | 
			
		||||
    "exp_month": 3,
 | 
			
		||||
    "exp_year": 2033,
 | 
			
		||||
    "fingerprint": "6dAXT9VZvwro65EK",
 | 
			
		||||
    "funding": "credit",
 | 
			
		||||
    "id": "card_1DMedAGh0CmXqmnwDLwrAV1v",
 | 
			
		||||
    "last4": "4242",
 | 
			
		||||
    "metadata": {},
 | 
			
		||||
    "name": "Ada Starr",
 | 
			
		||||
    "object": "card",
 | 
			
		||||
    "tokenization_method": null
 | 
			
		||||
  },
 | 
			
		||||
  "delinquent": false,
 | 
			
		||||
  "description": "zulip (Zulip Dev)",
 | 
			
		||||
  "discount": null,
 | 
			
		||||
  "email": "hamlet@zulip.com",
 | 
			
		||||
  "id": "cus_DoHBcS2dBGOP9t",
 | 
			
		||||
  "invoice_prefix": "3B3F5D6",
 | 
			
		||||
  "livemode": false,
 | 
			
		||||
  "metadata": {
 | 
			
		||||
    "realm_id": "1",
 | 
			
		||||
    "realm_str": "zulip"
 | 
			
		||||
  },
 | 
			
		||||
  "object": "customer",
 | 
			
		||||
  "shipping": null,
 | 
			
		||||
  "sources": {
 | 
			
		||||
    "data": [
 | 
			
		||||
      {
 | 
			
		||||
        "address_city": "Pacific",
 | 
			
		||||
        "address_country": "United States",
 | 
			
		||||
        "address_line1": "Under the sea,",
 | 
			
		||||
        "address_line1_check": "pass",
 | 
			
		||||
        "address_line2": null,
 | 
			
		||||
        "address_state": null,
 | 
			
		||||
        "address_zip": "33333",
 | 
			
		||||
        "address_zip_check": "pass",
 | 
			
		||||
        "brand": "Visa",
 | 
			
		||||
        "country": "US",
 | 
			
		||||
        "customer": "cus_DoHBcS2dBGOP9t",
 | 
			
		||||
        "cvc_check": "pass",
 | 
			
		||||
        "dynamic_last4": null,
 | 
			
		||||
        "exp_month": 3,
 | 
			
		||||
        "exp_year": 2033,
 | 
			
		||||
        "fingerprint": "6dAXT9VZvwro65EK",
 | 
			
		||||
        "funding": "credit",
 | 
			
		||||
        "id": "card_1DMedAGh0CmXqmnwDLwrAV1v",
 | 
			
		||||
        "last4": "4242",
 | 
			
		||||
        "metadata": {},
 | 
			
		||||
        "name": "Ada Starr",
 | 
			
		||||
        "object": "card",
 | 
			
		||||
        "tokenization_method": null
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "has_more": false,
 | 
			
		||||
    "object": "list",
 | 
			
		||||
    "total_count": 1,
 | 
			
		||||
    "url": "/v1/customers/cus_DoHBcS2dBGOP9t/sources"
 | 
			
		||||
  },
 | 
			
		||||
  "subscriptions": {
 | 
			
		||||
    "data": [
 | 
			
		||||
      {
 | 
			
		||||
        "application_fee_percent": null,
 | 
			
		||||
        "billing": "charge_automatically",
 | 
			
		||||
        "billing_cycle_anchor": 1539881154,
 | 
			
		||||
        "cancel_at_period_end": false,
 | 
			
		||||
        "canceled_at": null,
 | 
			
		||||
        "created": 1539881154,
 | 
			
		||||
        "current_period_end": 1571417154,
 | 
			
		||||
        "current_period_start": 1539881154,
 | 
			
		||||
        "customer": "cus_DoHBcS2dBGOP9t",
 | 
			
		||||
        "days_until_due": null,
 | 
			
		||||
        "discount": null,
 | 
			
		||||
        "ended_at": null,
 | 
			
		||||
        "id": "sub_DoHBD49xn11qGo",
 | 
			
		||||
        "items": {
 | 
			
		||||
          "data": [
 | 
			
		||||
            {
 | 
			
		||||
              "created": 1539881154,
 | 
			
		||||
              "id": "si_DoHB9flY9e7zrZ",
 | 
			
		||||
              "metadata": {},
 | 
			
		||||
              "object": "subscription_item",
 | 
			
		||||
              "plan": {
 | 
			
		||||
                "active": true,
 | 
			
		||||
                "aggregate_usage": null,
 | 
			
		||||
                "amount": 8000,
 | 
			
		||||
                "billing_scheme": "per_unit",
 | 
			
		||||
                "created": 1539831971,
 | 
			
		||||
                "currency": "usd",
 | 
			
		||||
                "id": "plan_Do3xCvbzO89OsR",
 | 
			
		||||
                "interval": "year",
 | 
			
		||||
                "interval_count": 1,
 | 
			
		||||
                "livemode": false,
 | 
			
		||||
                "metadata": {},
 | 
			
		||||
                "nickname": "annual",
 | 
			
		||||
                "object": "plan",
 | 
			
		||||
                "product": "prod_Do3x494SetTDpx",
 | 
			
		||||
                "tiers": null,
 | 
			
		||||
                "tiers_mode": null,
 | 
			
		||||
                "transform_usage": null,
 | 
			
		||||
                "trial_period_days": null,
 | 
			
		||||
                "usage_type": "licensed"
 | 
			
		||||
              },
 | 
			
		||||
              "quantity": 8,
 | 
			
		||||
              "subscription": "sub_DoHBD49xn11qGo"
 | 
			
		||||
            }
 | 
			
		||||
          ],
 | 
			
		||||
          "has_more": false,
 | 
			
		||||
          "object": "list",
 | 
			
		||||
          "total_count": 1,
 | 
			
		||||
          "url": "/v1/subscription_items?subscription=sub_DoHBD49xn11qGo"
 | 
			
		||||
        },
 | 
			
		||||
        "livemode": false,
 | 
			
		||||
        "metadata": {},
 | 
			
		||||
        "object": "subscription",
 | 
			
		||||
        "plan": {
 | 
			
		||||
          "active": true,
 | 
			
		||||
          "aggregate_usage": null,
 | 
			
		||||
          "amount": 8000,
 | 
			
		||||
          "billing_scheme": "per_unit",
 | 
			
		||||
          "created": 1539831971,
 | 
			
		||||
          "currency": "usd",
 | 
			
		||||
          "id": "plan_Do3xCvbzO89OsR",
 | 
			
		||||
          "interval": "year",
 | 
			
		||||
          "interval_count": 1,
 | 
			
		||||
          "livemode": false,
 | 
			
		||||
          "metadata": {},
 | 
			
		||||
          "nickname": "annual",
 | 
			
		||||
          "object": "plan",
 | 
			
		||||
          "product": "prod_Do3x494SetTDpx",
 | 
			
		||||
          "tiers": null,
 | 
			
		||||
          "tiers_mode": null,
 | 
			
		||||
          "transform_usage": null,
 | 
			
		||||
          "trial_period_days": null,
 | 
			
		||||
          "usage_type": "licensed"
 | 
			
		||||
        },
 | 
			
		||||
        "quantity": 8,
 | 
			
		||||
        "start": 1539881154,
 | 
			
		||||
        "status": "active",
 | 
			
		||||
        "tax_percent": 0.0,
 | 
			
		||||
        "trial_end": null,
 | 
			
		||||
        "trial_start": null
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "has_more": false,
 | 
			
		||||
    "object": "list",
 | 
			
		||||
    "total_count": 1,
 | 
			
		||||
    "url": "/v1/customers/cus_DoHBcS2dBGOP9t/subscriptions"
 | 
			
		||||
  },
 | 
			
		||||
  "tax_info": null,
 | 
			
		||||
  "tax_info_verification": null
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,85 @@
 | 
			
		||||
{
 | 
			
		||||
  "amount_due": 64000,
 | 
			
		||||
  "amount_paid": 0,
 | 
			
		||||
  "amount_remaining": 64000,
 | 
			
		||||
  "application_fee": null,
 | 
			
		||||
  "attempt_count": 0,
 | 
			
		||||
  "attempted": false,
 | 
			
		||||
  "billing": "charge_automatically",
 | 
			
		||||
  "billing_reason": "upcoming",
 | 
			
		||||
  "charge": null,
 | 
			
		||||
  "closed": false,
 | 
			
		||||
  "currency": "usd",
 | 
			
		||||
  "customer": "cus_DoHBcS2dBGOP9t",
 | 
			
		||||
  "date": 1571417154,
 | 
			
		||||
  "description": "",
 | 
			
		||||
  "discount": null,
 | 
			
		||||
  "due_date": null,
 | 
			
		||||
  "ending_balance": 0,
 | 
			
		||||
  "forgiven": false,
 | 
			
		||||
  "lines": {
 | 
			
		||||
    "data": [
 | 
			
		||||
      {
 | 
			
		||||
        "amount": 64000,
 | 
			
		||||
        "currency": "usd",
 | 
			
		||||
        "description": "8 user \u00d7 Zulip Cloud Premium (at $80.00 / year)",
 | 
			
		||||
        "discountable": true,
 | 
			
		||||
        "id": "sli_31180ead97e161",
 | 
			
		||||
        "livemode": false,
 | 
			
		||||
        "metadata": {},
 | 
			
		||||
        "object": "line_item",
 | 
			
		||||
        "period": {
 | 
			
		||||
          "end": 1603039554,
 | 
			
		||||
          "start": 1571417154
 | 
			
		||||
        },
 | 
			
		||||
        "plan": {
 | 
			
		||||
          "active": true,
 | 
			
		||||
          "aggregate_usage": null,
 | 
			
		||||
          "amount": 8000,
 | 
			
		||||
          "billing_scheme": "per_unit",
 | 
			
		||||
          "created": 1539831971,
 | 
			
		||||
          "currency": "usd",
 | 
			
		||||
          "id": "plan_Do3xCvbzO89OsR",
 | 
			
		||||
          "interval": "year",
 | 
			
		||||
          "interval_count": 1,
 | 
			
		||||
          "livemode": false,
 | 
			
		||||
          "metadata": {},
 | 
			
		||||
          "nickname": "annual",
 | 
			
		||||
          "object": "plan",
 | 
			
		||||
          "product": "prod_Do3x494SetTDpx",
 | 
			
		||||
          "tiers": null,
 | 
			
		||||
          "tiers_mode": null,
 | 
			
		||||
          "transform_usage": null,
 | 
			
		||||
          "trial_period_days": null,
 | 
			
		||||
          "usage_type": "licensed"
 | 
			
		||||
        },
 | 
			
		||||
        "proration": false,
 | 
			
		||||
        "quantity": 8,
 | 
			
		||||
        "subscription": "sub_DoHBD49xn11qGo",
 | 
			
		||||
        "subscription_item": "si_DoHB9flY9e7zrZ",
 | 
			
		||||
        "type": "subscription"
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "has_more": false,
 | 
			
		||||
    "object": "list",
 | 
			
		||||
    "total_count": 1,
 | 
			
		||||
    "url": "/v1/invoices/upcoming/lines?customer=cus_DoHBcS2dBGOP9t"
 | 
			
		||||
  },
 | 
			
		||||
  "livemode": false,
 | 
			
		||||
  "metadata": {},
 | 
			
		||||
  "next_payment_attempt": 1571420754,
 | 
			
		||||
  "number": "3B3F5D6-0002",
 | 
			
		||||
  "object": "invoice",
 | 
			
		||||
  "paid": false,
 | 
			
		||||
  "period_end": 1571417154,
 | 
			
		||||
  "period_start": 1539881154,
 | 
			
		||||
  "receipt_number": null,
 | 
			
		||||
  "starting_balance": 0,
 | 
			
		||||
  "statement_descriptor": null,
 | 
			
		||||
  "subscription": "sub_DoHBD49xn11qGo",
 | 
			
		||||
  "subtotal": 64000,
 | 
			
		||||
  "tax": 0,
 | 
			
		||||
  "tax_percent": 0.0,
 | 
			
		||||
  "total": 64000,
 | 
			
		||||
  "webhooks_delivered_at": null
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,85 @@
 | 
			
		||||
{
 | 
			
		||||
  "amount_due": 64000,
 | 
			
		||||
  "amount_paid": 0,
 | 
			
		||||
  "amount_remaining": 64000,
 | 
			
		||||
  "application_fee": null,
 | 
			
		||||
  "attempt_count": 0,
 | 
			
		||||
  "attempted": false,
 | 
			
		||||
  "billing": "charge_automatically",
 | 
			
		||||
  "billing_reason": "upcoming",
 | 
			
		||||
  "charge": null,
 | 
			
		||||
  "closed": false,
 | 
			
		||||
  "currency": "usd",
 | 
			
		||||
  "customer": "cus_DoHBcS2dBGOP9t",
 | 
			
		||||
  "date": 1571417154,
 | 
			
		||||
  "description": "",
 | 
			
		||||
  "discount": null,
 | 
			
		||||
  "due_date": null,
 | 
			
		||||
  "ending_balance": 0,
 | 
			
		||||
  "forgiven": false,
 | 
			
		||||
  "lines": {
 | 
			
		||||
    "data": [
 | 
			
		||||
      {
 | 
			
		||||
        "amount": 64000,
 | 
			
		||||
        "currency": "usd",
 | 
			
		||||
        "description": "8 user \u00d7 Zulip Cloud Premium (at $80.00 / year)",
 | 
			
		||||
        "discountable": true,
 | 
			
		||||
        "id": "sli_31180ead97e161",
 | 
			
		||||
        "livemode": false,
 | 
			
		||||
        "metadata": {},
 | 
			
		||||
        "object": "line_item",
 | 
			
		||||
        "period": {
 | 
			
		||||
          "end": 1603039554,
 | 
			
		||||
          "start": 1571417154
 | 
			
		||||
        },
 | 
			
		||||
        "plan": {
 | 
			
		||||
          "active": true,
 | 
			
		||||
          "aggregate_usage": null,
 | 
			
		||||
          "amount": 8000,
 | 
			
		||||
          "billing_scheme": "per_unit",
 | 
			
		||||
          "created": 1539831971,
 | 
			
		||||
          "currency": "usd",
 | 
			
		||||
          "id": "plan_Do3xCvbzO89OsR",
 | 
			
		||||
          "interval": "year",
 | 
			
		||||
          "interval_count": 1,
 | 
			
		||||
          "livemode": false,
 | 
			
		||||
          "metadata": {},
 | 
			
		||||
          "nickname": "annual",
 | 
			
		||||
          "object": "plan",
 | 
			
		||||
          "product": "prod_Do3x494SetTDpx",
 | 
			
		||||
          "tiers": null,
 | 
			
		||||
          "tiers_mode": null,
 | 
			
		||||
          "transform_usage": null,
 | 
			
		||||
          "trial_period_days": null,
 | 
			
		||||
          "usage_type": "licensed"
 | 
			
		||||
        },
 | 
			
		||||
        "proration": false,
 | 
			
		||||
        "quantity": 8,
 | 
			
		||||
        "subscription": "sub_DoHBD49xn11qGo",
 | 
			
		||||
        "subscription_item": "si_DoHB9flY9e7zrZ",
 | 
			
		||||
        "type": "subscription"
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "has_more": false,
 | 
			
		||||
    "object": "list",
 | 
			
		||||
    "total_count": 1,
 | 
			
		||||
    "url": "/v1/invoices/upcoming/lines?customer=cus_DoHBcS2dBGOP9t"
 | 
			
		||||
  },
 | 
			
		||||
  "livemode": false,
 | 
			
		||||
  "metadata": {},
 | 
			
		||||
  "next_payment_attempt": 1571420754,
 | 
			
		||||
  "number": "3B3F5D6-0002",
 | 
			
		||||
  "object": "invoice",
 | 
			
		||||
  "paid": false,
 | 
			
		||||
  "period_end": 1571417154,
 | 
			
		||||
  "period_start": 1539881154,
 | 
			
		||||
  "receipt_number": null,
 | 
			
		||||
  "starting_balance": 0,
 | 
			
		||||
  "statement_descriptor": null,
 | 
			
		||||
  "subscription": "sub_DoHBD49xn11qGo",
 | 
			
		||||
  "subtotal": 64000,
 | 
			
		||||
  "tax": 0,
 | 
			
		||||
  "tax_percent": 0.0,
 | 
			
		||||
  "total": 64000,
 | 
			
		||||
  "webhooks_delivered_at": null
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,82 @@
 | 
			
		||||
{
 | 
			
		||||
  "application_fee_percent": null,
 | 
			
		||||
  "billing": "charge_automatically",
 | 
			
		||||
  "billing_cycle_anchor": 1539881154,
 | 
			
		||||
  "cancel_at_period_end": false,
 | 
			
		||||
  "canceled_at": null,
 | 
			
		||||
  "created": 1539881154,
 | 
			
		||||
  "current_period_end": 1571417154,
 | 
			
		||||
  "current_period_start": 1539881154,
 | 
			
		||||
  "customer": "cus_DoHBcS2dBGOP9t",
 | 
			
		||||
  "days_until_due": null,
 | 
			
		||||
  "discount": null,
 | 
			
		||||
  "ended_at": null,
 | 
			
		||||
  "id": "sub_DoHBD49xn11qGo",
 | 
			
		||||
  "items": {
 | 
			
		||||
    "data": [
 | 
			
		||||
      {
 | 
			
		||||
        "created": 1539881154,
 | 
			
		||||
        "id": "si_DoHB9flY9e7zrZ",
 | 
			
		||||
        "metadata": {},
 | 
			
		||||
        "object": "subscription_item",
 | 
			
		||||
        "plan": {
 | 
			
		||||
          "active": true,
 | 
			
		||||
          "aggregate_usage": null,
 | 
			
		||||
          "amount": 8000,
 | 
			
		||||
          "billing_scheme": "per_unit",
 | 
			
		||||
          "created": 1539831971,
 | 
			
		||||
          "currency": "usd",
 | 
			
		||||
          "id": "plan_Do3xCvbzO89OsR",
 | 
			
		||||
          "interval": "year",
 | 
			
		||||
          "interval_count": 1,
 | 
			
		||||
          "livemode": false,
 | 
			
		||||
          "metadata": {},
 | 
			
		||||
          "nickname": "annual",
 | 
			
		||||
          "object": "plan",
 | 
			
		||||
          "product": "prod_Do3x494SetTDpx",
 | 
			
		||||
          "tiers": null,
 | 
			
		||||
          "tiers_mode": null,
 | 
			
		||||
          "transform_usage": null,
 | 
			
		||||
          "trial_period_days": null,
 | 
			
		||||
          "usage_type": "licensed"
 | 
			
		||||
        },
 | 
			
		||||
        "quantity": 8,
 | 
			
		||||
        "subscription": "sub_DoHBD49xn11qGo"
 | 
			
		||||
      }
 | 
			
		||||
    ],
 | 
			
		||||
    "has_more": false,
 | 
			
		||||
    "object": "list",
 | 
			
		||||
    "total_count": 1,
 | 
			
		||||
    "url": "/v1/subscription_items?subscription=sub_DoHBD49xn11qGo"
 | 
			
		||||
  },
 | 
			
		||||
  "livemode": false,
 | 
			
		||||
  "metadata": {},
 | 
			
		||||
  "object": "subscription",
 | 
			
		||||
  "plan": {
 | 
			
		||||
    "active": true,
 | 
			
		||||
    "aggregate_usage": null,
 | 
			
		||||
    "amount": 8000,
 | 
			
		||||
    "billing_scheme": "per_unit",
 | 
			
		||||
    "created": 1539831971,
 | 
			
		||||
    "currency": "usd",
 | 
			
		||||
    "id": "plan_Do3xCvbzO89OsR",
 | 
			
		||||
    "interval": "year",
 | 
			
		||||
    "interval_count": 1,
 | 
			
		||||
    "livemode": false,
 | 
			
		||||
    "metadata": {},
 | 
			
		||||
    "nickname": "annual",
 | 
			
		||||
    "object": "plan",
 | 
			
		||||
    "product": "prod_Do3x494SetTDpx",
 | 
			
		||||
    "tiers": null,
 | 
			
		||||
    "tiers_mode": null,
 | 
			
		||||
    "transform_usage": null,
 | 
			
		||||
    "trial_period_days": null,
 | 
			
		||||
    "usage_type": "licensed"
 | 
			
		||||
  },
 | 
			
		||||
  "quantity": 8,
 | 
			
		||||
  "start": 1539881154,
 | 
			
		||||
  "status": "active",
 | 
			
		||||
  "tax_percent": 0.0,
 | 
			
		||||
  "trial_end": null,
 | 
			
		||||
  "trial_start": null
 | 
			
		||||
}
 | 
			
		||||
@@ -0,0 +1,33 @@
 | 
			
		||||
{
 | 
			
		||||
  "card": {
 | 
			
		||||
    "address_city": "Pacific",
 | 
			
		||||
    "address_country": "United States",
 | 
			
		||||
    "address_line1": "Under the sea,",
 | 
			
		||||
    "address_line1_check": "unchecked",
 | 
			
		||||
    "address_line2": null,
 | 
			
		||||
    "address_state": null,
 | 
			
		||||
    "address_zip": "33333",
 | 
			
		||||
    "address_zip_check": "unchecked",
 | 
			
		||||
    "brand": "Visa",
 | 
			
		||||
    "country": "US",
 | 
			
		||||
    "cvc_check": "unchecked",
 | 
			
		||||
    "dynamic_last4": null,
 | 
			
		||||
    "exp_month": 3,
 | 
			
		||||
    "exp_year": 2033,
 | 
			
		||||
    "fingerprint": "6dAXT9VZvwro65EK",
 | 
			
		||||
    "funding": "credit",
 | 
			
		||||
    "id": "card_1DMedAGh0CmXqmnwDLwrAV1v",
 | 
			
		||||
    "last4": "4242",
 | 
			
		||||
    "metadata": {},
 | 
			
		||||
    "name": "Ada Starr",
 | 
			
		||||
    "object": "card",
 | 
			
		||||
    "tokenization_method": null
 | 
			
		||||
  },
 | 
			
		||||
  "client_ip": "107.202.144.213",
 | 
			
		||||
  "created": 1539881152,
 | 
			
		||||
  "id": "tok_1DMedAGh0CmXqmnwduQE6C3S",
 | 
			
		||||
  "livemode": false,
 | 
			
		||||
  "object": "token",
 | 
			
		||||
  "type": "card",
 | 
			
		||||
  "used": false
 | 
			
		||||
}
 | 
			
		||||
@@ -253,21 +253,20 @@ class StripeTest(ZulipTestCase):
 | 
			
		||||
        self.assertEqual(response.status_code, 302)
 | 
			
		||||
        self.assertEqual('/billing/', response.url)
 | 
			
		||||
 | 
			
		||||
    @patch("stripe.Invoice.upcoming", side_effect=mock_upcoming_invoice)
 | 
			
		||||
    @patch("stripe.Customer.retrieve", side_effect=mock_customer_with_subscription)
 | 
			
		||||
    @patch("stripe.Customer.create", side_effect=mock_create_customer)
 | 
			
		||||
    @patch("stripe.Subscription.create", side_effect=mock_create_subscription)
 | 
			
		||||
    def test_billing_page_permissions(self, mock_create_subscription: Mock,
 | 
			
		||||
                                      mock_create_customer: Mock,
 | 
			
		||||
                                      mock_customer_with_subscription: Mock,
 | 
			
		||||
                                      mock_upcoming_invoice: Mock) -> None:
 | 
			
		||||
    @mock_stripe("stripe.Token.create")
 | 
			
		||||
    @mock_stripe("stripe.Invoice.upcoming")
 | 
			
		||||
    @mock_stripe("stripe.Customer.retrieve")
 | 
			
		||||
    @mock_stripe("stripe.Customer.create")
 | 
			
		||||
    @mock_stripe("stripe.Subscription.create")
 | 
			
		||||
    def test_billing_page_permissions(self, mock5: Mock, mock4: Mock, mock3: Mock,
 | 
			
		||||
                                      mock2: Mock, mock1: Mock) -> None:
 | 
			
		||||
        # Check that non-admins can access /upgrade via /billing, when there is no Customer object
 | 
			
		||||
        self.login(self.example_email('hamlet'))
 | 
			
		||||
        response = self.client_get("/billing/")
 | 
			
		||||
        self.assertEqual(response.status_code, 302)
 | 
			
		||||
        self.assertEqual('/upgrade/', response.url)
 | 
			
		||||
        # Check that non-admins can sign up and pay
 | 
			
		||||
        self.client_post("/upgrade/", {'stripeToken': self.token,
 | 
			
		||||
        self.client_post("/upgrade/", {'stripeToken': stripe_create_token().id,
 | 
			
		||||
                                       'signed_seat_count': self.signed_seat_count,
 | 
			
		||||
                                       'salt': self.salt,
 | 
			
		||||
                                       'plan': Plan.CLOUD_ANNUAL})
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user