gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [taler-bank] 04/04: make /history test more compact


From: gnunet
Subject: [GNUnet-SVN] [taler-bank] 04/04: make /history test more compact
Date: Wed, 08 Nov 2017 19:44:51 +0100

This is an automated email from the git hooks/post-receive script.

marcello pushed a commit to branch master
in repository bank.

commit 1187972a1967266b704eb73041047ee9f1dd62ca
Author: Marcello Stanisci <address@hidden>
AuthorDate: Wed Nov 8 19:40:52 2017 +0100

    make /history test more compact
---
 talerbank/app/tests.py | 92 +++++++++++++++++++++-----------------------------
 1 file changed, 39 insertions(+), 53 deletions(-)

diff --git a/talerbank/app/tests.py b/talerbank/app/tests.py
index e9c6cd8..8fbc4a7 100644
--- a/talerbank/app/tests.py
+++ b/talerbank/app/tests.py
@@ -30,6 +30,7 @@ def clear_db():
     BankTransaction.objects.all().delete()
 
 class WithdrawTestCase(TestCase):
+    # FIXME tbd
     pass
 
 class RegisterTestCase(TestCase):
@@ -200,6 +201,13 @@ class AddIncomingTestCase(TestCase):
                                                "HTTP_X_TALER_BANK_PASSWORD": 
"user_password"})
         self.assertEqual(403, response.status_code)
 
+class HistoryContext:
+    def __init__(self, expected_resp, **kwargs):
+        self.expected_resp = expected_resp
+        self.urlargs = kwargs
+        self.urlargs.update({"auth": "basic"})
+    def dump(self):
+        return self.urlargs
 
 class HistoryTestCase(TestCase):
 
@@ -225,59 +233,37 @@ class HistoryTestCase(TestCase):
 
     def test_history(self):
         client = Client()
-
-        response = client.get(reverse("history", urlconf=urls), {"auth": 
"basic", "delta": "+4"},
-                              **{"HTTP_X_TALER_BANK_USERNAME": "User",
-                                 "HTTP_X_TALER_BANK_PASSWORD": "Password"})
-        self.assertEqual(200, response.status_code)
-
-        # Get a delta=+1 record in the middle of the list
-        response = client.get(reverse("history", urlconf=urls),
-                              {"auth": "basic", "delta": "+1", "start": "5"},
-                              **{"HTTP_X_TALER_BANK_USERNAME": "User",
-                                 "HTTP_X_TALER_BANK_PASSWORD": "Password"})
-        data = response.content.decode("utf-8")
-        data = json.loads(data)
-        self.assertEqual(data["data"][0]["row_id"], 6)
-        # Get latest record
-        response = client.get(reverse("history", urlconf=urls),
-                              {"auth": "basic", "delta": "-1"},
-                              **{"HTTP_X_TALER_BANK_USERNAME": "User",
-                                 "HTTP_X_TALER_BANK_PASSWORD": "Password"})
-        data = response.content.decode("utf-8")
-        data = json.loads(data)
-        self.assertEqual(data["data"][0]["wt_subject"], "h")
-        # Get non-existent record: the latest plus one in the future:
-        # transaction "h" takes row_id 11
-        response = client.get(reverse("history", urlconf=urls),
-                              {"auth": "basic", "delta": "1", "start": "11"},
-                              **{"HTTP_X_TALER_BANK_USERNAME": "User",
-                                 "HTTP_X_TALER_BANK_PASSWORD": "Password"})
-        self.assertEqual(204, response.status_code)
-        # Get credit records
-        response = client.get(reverse("history", urlconf=urls),
-                              {"auth": "basic", "delta": "+1", "direction": 
"credit"},
-                              **{"HTTP_X_TALER_BANK_USERNAME": "User",
-                                 "HTTP_X_TALER_BANK_PASSWORD": "Password"})
-        self.assertEqual(204, response.status_code)
-        # Get debit records
-        response = client.get(reverse("history", urlconf=urls),
-                              {"auth": "basic", "delta": "+1", "direction": 
"debit"},
-                              **{"HTTP_X_TALER_BANK_USERNAME": "User",
-                                 "HTTP_X_TALER_BANK_PASSWORD": "Password"})
-        self.assertNotEqual(204, response.status_code)
-        # Query about non-owned account
-        response = client.get(reverse("history", urlconf=urls),
-                              {"auth": "basic", "delta": "+1", 
"account_number": 2},
-                              **{"HTTP_X_TALER_BANK_USERNAME": "User",
-                                 "HTTP_X_TALER_BANK_PASSWORD": "Password"})
-        self.assertEqual(403, response.status_code)
-        # Query about non-existent account
-        response = client.get(reverse("history", urlconf=urls),
-                              {"auth": "basic", "delta": "-1", 
"account_number": 9},
-                              **{"HTTP_X_TALER_BANK_USERNAME": "User",
-                                 "HTTP_X_TALER_BANK_PASSWORD": "Password"})
-        self.assertEqual(404, response.status_code)
+        for ctx in (HistoryContext(expected_resp={"status": 200},
+                                   delta="4"),
+                    HistoryContext(expected_resp={
+                                       "field": "row_id", "value": 6,
+                                       "status": 200}, delta="+1", start="5",),
+                    HistoryContext(expected_resp={
+                                       "field": "wt_subject", "value": "h",
+                                       "status": 200}, delta="-1"),
+                    HistoryContext(expected_resp={"status": 204},
+                                   delta="1", start="11"),
+                    HistoryContext(expected_resp={"status": 204},
+                                   delta="+1", direction="credit"),
+                    HistoryContext(expected_resp={"status": 200},
+                                   delta="+1", direction="debit"),
+                    HistoryContext(expected_resp={"status": 403},
+                                   delta="+1", account_number=2),
+                    HistoryContext(expected_resp={"status": 404},
+                                   delta="-1", account_number=9)):
+            response = client.get(reverse("history", urlconf=urls), 
ctx.urlargs,
+                                  **{"HTTP_X_TALER_BANK_USERNAME": "User",
+                                     "HTTP_X_TALER_BANK_PASSWORD": "Password"})
+            data = response.content.decode("utf-8")
+            try:
+                data = json.loads(data)["data"][0]
+            except (json.JSONDecodeError, KeyError):
+                data = {}
+
+            # FIXME print urls which break the test.
+            self.assertEqual(data.get(ctx.expected_resp.get("field")),
+                             ctx.expected_resp.get("value"))
+            self.assertEqual(ctx.expected_resp.get("status"), 
response.status_code)
 
 class DBAmountSubtraction(TestCase):
     def setUp(self):

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]