Skip to content

Commit

Permalink
Add support for listing pledges and campaigns
Browse files Browse the repository at this point in the history
  • Loading branch information
alexortizrosado committed Dec 22, 2015
1 parent 95faa74 commit d403bb4
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 2 deletions.
25 changes: 23 additions & 2 deletions breeze/breeze.py
Expand Up @@ -28,7 +28,8 @@
EVENTS='/api/events',
PROFILE_FIELDS='/api/profile',
CONTRIBUTIONS='/api/giving',
FUNDS='/api/funds')
FUNDS='/api/funds',
PLEDGES='/api/pledges')


class BreezeError(Exception):
Expand Down Expand Up @@ -483,4 +484,24 @@ def list_funds(self, include_totals=False):
params = []
if include_totals:
params.append('include_totals=1')
return self._request('%s/list?%s' % (ENDPOINTS.FUNDS, '&'.join(params)))
return self._request('%s/list?%s' %
(ENDPOINTS.FUNDS, '&'.join(params)))

def list_campaigns(self):
"""List of campaigns.
Returns:
JSON response."""
return self._request('%s/list_campaigns' % (ENDPOINTS.PLEDGES))

def list_pledges(self, campaign_id):
"""List of pledges within a campaign.
Args:
campaign_id: ID number of a campaign.
Returns:
JSON response."""
return self._request('%s/list_pledges?campaign_id=%s' % (
ENDPOINTS.PLEDGES, campaign_id
))
40 changes: 40 additions & 0 deletions tests/breeze_test.py
Expand Up @@ -338,6 +338,46 @@ def test_list_funds(self):
'%s%s/list?include_totals=1' % (FAKE_SUBDOMAIN,
breeze.ENDPOINTS.FUNDS))

def test_list_campaigns(self):
response = MockResponse(200, json.dumps([{
"id": "12345",
"name": "Building Campaign",
"number_of_pledges": 65,
"total_pledged": 13030,
"created_on": "2014-09-10 02:19:35"
}]))
connection = MockConnection(response)
breeze_api = breeze.BreezeApi(
breeze_url=FAKE_SUBDOMAIN,
api_key=FAKE_API_KEY,
connection=connection)
self.assertEquals(breeze_api.list_campaigns(),
json.loads(response.content))
self.assertEquals(
connection.url,
'%s%s/list_campaigns' % (FAKE_SUBDOMAIN,
breeze.ENDPOINTS.PLEDGES))

def test_list_pledges(self):
response = MockResponse(200, json.dumps([{
"id": "12345",
"name": "Building Campaign",
"number_of_pledges": 65,
"total_pledged": 13030,
"created_on": "2014-09-10 02:19:35"
}]))
connection = MockConnection(response)
breeze_api = breeze.BreezeApi(
breeze_url=FAKE_SUBDOMAIN,
api_key=FAKE_API_KEY,
connection=connection)
self.assertEquals(breeze_api.list_pledges(campaign_id=329),
json.loads(response.content))
self.assertEquals(
connection.url,
'%s%s/list_pledges?campaign_id=329' % (FAKE_SUBDOMAIN,
breeze.ENDPOINTS.PLEDGES))


if __name__ == '__main__':
unittest.main()

0 comments on commit d403bb4

Please sign in to comment.