Ejemplo n.º 1
0
    def test_new_list(self, mock_requests):

        mock_requests.register_uri(
            'GET',
            ("https://api.chartmogul.com/v1/invoices"
            "?external_id=INV0001&customer_uuid=cus_f466e33d-ff2b-4a11-8f85-417eb02157a7"),
            request_headers={'Authorization': 'Basic dG9rZW46c2VjcmV0'},
            headers={'Content-Type': 'application/json'},
            status_code=200,
            text=newInvoiceListExample
        )

        config = Config("token", "secret")  # is actually checked in mock
        result = Invoice.all(config,
                             customer_uuid='cus_f466e33d-ff2b-4a11-8f85-417eb02157a7',
                             external_id='INV0001').get()

        self.assertEqual(mock_requests.call_count, 1, "expected call")
        cu = []
        cu.append('cus_f466e33d-ff2b-4a11-8f85-417eb02157a7')
        ei = []
        ei.append('inv0001')
        self.assertEqual(mock_requests.last_request.qs, {'customer_uuid': cu,'external_id': ei})
        # Struct too complex to do 1:1 comparison
        self.assertTrue(isinstance(result, Invoice._many))
        self.assertEqual(len(result.invoices), 1)

        self.assertEqual(result.invoices[0].customer_uuid, 'cus_f466e33d-ff2b-4a11-8f85-417eb02157a7')
        self.assertEqual(result.current_page, 1)
        self.assertEqual(result.total_pages, 1)
Ejemplo n.º 2
0
    def test_connectSubscriptions(self, mock_requests):
        mock_requests.register_uri(
            'POST',
            "https://api.chartmogul.com/v1/customers/cus_5915ee5a-babd-406b-b8ce-d207133fb4cb/connect_subscriptions",
            status_code=202)

        jsonRequest = {
            'subscriptions': [{
                "data_source_uuid":
                "ds_ade45e52-47a4-231a-1ed2-eb6b9e541213",
                "external_id":
                "d1c0c885-add0-48db-8fa9-0bdf5017d6b0"
            }, {
                "data_source_uuid":
                "ds_ade45e52-47a4-231a-1ed2-eb6b9e541213",
                "external_id":
                "9db5f4a1-1695-44c0-8bd4-de7ce4d0f1d4"
            }]
        }
        config = Config("token", "secret")
        result = Customer.connectSubscriptions(
            config,
            uuid='cus_5915ee5a-babd-406b-b8ce-d207133fb4cb',
            data=jsonRequest).get()
        self.assertEqual(mock_requests.call_count, 1, "expected call")
        self.assertEqual(mock_requests.last_request.qs, {})
        self.assertEqual(mock_requests.last_request.json(), jsonRequest)
        self.assertEqual(result, None)
Ejemplo n.º 3
0
    def test_add(self, mock_requests):
        mock_requests.register_uri(
            'POST',
            'https://api.chartmogul.com/v1/customers/CUSTOMER_UUID/attributes/custom',
            status_code=200,
            json=simpleJSONResult)

        expected = CustomAttributes(**simpleJSONResult)

        config = Config('token', 'secret')
        result = CustomAttributes.add(config,
                                      uuid='CUSTOMER_UUID',
                                      data=jsonData).get()

        self.assertEqual(mock_requests.call_count, 1, 'expected call')
        self.assertEqual(mock_requests.last_request.qs, {})
        self.assertEqual(mock_requests.last_request.json(), jsonData)
        self.assertTrue(isinstance(result, CustomAttributes))
        self.assertEqual(result.custom['CAC'], expected.custom['CAC'])
        self.assertEqual(result.custom['utmCampaign'],
                         expected.custom['utmCampaign'])
        self.assertEqual(result.custom['convertedAt'],
                         expected.custom['convertedAt'])
        self.assertEqual(result.custom['pro'], expected.custom['pro'])
        self.assertEqual(result.custom['salesRep'],
                         expected.custom['salesRep'])
