Skip to content

Commit d4556dc

Browse files
committed
added get_sources function
1 parent c2277d0 commit d4556dc

File tree

3 files changed

+19
-5
lines changed

3 files changed

+19
-5
lines changed

CmixAPIClient/project.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,9 @@ def get_project(self):
1616
project_error = 'CMIX returned a non-200 response code while getting project'
1717
project_response = self.client.api_get(project_endpoint, project_error)
1818
return project_response
19+
20+
def get_sources(self):
21+
project_endpoint = 'projects/{}/sources'.format(self.project_id)
22+
project_error = 'CMIX returned a non-200 response code while getting project sources'
23+
project_response = self.client.api_get(project_endpoint, project_error)
24+
return project_response

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ A Python client library for the [Dynata Cmix API](https://wiki2.criticalmix.net/
5050

5151
### CmixProject
5252

53-
get_project(project_id)
53+
get_project()
54+
get_sources()
5455

5556
## Contributing
5657

tests/test_project.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,9 @@ def setUp(self):
1616
self.cmix_api._authentication_headers = {'Authorization': 'Bearer test'}
1717
self.project_id = 1492
1818

19-
def test_get_project(self):
19+
def helper_get(self, function_name, endpoint):
2020
project = CmixProject(self.cmix_api, self.project_id)
21+
func = getattr(project, function_name)
2122

2223
# success case
2324
with mock.patch('CmixAPIClient.api.requests') as mock_request:
@@ -26,10 +27,10 @@ def test_get_project(self):
2627
mock_get.json.return_value = {}
2728
mock_request.get.return_value = mock_get
2829

29-
project.get_project()
30+
func()
3031

3132
base_url = CMIX_SERVICES['survey']['BASE_URL']
32-
project_url = '{}/projects/{}'.format(base_url, self.project_id)
33+
project_url = '{}/projects{}'.format(base_url, endpoint)
3334
mock_request.get.assert_any_call(project_url, headers=self.cmix_api._authentication_headers)
3435

3536
# error case (survey not found)
@@ -40,4 +41,10 @@ def test_get_project(self):
4041
mock_request.get.return_value = mock_get
4142

4243
with self.assertRaises(CmixError):
43-
project.get_project()
44+
func()
45+
46+
def test_get_project(self):
47+
self.helper_get('get_project', '/{}'.format(self.project_id))
48+
49+
def test_get_sources(self):
50+
self.helper_get('get_sources', '/{}/sources'.format(self.project_id))

0 commit comments

Comments
 (0)