Пример #1
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))
Пример #2
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')
Пример #3
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'})
Пример #4
0
    def test_requests_retry_session_on_resource(self):
        httpretty.register_uri(httpretty.POST,
                               "https://api.chartmogul.com/v1/data_sources",
                               responses=[
                                   httpretty.Response(body='{}', status=500),
                                   httpretty.Response(body='{}', status=500),
                                   httpretty.Response(body='{}', status=500),
                                   httpretty.Response(body='{}', status=500),
                                   httpretty.Response(body='{}', status=200),
                               ])

        # max_retries set as 4
        # backoff_factor set as 0 to avoid waiting while testing
        config = Config("token", "secret", None, 4, 0)
        try:
            DataSource.create(config, data={
                "test_date": date(2015, 1, 1)
            }).get()
        except RetryError:
            self.fail("request raised retryError unexpectedly!")
Пример #5
0
    def test_forget_uuid_retrieve(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-10 15:34:05",
                    "status": "never_imported"
                }]
            })

        config = Config("token", "secret")
        try:
            DataSource.retrieve(config).get()
        except ArgumentMissingError:
            pass
        else:
            self.fail('ArgumentMissingError not raised')
Пример #6
0
    def test_destroy(self, mock_requests):
        mock_requests.register_uri(
            'DELETE',
            "https://api.chartmogul.com/v1/data_sources/my_uuid",
            status_code=204)

        config = Config("token", "secret")
        res = DataSource.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(res, None)
Пример #7
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')
Пример #8
0
    def test_create(self, mock_requests):
        mock_requests.register_uri(
            'POST',
            "https://api.chartmogul.com/v1/data_sources",
            status_code=200,
            json={
                "name": "test",
                "uuid": "my_uuid",
                "created_at": "2016-01-10T15:34:05.144Z",
                "status": "never_imported"
            })

        config = Config("token", "secret")
        ds = DataSource.create(config, data={"name": "test"}).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": "test"})
        # Direct comparison impossible because of tzinfo difference between 2.7 and 3.3+
        self.assertTrue(isinstance(ds, DataSource))
        self.assertTrue(isinstance(ds.created_at, datetime))
        self.assertEqual(ds.uuid, u"my_uuid")
Пример #9
0
 def test_delete_invoice(self):
     result = (DataSource.create(config, data={
         'name': 'Test'
     }).then(_create_plan).then(_create_invoice).then(
         _delete_invoice).get())
     print(result)