def setUp(self) -> None: super(SubscriptionIntegrationTest, self).setUp() self.client = getnet.Client( os.environ.get("GETNET_SELLER_ID"), os.environ.get("GETNET_CLIENT_ID"), os.environ.get("GETNET_CLIENT_SECRET"), getnet.api.HOMOLOG, ) self.service = Service(self.client) customer_service = customers.Service(self.client) customer = Customer(**customer_sample.copy()) customer.customer_id = str(uuid.uuid4()) customer.document_number = str(random())[2:13] self.customer = customer_service.create(customer) plan_service = plans.Service(self.client) self.plan = plan_service.create( plans.Plan( seller_id=self.client.seller_id, name="Plan Demo", description="Plan Demo", amount=1990, currency="BRL", product_type="service", period={ "type": "monthly", "billing_cycle": 12, }, )) self.card = Card(**card_sample.copy())
def testCreate(self, client_mock): client_mock.post.return_value = response_sample service = Service(client_mock) response = service.create(Subscription(**sample)) self.assertIsInstance(response, SubscriptionResponse) self.assertIsNotNone(response_sample.get("create_date"))
def testGet(self, client_mock): client_mock.get.return_value = response_sample service = Service(client_mock) response = service.get( response_sample.get("subscription").get("subscription_id")) self.assertIsInstance(response, SubscriptionResponse) self.assertEqual(sample.get("order_id"), str(response.order_id)) client_mock.get.assert_called_once_with("/v1/subscriptions/{}".format( response_sample.get("subscription").get("subscription_id")))
def testCancel(self, client_mock): client_mock.post.return_value = response_sample service = Service(client_mock) response = service.cancel( response_sample.get("subscription").get("subscription_id"), "Cancel Message") self.assertIsInstance(response, SubscriptionResponse) self.assertEqual(sample.get("order_id"), str(response.order_id)) client_mock.post.assert_called_once_with( "/v1/subscriptions/{}/cancel".format( response_sample.get("subscription").get("subscription_id")), json=unittest.mock.ANY, )
def testAll(self, client_mock): client_mock.get.return_value = { "subscriptions": [response_sample, response_sample, response_sample], "page": 1, "limit": 100, "total": 3, } service = Service(client_mock) responses = service.all() self.assertIsInstance(responses, ResponseList) self.assertEqual(1, responses.page) self.assertEqual(3, responses.total) self.assertEqual(sample.get("order_id"), str(responses[0].order_id))
class SubscriptionIntegrationTest(VCRTestCase): def setUp(self) -> None: super(SubscriptionIntegrationTest, self).setUp() self.client = getnet.Client( os.environ.get("GETNET_SELLER_ID"), os.environ.get("GETNET_CLIENT_ID"), os.environ.get("GETNET_CLIENT_SECRET"), getnet.api.HOMOLOG, ) self.service = Service(self.client) customer_service = customers.Service(self.client) customer = Customer(**customer_sample.copy()) customer.customer_id = str(uuid.uuid4()) customer.document_number = str(random())[2:13] self.customer = customer_service.create(customer) plan_service = plans.Service(self.client) self.plan = plan_service.create( plans.Plan( seller_id=self.client.seller_id, name="Plan Demo", description="Plan Demo", amount=1990, currency="BRL", product_type="service", period={ "type": "monthly", "billing_cycle": 12, }, )) self.card = Card(**card_sample.copy()) def testCreateInvalid(self): card_token = self.client.generate_token_card("5155901222270002", "customer_21081826") self.card.number_token = card_token subscription = Subscription( order_id="test-{}".format(str(random())[2:10]), customer_id=self.customer.customer_id, plan_id=self.plan.plan_id, credit=Credit(card=self.card), ) response = self.service.create(subscription) self.assertIsInstance(response, SubscriptionResponse) self.assertIsNotNone(response.subscription_id) self.assertEqual(response.status, "failed") self.assertIsInstance(response.payment, PaymentErrorResponse) def testCreate(self): card_token = self.client.generate_token_card("5155901222280001", "customer_21081826") self.card.number_token = card_token subscription = Subscription( order_id="test-{}".format(str(random())[2:10]), customer_id=self.customer.customer_id, plan_id=self.plan.plan_id, credit=Credit(card=self.card), ) response = self.service.create(subscription) self.assertIsInstance(response, SubscriptionResponse) self.assertIsNotNone(response.subscription_id) self.assertEqual(response.status, "success") self.assertIsInstance(response.payment, PaymentResponse) def testCancel(self): card_token = self.client.generate_token_card("5155901222280001", "customer_21081826") self.card.number_token = card_token response = self.service.create( Subscription( order_id="test-{}".format(str(random())[2:10]), customer_id=self.customer.customer_id, plan_id=self.plan.plan_id, credit=Credit(card=self.card), )) self.assertIsInstance(response, SubscriptionResponse) self.assertIsNotNone(response.subscription_id) self.assertEqual(response.status, "success") cancel_response = self.service.cancel(response.subscription_id, "Test Cancel") self.assertEqual(cancel_response.status, "canceled")