Ejemplo n.º 4
0
    def test_all(self, mock_requests):
        mock_requests.register_uri(
            'GET',
            ("https://api.chartmogul.com/v1/metrics/all?start-date=2015-01-01"
             "&end-date=2015-11-24&interval=month&geo=GB&plans=PRO+Plan"),
            status_code=200,
            json=allMetricsJSON)

        config = Config("token", "secret")
        result = Metrics.all(config,
                             start_date='2015-01-01',
                             end_date='2015-11-24',
                             interval='month',
                             geo='GB',
                             plans='PRO Plan').get()
        expected = Metrics._many(parsedEntries)

        self.assertEqual(mock_requests.call_count, 1, "expected call")
        self.assertEqual(
            mock_requests.last_request.qs, {
                'end-date': ['2015-11-24'],
                'geo': ['gb'],
                'interval': ['month'],
                'plans': ['pro plan'],
                'start-date': ['2015-01-01']
            })
        self.assertEqual(mock_requests.last_request.text, None)
        self.assertEqual(str(result), str(expected))
    def test_all_plan_groups(self, mock_requests):
        expected_plan_groups = {
            "plan_groups": [
                {
                    "uuid": u"whatever_uuid",
                    "name": u"good_plan",
                    "plans_count": 2
                },
                {
                    "uuid": u"my_uuid",
                    "name": u"best_plan",
                    "plans_count": 5
                },
            ],
            "current_page":
            1,
            "total_pages":
            1
        }
        mock_requests.register_uri('GET',
                                   "https://api.chartmogul.com/v1/plan_groups",
                                   status_code=200,
                                   json=expected_plan_groups)

        config = Config("token", "secret")
        result = PlanGroup.all(config).get()

        self.assertEqual(mock_requests.call_count, 1, "expected call")
        self.assertEqual(mock_requests.last_request.qs, {})
        self.assertEqual(mock_requests.last_request.text, None)
        self.assertTrue(isinstance(result.plan_groups[0], PlanGroup))
        self.assertEqual(result.plan_groups[0].uuid, "whatever_uuid")
        self.assertEqual(result.plan_groups[1].uuid, "my_uuid")
    def test_modify_plan_group_name(self, mock_requests):
        expected_plan_group_dict = {
            "uuid": u"whatever_uuid",
            "name": u"new_name",
            "plans_count": 2
        }
        mock_requests.register_uri(
            'PATCH',
            "https://api.chartmogul.com/v1/plan_groups/whatever_uuid",
            request_headers={'Authorization': 'Basic dG9rZW46c2VjcmV0'},
            status_code=200,
            json=expected_plan_group_dict)
        config = Config("token", "secret")  # is actually checked in mock
        result = PlanGroup.modify(config,
                                  uuid="whatever_uuid",
                                  data={
                                      "name": "new_name"
                                  }).get()

        self.assertEqual(mock_requests.call_count, 1, "expected call")
        self.assertEqual(mock_requests.last_request.qs, {})
        self.assertEqual(mock_requests.last_request.json(),
                         {"name": u"new_name"})
        self.assertEqual(result.uuid, "whatever_uuid")
        self.assertEqual(result.name, "new_name")
        self.assertEqual(result.plans_count, 2)
    def test_create_plan_group(self, mock_requests):
        expected_plan_group_dict = {
            "uuid": u"whatever_uuid",
            "name": u"Gold Plan Group",
            "plans_count": 2
        }
        sent = {
            "name":
            "Gold Plan Group",
            "plans": [
                "pl_fe0824c8-4738-11ea-a26c-3b021eb4c733",
                "pl_fe160a70-4738-11ea-a26c-e38e12dbd8be"
            ]
        }
        mock_requests.register_uri(
            'POST',
            "https://api.chartmogul.com/v1/plan_groups",
            request_headers={'Authorization': 'Basic dG9rZW46c2VjcmV0'},
            status_code=200,
            json=expected_plan_group_dict)
        config = Config("token", "secret")  # is actually checked in mock
        plan_group = PlanGroup.create(config, data=sent).get()
        expected = PlanGroup(**expected_plan_group_dict)

        self.assertEqual(mock_requests.call_count, 1, "expected call")
        self.assertEqual(mock_requests.last_request.qs, {})
        self.assertEqual(mock_requests.last_request.json(), sent)
        self.assertEqual(str(plan_group), str(expected))
    def test_retrieve_invoice(self, mock_requests):

        mock_requests.register_uri('GET', (
            "https://api.chartmogul.com/v1/invoices/inv_22910fc6-c931-48e7-ac12-90d2cb5f0059"
        ),
                                   request_headers={
                                       'Authorization':
                                       'Basic dG9rZW46c2VjcmV0'
                                   },
                                   headers={
                                       'Content-Type': 'application/json'
                                   },
                                   status_code=200,
                                   text=retrieveInvoiceExample)

        config = Config("token", "secret")  # is actually checked in mock
        result = Invoice.retrieve(
            config, uuid='inv_22910fc6-c931-48e7-ac12-90d2cb5f0059').get()

        self.assertEqual(mock_requests.call_count, 1, "expected call")

        # Struct too complex to do 1:1 comparison
        self.assertTrue(isinstance(result, Invoice))

        self.assertEqual(result.uuid,
                         'inv_22910fc6-c931-48e7-ac12-90d2cb5f0059')
