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