Ejemplo n.º 1
0
 def test_invalid_serializer(self):
     serializer = CreateSubscriptionSerializer(data={"plan": self.plan.id})
     self.assertFalse(serializer.is_valid())
     self.assertEqual(serializer.validated_data, {})
     self.assertEqual(
         serializer.errors, {"stripe_token": ["This field is required."]}
     )
Ejemplo n.º 2
0
 def test_invalid_serializer(self):
     serializer = CreateSubscriptionSerializer(data={
         'plan': self.plan.id,
     })
     self.assertFalse(serializer.is_valid())
     self.assertEqual(serializer.validated_data, {})
     self.assertEqual(serializer.errors, {
         'stripe_token': ['This field is required.'],
     })
Ejemplo n.º 3
0
 def test_valid_serializer(self, stripe_token_mock):
     token = stripe_token_mock(card={})
     serializer = CreateSubscriptionSerializer(
         data={"plan": self.plan.id, "stripe_token": token.id}
     )
     self.assertTrue(serializer.is_valid())
     self.assertEqual(serializer.validated_data["plan"], str(self.plan.id))
     self.assertIn("stripe_token", serializer.validated_data)
     self.assertEqual(serializer.errors, {})
Ejemplo n.º 4
0
	def test_valid_serializer(self, stripe_token_mock):
		token = stripe_token_mock(card={})
		serializer = CreateSubscriptionSerializer(
			data={"plan": self.plan.id, "stripe_token": token.id}
		)
		self.assertTrue(serializer.is_valid())
		self.assertEqual(serializer.validated_data["plan"], str(self.plan.id))
		self.assertIn("stripe_token", serializer.validated_data)
		self.assertEqual(serializer.errors, {})
Ejemplo n.º 5
0
 def test_valid_serializer(self, stripe_token_mock):
     token = stripe_token_mock(card={})
     serializer = CreateSubscriptionSerializer(
         data={"plan": settings.DJSTRIPE_PLANS["test0"]["plan"], "stripe_token": token.id}
     )
     self.assertTrue(serializer.is_valid())
     self.assertEqual(serializer.validated_data["plan"], "test0")
     self.assertIn("stripe_token", serializer.validated_data)
     self.assertEqual(serializer.errors, {})
Ejemplo n.º 6
0
 def test_valid_serializer(self, stripe_token_mock):
     token = stripe_token_mock(card={})
     serializer = CreateSubscriptionSerializer(data={
         'plan': self.plan.id,
         'stripe_token': token.id,
     })
     self.assertTrue(serializer.is_valid())
     self.assertEqual(serializer.validated_data['plan'], str(self.plan.id))
     self.assertIn('stripe_token', serializer.validated_data)
     self.assertEqual(serializer.errors, {})
Ejemplo n.º 7
0
 def test_valid_serializer_non_required_fields(self, stripe_token_mock):
     """Test the CreateSubscriptionSerializer is_valid method."""
     token = stripe_token_mock(card={})
     serializer = CreateSubscriptionSerializer(
         data={
             "plan": self.plan.id,
             "stripe_token": token.id,
             "charge_immediately": True,
             "tax_percent": 13.00,
         })
     self.assertTrue(serializer.is_valid())
Ejemplo n.º 8
0
 def test_invalid_serializer(self):
     serializer = CreateSubscriptionSerializer(
         data={
             'plan': settings.DJSTRIPE_PLANS['test0']['plan'],
         }
     )
     self.assertFalse(serializer.is_valid())
     self.assertEqual(serializer.validated_data, {})
     self.assertEqual(serializer.errors, {
         'stripe_token': ['This field is required.'],
     })
Ejemplo n.º 9
0
 def test_valid_serializer(self, stripe_token_mock):
     token = stripe_token_mock(card={})
     serializer = CreateSubscriptionSerializer(
         data={
             'plan': settings.DJSTRIPE_PLANS['test0']['plan'],
             'stripe_token': token.id,
         }
     )
     self.assertTrue(serializer.is_valid())
     self.assertEqual(serializer.validated_data['plan'], 'test0')
     self.assertIn('stripe_token', serializer.validated_data)
     self.assertEqual(serializer.errors, {})
Ejemplo n.º 10
0
 def test_valid_serializer(self, stripe_token_mock):
     token = stripe_token_mock(card={})
     serializer = CreateSubscriptionSerializer(
         data={
             'plan': settings.DJSTRIPE_PLANS['test0']['plan'],
             'stripe_token': token.id,
         }
     )
     self.assertTrue(serializer.is_valid())
     self.assertEqual(serializer.validated_data['plan'], 'test0')
     self.assertIn('stripe_token', serializer.validated_data)
     self.assertEqual(serializer.errors, {})
Ejemplo n.º 11
0
	def test_valid_serializer_non_required_fields(self, stripe_token_mock):
		"""Test the CreateSubscriptionSerializer is_valid method."""
		token = stripe_token_mock(card={})
		serializer = CreateSubscriptionSerializer(
			data={
				"plan": self.plan.id,
				"stripe_token": token.id,
				"charge_immediately": True,
				"tax_percent": 13.00,
			}
		)
		self.assertTrue(serializer.is_valid())
Ejemplo n.º 12
0
    def post(self, request, format=None):
        """
        Create a new current subscription for the user.
        Returns with status code 201.
        """

        serializer = CreateSubscriptionSerializer(data=request.data)

        if serializer.is_valid():
            try:
                customer, created = Customer.get_or_create(
                    subscriber=subscriber_request_callback(self.request))
                customer.update_card(serializer.data["stripe_token"])
                customer.subscribe(serializer.data["plan"])
                return Response(serializer.data,
                                status=status.HTTP_201_CREATED)

            except:
                # TODO
                # Better error messages
                return Response("Something went wrong processing the payment.",
                                status=status.HTTP_400_BAD_REQUEST)

        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 13
0
	def test_invalid_serializer(self):
		serializer = CreateSubscriptionSerializer(data={"plan": self.plan.id})
		self.assertFalse(serializer.is_valid())
		self.assertEqual(serializer.validated_data, {})
		self.assertEqual(serializer.errors, {"stripe_token": ["This field is required."]})