Ejemplo n.º 9
0
    def test_all(self, mock_requests):
        mock_requests.register_uri(
            'GET',
            "https://api.chartmogul.com/v1/customers",
            request_headers={'Authorization': 'Basic dG9rZW46c2VjcmV0'},
            status_code=200,
            json=docsListSample)

        config = Config("token", "secret")
        customers = Customer.all(config).get()

        expected = Customer._many(entries=[deserializedCustomer],
                                  has_more=True,
                                  per_page=50,
                                  page=1,
                                  current_page=1,
                                  total_pages=4)

        self.assertEqual(mock_requests.call_count, 1, "expected call")
        self.assertEqual(mock_requests.last_request.qs, {})
        self.assertEqual(mock_requests.last_request.text, None)
        # Complete comparing too complicated, would need to:
        #  1) sort all dictionaries,
        #  2) use special class/library for timezones (Python has no default)
        # self.assertEqual(str(customers), str(expected))
        # => check only first level fields are OK
        self.assertEqual(sorted(dir(customers)), sorted(dir(expected)))
        self.assertEqual(sorted(customers.entries[0].attributes.stripe),
                         sorted(expected.entries[0].attributes.stripe))
        self.assertEqual(sorted(customers.entries[0].attributes.clearbit),
                         sorted(expected.entries[0].attributes.clearbit))
        self.assertTrue(isinstance(customers.entries[0], Customer))
Ejemplo n.º 10
0
    def test_list_imported_subscriptions(self, mock_requests):
        """ Test listing (get) subscriptions.
        """
        mock_requests.register_uri(
            'GET',
            "https://api.chartmogul.com/v1/import/customers/some_uuid/subscriptions",
            request_headers={'Authorization': 'Basic dG9rZW46c2VjcmV0'},
            status_code=200,
            json={
                  "customer_uuid": "some_uuid",
                  "subscriptions":[
                    {
                      "uuid": "sub_e6bc5407-e258-4de0-bb43-61faaf062035",
                      "external_id": "sub_0001",
                      "plan_uuid": "pl_eed05d54-75b4-431b-adb2-eb6b9e543206",
                      "data_source_uuid": "ds_fef05d54-47b4-431b-aed2-eb6b9e545430",
                      "cancellation_dates":[]
                    }
                  ],
                  "current_page": 1,
                  "total_pages": 1
                }
        )
        config = Config("token", "secret")  # is actually checked in mock
        result = Subscription.list_imported(config, uuid="some_uuid").get()

        self.assertEqual(mock_requests.call_count, 1, "expected call")
        self.assertEqual(mock_requests.last_request.qs, {})
        self.assertEqual(result.__class__.__name__, Subscription._many.__name__)
        self.assertEqual(result.customer_uuid, "some_uuid")
Ejemplo n.º 11
0
    def test_all(self, mock_requests):
        mock_requests.register_uri(
            'GET',
            "https://api.chartmogul.com/v1/data_sources",
            status_code=200,
            json={
                "data_sources": [{
                    "name": "test",
                    "uuid": "my_uuid",
                    "created_at": "2016-01-10T15:34:05Z",
                    "status": "never_imported"
                }]
            })

        config = Config("token", "secret")
        ds = DataSource.all(config).get()
        expected = DataSource._many(data_sources=[
            DataSource(
                **{
                    "name": u"test",
                    "uuid": u"my_uuid",
                    "created_at": datetime(2016, 1, 10, 15, 34, 5),
                    "status": u"never_imported"
                })
        ])

        self.assertEqual(mock_requests.call_count, 1, "expected call")
        self.assertEqual(mock_requests.last_request.qs, {})
        self.assertEqual(mock_requests.last_request.text, None)
        self.assertTrue(isinstance(ds.data_sources[0], DataSource))
