From 4844042ebb69c6cd71fdeab72a693a4f12d814de Mon Sep 17 00:00:00 2001 From: Petr Kalashnikov <pka065@it6100016.klientdrift.uib.no> Date: Tue, 4 May 2021 16:17:11 +0200 Subject: [PATCH 1/3] Add get_all_budjets method --- bookitlab_client/client.py | 15 ++++++++++++++- tests/test_client.py | 14 ++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/bookitlab_client/client.py b/bookitlab_client/client.py index 6275cfc..8190728 100644 --- a/bookitlab_client/client.py +++ b/bookitlab_client/client.py @@ -58,7 +58,7 @@ class BookitlabEndpoints: url, endpoint1_url="api/endpoint1/", endpoint2_url="api/endpoint2/", - budgets_url=None, + budgets_url="budgets/", ): """Get endpoints relative to the Bookitlab API URL.""" self.baseurl = url @@ -78,6 +78,13 @@ class BookitlabEndpoints: """Get Placeholder for first endpoint.""" return _urljoin(self.baseurl, self.endpoint2_url, primary_key) + def get_budget(self, primary_key: str = None): + """Get Placeholder for first endpoint.""" + if primary_key: + return _urljoin(self.baseurl, self.budgets_url, primary_key) + else: + return _urljoin(self.baseurl, self.budgets_url) + def put_budget(self, budget: Union[int, Budget]): """URL for budgets endpoint.""" budget_id = budget.id if isinstance(budget, Budget) else budget @@ -221,6 +228,12 @@ class BookitlabClient(object): response.raise_for_status() return [] + def get_all_budgets(self): + """Send GET request to placeholder1 endpoint.""" + url = self.urls.get_budget() + response = self.get(url) + return response.json() + def put_budget(self, budget: Budget) -> List[Union[Budget, dict]]: """Send PUT request to budget endpoint.""" return self._put_or_post_budget(budget=budget, put=True) diff --git a/tests/test_client.py b/tests/test_client.py index d050621..ad2d60f 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -230,3 +230,17 @@ def test_post_budget_raise_on_500(client, budget, requests_mock, baseurl): # Execute with pytest.raises(HTTPError): client.post_budget(obj) + + +def get_all_budjets(client, budget, requests_mock, baseurl): + # Setup + obj = Budget.from_dict(budget) + requests_mock.get( + client.urls.get_budget, + text=json.dumps([budget]), + status_code=200, + ) + + # Execute + response = client.get_all_budjets() + assert len(response.text) == 1 -- GitLab From 018cf2c81fef3a3b6827abfd0b2b49a12c62d541 Mon Sep 17 00:00:00 2001 From: Petr Kalashnikov <pka065@it6100016.klientdrift.uib.no> Date: Tue, 4 May 2021 16:29:10 +0200 Subject: [PATCH 2/3] Fix style --- setup.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/setup.py b/setup.py index 4058877..8c00cd7 100644 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ import setuptools.command.test def get_requirements(filename): - """ Read requirements from file. """ + """Read requirements from file.""" with open(filename, mode="rt", encoding="utf-8") as f: for line in f: requirement = line.partition("#")[0].strip() @@ -16,13 +16,13 @@ def get_requirements(filename): def get_textfile(filename): - """ Get contents from a text file. """ + """Get contents from a text file.""" with open(filename, mode="rt", encoding="utf-8") as f: return f.read().lstrip() def get_packages(): - """ List of (sub)packages to install. """ + """List of (sub)packages to install.""" return setuptools.find_packages( ".", include=("bookitlab_client", "bookitlab_client.*") ) -- GitLab From abab482f24adffca15b14fe11fcc206089890d63 Mon Sep 17 00:00:00 2001 From: Petr Kalashnikov <pka065@it6100016.klientdrift.uib.no> Date: Tue, 4 May 2021 16:33:03 +0200 Subject: [PATCH 3/3] Fix descriptions --- bookitlab_client/client.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bookitlab_client/client.py b/bookitlab_client/client.py index 8190728..71febea 100644 --- a/bookitlab_client/client.py +++ b/bookitlab_client/client.py @@ -79,7 +79,7 @@ class BookitlabEndpoints: return _urljoin(self.baseurl, self.endpoint2_url, primary_key) def get_budget(self, primary_key: str = None): - """Get Placeholder for first endpoint.""" + """Get one budget or all available.""" if primary_key: return _urljoin(self.baseurl, self.budgets_url, primary_key) else: @@ -229,7 +229,7 @@ class BookitlabClient(object): return [] def get_all_budgets(self): - """Send GET request to placeholder1 endpoint.""" + """Send GET request to get all available budjets.""" url = self.urls.get_budget() response = self.get(url) return response.json() -- GitLab