Ejemplo n.º 12
0
    def test_modify_subscription(self, mock_requests):
        """ Test modify (patch) subscription (cancellation_dates).
        """
        mock_requests.register_uri(
            'PATCH',
            "https://api.chartmogul.com/v1/import/subscriptions/some_uuid",
            request_headers={'Authorization': 'Basic dG9rZW46c2VjcmV0'},
            status_code=200,
            json={
                "uuid": "some_uuid",
                "external_id": "sub_0001",
                "customer_uuid": "cus_f466e33d-ff2b-4a11-8f85-417eb02157a7",
                "plan_uuid": "pl_eed05d54-75b4-431b-adb2-eb6b9e543206",
                "cancellation_dates": [],
                "data_source_uuid": "ds_fef05d54-47b4-431b-aed2-eb6b9e545430"
            }
        )
        config = Config("token", "secret")  # is actually checked in mock
        result = Subscription.modify(config, uuid="some_uuid", data={
            "cancellation_dates": []}).get()

        self.assertEqual(mock_requests.call_count, 1, "expected call")
        self.assertEqual(mock_requests.last_request.qs, {})
        self.assertEqual(mock_requests.last_request.json(),
                         {"cancellation_dates": []})
        self.assertEqual(result.__class__, Subscription)
        self.assertEqual(result.__dict__, Subscription(**{
            "cancellation_dates": [],
            "customer_uuid": u"cus_f466e33d-ff2b-4a11-8f85-417eb02157a7",
            "data_source_uuid": u"ds_fef05d54-47b4-431b-aed2-eb6b9e545430",
            "uuid": u"some_uuid",
            "external_id": u"sub_0001",
            "plan_uuid": u"pl_eed05d54-75b4-431b-adb2-eb6b9e543206"
        }).__dict__)
Ejemplo n.º 13
0
    def test_cancel_subscription(self, mock_requests):
        """ Test cancel (patch) subscription (cancelled_at).
        """
        mock_requests.register_uri(
            'PATCH',
            "https://api.chartmogul.com/v1/import/subscriptions/some_uuid",
            request_headers={'Authorization': 'Basic dG9rZW46c2VjcmV0'},
            status_code=200,
            json={
                "uuid": "some_uuid",
                "external_id": "sub_0001",
                "customer_uuid": "cus_f466e33d-ff2b-4a11-8f85-417eb02157a7",
                "plan_uuid": "pl_eed05d54-75b4-431b-adb2-eb6b9e543206",
                "cancellation_dates": ["2016-01-15T00:00:00.000Z"],
                "data_source_uuid": "ds_fef05d54-47b4-431b-aed2-eb6b9e545430"
            }
        )
        config = Config("token", "secret")  # is actually checked in mock
        result = Subscription.cancel(config,
                                     uuid="some_uuid",
                                     data={
                                         "cancelled_at": datetime(2016, 1, 15, 0, 0, 0)
                                     }).get()

        self.assertEqual(mock_requests.call_count, 1, "expected call")
        self.assertEqual(mock_requests.last_request.qs, {})
        self.assertEqual(mock_requests.last_request.json(), {
            "cancelled_at": "2016-01-15T00:00:00"})
        self.assertTrue(isinstance(result, Subscription))
        self.assertEqual(result.uuid, "some_uuid")
Ejemplo n.º 14
0
 def test_create_plan(self, mock_requests):
     expected_plan_dict = {
         "uuid": u"whatever_uuid",
         "data_source_uuid": u"some_uuid",
         "name": u"new_name",
         "interval_count": 2,
         "interval_unit": u"moonshines",
         "external_id": u"custom_filter"
     }
     sent = {
         "data_source_uuid": "ds_9bb53a1e-edfd-11e6-bf83-af49e978cb11",
         "name": "Gold Plan",
         "interval_count": 1,
         "interval_unit": "month",
         "external_id": "plan_0002"
     }
     mock_requests.register_uri(
         'POST',
         "https://api.chartmogul.com/v1/plans",
         request_headers={'Authorization': 'Basic dG9rZW46c2VjcmV0'},
         status_code=200,
         json=expected_plan_dict)
     config = Config("token", "secret")  # is actually checked in mock
     plan = Plan.create(config, data=sent).get()
     expected = Plan(**expected_plan_dict)
     self.assertEqual(mock_requests.call_count, 1, "expected call")
     self.assertEqual(mock_requests.last_request.qs, {})
     self.assertEqual(mock_requests.last_request.json(), sent)
     self.assertEqual(str(plan), str(expected))
Ejemplo n.º 15
0
 def test_modify_plan(self, mock_requests):
     expected_plan_dict = {
         "uuid": u"whatever_uuid",
         "data_source_uuid": u"some_uuid",
         "name": u"new_name",
         "interval_count": 2,
         "interval_unit": u"moonshines",
         "external_id": u"custom_filter"
     }
     mock_requests.register_uri(
         'PATCH',
         "https://api.chartmogul.com/v1/plans/whatever_uuid",
         request_headers={'Authorization': 'Basic dG9rZW46c2VjcmV0'},
         status_code=200,
         json=expected_plan_dict)
     config = Config("token", "secret")  # is actually checked in mock
     plan = Plan.modify(config,
                        uuid="whatever_uuid",
                        data={
                            "name": "new_name"
                        }).get()
     expected = Plan(**expected_plan_dict)
     self.assertEqual(mock_requests.call_count, 1, "expected call")
     self.assertEqual(mock_requests.last_request.qs, {})
     self.assertEqual(mock_requests.last_request.json(),
                      {"name": u"new_name"})
     self.assertEqual(str(plan), str(expected))
Ejemplo n.º 16
0
    def test_create(self, mock_requests):
        mock_requests.register_uri('POST',
                                   "https://api.chartmogul.com/v1/customers",
                                   status_code=200,
                                   json=docsListSample["entries"][0])

        config = Config("token", "secret")
        Customer.create(config, data=createCustomer).get()
        self.assertEqual(mock_requests.call_count, 1, "expected call")
        self.assertEqual(mock_requests.last_request.qs, {})
        self.assertEqual(mock_requests.last_request.json(), sentCreateExpected)
    def test_destroy_plan_group(self, mock_requests):
        mock_requests.register_uri(
            'DELETE',
            "https://api.chartmogul.com/v1/plan_groups/my_uuid",
            status_code=204)

        config = Config("token", "secret")
        result = PlanGroup.destroy(config, uuid="my_uuid").get()

        self.assertEqual(mock_requests.call_count, 1, "expected call")
        self.assertEqual(mock_requests.last_request.qs, {})
        self.assertEqual(mock_requests.last_request.text, None)
        self.assertEqual(result, None)
Ejemplo n.º 18
0
    def test_delete(self, mock_requests):

        mock_requests.register_uri(
            'DELETE', ("https://api.chartmogul.com/v1/invoices"
                       "/inv_f466e33d-ff2b-4a11-8f85-417eb02157a7"),
            request_headers={'Authorization': 'Basic dG9rZW46c2VjcmV0'},
            status_code=204)

        config = Config("token", "secret")  # is actually checked in mock
        result = Invoice.destroy(
            config, uuid='inv_f466e33d-ff2b-4a11-8f85-417eb02157a7').get()

        self.assertEqual(mock_requests.call_count, 1, "expected call")
        self.assertEqual(mock_requests.last_request.qs, {})
        self.assertTrue(result is None)
Ejemplo n.º 19
0
    def test_retrieve(self, mock_requests):
        mock_requests.register_uri(
            'GET',
            "https://api.chartmogul.com/v1/account",
            request_headers={'Authorization': 'Basic dG9rZW46c2VjcmV0'},
            status_code=200,
            json=jsonResponse)

        config = Config("token", "secret")  # is actually checked in mock
        account = Account.retrieve(config).get()
        self.assertTrue(isinstance(account, Account))
        self.assertEqual(account.name, "Example Test Company")
        self.assertEqual(account.currency, "EUR")
        self.assertEqual(account.time_zone, "Europe/Berlin")
        self.assertEqual(account.week_start_on, "sunday")
Ejemplo n.º 20
0
    def test_search(self, mock_requests):
        mock_requests.register_uri(
            'GET',
            "https://api.chartmogul.com/v1/customers/[email protected]",
            status_code=200,
            json=docsListSample)

        config = Config("token", "secret")
        result = Customer.search(config, email='*****@*****.**').get()
        self.assertEqual(mock_requests.call_count, 1, "expected call")
        self.assertEqual(mock_requests.last_request.qs,
                         {'email': ['*****@*****.**']})
        self.assertEqual(mock_requests.last_request.text, None)
        self.assertTrue(isinstance(result, Customer._many))
        self.assertTrue(isinstance(result.entries[0], Customer))
Ejemplo n.º 21
0
    def test_add_to_email(self, mock_requests):
        mock_requests.register_uri(
            'POST',
            'https://api.chartmogul.com/v1/customers/CUSTOMER_UUID/attributes/custom',
            status_code=200,
            json=jsonResponse2)

        config = Config('token', 'secret')
        result = CustomAttributes.add(config,
                                      uuid='CUSTOMER_UUID',
                                      data=jsonRequest2).get()

        self.assertEqual(mock_requests.call_count, 1, 'expected call')
        self.assertEqual(mock_requests.last_request.qs, {})
        self.assertEqual(mock_requests.last_request.json(), jsonRequest2)
Ejemplo n.º 22
0
    def test_ping(self, mock_requests):
        mock_requests.register_uri(
            'GET',
            "https://api.chartmogul.com/v1/ping",
            request_headers={'Authorization': 'Basic dG9rZW46c2VjcmV0'},
            status_code=200,
            json={"data": "pong!"}
        )

        config = Config("token", "secret")  # is actually checked in mock
        pong = Ping.ping(config).get()
        expected = Ping(**{"data": u"pong!"})
        self.assertEqual(mock_requests.call_count, 1, "expected call")
        self.assertEqual(mock_requests.last_request.qs, {})
        self.assertEqual(mock_requests.last_request.text, None)
        self.assertEqual(str(pong), str(expected))
Ejemplo n.º 23
0
    def test_delete_not_found(self, mock_requests):

        mock_requests.register_uri(
            'DELETE', ("https://api.chartmogul.com/v1/invoices"
                       "/inv_f466e33d-ff2b-4a11-8f85-417eb02157a7"),
            request_headers={'Authorization': 'Basic dG9rZW46c2VjcmV0'},
            headers={'Content-Type': 'application/json'},
            status_code=404,
            json={'error': 'Invoice not found'})

        config = Config("token", "secret")  # is actually checked in mock
        with self.assertRaises(APIError) as context:
            result = Invoice.destroy(
                config, uuid='inv_f466e33d-ff2b-4a11-8f85-417eb02157a7').get()

        self.assertEqual(mock_requests.call_count, 1, "expected call")
Ejemplo n.º 24
0
    def test_create(self, mock_requests):
        mock_requests.register_uri(
            'POST',
            "https://api.chartmogul.com/v1/import/customers/UUID/invoices",
            request_headers={'Authorization': 'Basic dG9rZW46c2VjcmV0'},
            status_code=200,
            json=responseData)

        config = Config("token", "secret")  # is actually checked in mock
        result = Invoice.create(config, uuid="UUID", data=requestData).get()

        self.assertEqual(mock_requests.call_count, 1, "expected call")
        self.assertEqual(mock_requests.last_request.qs, {})
        self.assertEqual(mock_requests.last_request.json(), requestSerialized)
        # Struct too complex to do 1:1 comparison
        self.assertTrue(isinstance(result, Invoice._many))
        self.assertEqual(len(result.invoices), 1)
Ejemplo n.º 25
0
    def test_api_incorrect(self, mock_requests):
        mock_requests.register_uri(
            'POST',
            "https://api.chartmogul.com/v1/data_sources",
            status_code=400,
            json={
                "code": 400,
                "message": "Parameter \"name\" is missing",
                "param": "name"
            })

        config = Config("token", "secret")
        try:
            DataSource.create(config, data={"xname": "abc"}).get()
        except APIError as err:
            self.assertTrue(isinstance(err.__cause__, HTTPError))
        else:
            self.fail('ArgumentMissingError not raised')
Ejemplo n.º 26
0
    def test_forget_uuid_destroy(self, mock_requests):
        mock_requests.register_uri(
            'DELETE',
            "https://api.chartmogul.com/v1/data_sources/my_uuid",
            status_code=204)
        mock_requests.register_uri(
            'DELETE',
            "https://api.chartmogul.com/v1/data_sources",
            status_code=404,
            text="Not found")

        config = Config("token", "secret")
        try:
            res = DataSource.destroy(config).get()
        except ArgumentMissingError:
            pass
        else:
            self.fail('ArgumentMissingError not raised')
Ejemplo n.º 27
0
    def test_delete_all(self, mock_requests):
        mock_requests.register_uri(
            'DELETE', ("https://api.chartmogul.com/v1/data_sources"
                       "/ds_f466e33d-ff2b-4a11-8f85-417eb02157a7/customers"
                       "/cus_f466e33d-ff2b-4a11-8f85-417eb02157a7/invoices"),
            request_headers={'Authorization': 'Basic dG9rZW46c2VjcmV0'},
            headers={'Content-Type': 'application/json'},
            status_code=204)

        config = Config("token", "secret")  # is actually checked in mock
        result = Invoice.destroy_all(
            config,
            data_source_uuid='ds_f466e33d-ff2b-4a11-8f85-417eb02157a7',
            customer_uuid='cus_f466e33d-ff2b-4a11-8f85-417eb02157a7').get()

        self.assertEqual(mock_requests.call_count, 1, "expected call")
        self.assertEqual(mock_requests.last_request.qs, {})
        self.assertTrue(result is None)
Ejemplo n.º 28
0
    def test_date_serialization(self, mock_requests):
        mock_requests.register_uri(
            'POST',
            "https://api.chartmogul.com/v1/data_sources",
            status_code=200,  # whatever, not testing this
            json={'data_sources': []})

        config = Config("token", "secret")

        DataSource.create(config, data={"test_date": date(2015, 1, 1)}).get()
        self.assertEqual(mock_requests.last_request.json(),
                         {"test_date": u"2015-01-01"})

        DataSource.create(config,
                          data={
                              "test_datetime": datetime(2015, 1, 1, 1, 2, 3)
                          }).get()
        self.assertEqual(mock_requests.last_request.json(),
                         {'test_datetime': u'2015-01-01T01:02:03'})
Ejemplo n.º 29
0
 def test_add(self, mock_requests):
     requestData = {"tags": ["important", "Prio1"]}
     expected_dict = {
         "tags":
         [u"engage", u"unit loss", u"discountable", u"important", u"Prio1"]
     }
     mock_requests.register_uri(
         'POST',
         "https://api.chartmogul.com/v1/customers/UUID/attributes/tags",
         request_headers={'Authorization': 'Basic dG9rZW46c2VjcmV0'},
         status_code=200,
         json=expected_dict)
     config = Config("token", "secret")  # is actually checked in mock
     tags = Tags.add(config, uuid="UUID", data=requestData).get()
     expected = Tags(**expected_dict)
     self.assertEqual(mock_requests.call_count, 1, "expected call")
     self.assertEqual(mock_requests.last_request.qs, {})
     self.assertEqual(mock_requests.last_request.json(), requestData)
     self.assertEqual(str(tags), str(expected))
Ejemplo n.º 30
0
 def test_cursor_list_plans(self, mock_requests):
     expected_plan_dict = {
         "uuid": u"whatever_uuid",
         "data_source_uuid": u"some_uuid",
         "name": u"some plan",
         "interval_count": 2,
         "interval_unit": u"moonshines",
         "external_id": u"custom_filter"
     }
     mock_requests.register_uri('GET', (
         "https://api.chartmogul.com/v1/plans?page=5"
         "&per_page=12&data_source_uuid=some_uuid&external_id=custom_filter"
     ),
                                request_headers={
                                    'Authorization':
                                    'Basic dG9rZW46c2VjcmV0'
                                },
                                status_code=200,
                                json={
                                    "plans": [expected_plan_dict],
                                    "current_page": 5,
                                    "total_pages": 18
                                })
     config = Config("token", "secret")  # is actually checked in mock
     plan = Plan.all(config,
                     page=5,
                     per_page=12,
                     data_source_uuid="some_uuid",
                     external_id="custom_filter").get()
     expected = Plan._many([Plan(**expected_plan_dict)],
                           current_page=5,
                           total_pages=18)
     self.assertEqual(mock_requests.call_count, 1, "expected call")
     self.assertEqual(
         mock_requests.last_request.qs, {
             'data_source_uuid': ['some_uuid'],
             'external_id': ['custom_filter'],
             'page': ['5'],
             'per_page': ['12']
         })
     self.assertEqual(mock_requests.last_request.text, None)
     self.assertEqual(str(plan), str(expected))