summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcello Stanisci <stanisci.m@gmail.com>2018-02-05 10:47:23 +0100
committerMarcello Stanisci <stanisci.m@gmail.com>2018-02-05 10:47:23 +0100
commit860d826caf185c7d259c00c3dd0d9c6820d5d192 (patch)
treeee28880c6ed7ce654654c528ec9cf23c2b1815e5
parentd129b8569e2ef3309c0f9a60d9f826018128cd79 (diff)
downloadbank-860d826caf185c7d259c00c3dd0d9c6820d5d192.tar.gz
bank-860d826caf185c7d259c00c3dd0d9c6820d5d192.tar.bz2
bank-860d826caf185c7d259c00c3dd0d9c6820d5d192.zip
adapting to new amount format <curr>:x.y
-rw-r--r--talerbank/app/schemas.py7
-rw-r--r--talerbank/app/tests.py27
-rw-r--r--talerbank/app/views.py2
3 files changed, 14 insertions, 22 deletions
diff --git a/talerbank/app/schemas.py b/talerbank/app/schemas.py
index 269d791..1ddb684 100644
--- a/talerbank/app/schemas.py
+++ b/talerbank/app/schemas.py
@@ -54,6 +54,7 @@ class JSONFieldException(ValueError):
self.http_status_code = http_status_code
super().__init__()
+'''
AMOUNT_SCHEMA = {
"type": "object",
"properties": {
@@ -62,7 +63,11 @@ AMOUNT_SCHEMA = {
"currency": {"type": "string",
"pattern": "^"+settings.TALER_CURRENCY+"$"}
}
-}
+}'''
+
+AMOUNT_SCHEMA = {
+ "type": "string",
+ "pattern": "^"+settings.TALER_CURRENCY+":([0-9]+)\.?([0-9]+)?$"}
WITHDRAW_SESSION_SCHEMA = {
"type": "object",
diff --git a/talerbank/app/tests.py b/talerbank/app/tests.py
index bebf876..f6ccb4b 100644
--- a/talerbank/app/tests.py
+++ b/talerbank/app/tests.py
@@ -257,10 +257,7 @@ class RejectTestCase(TestCase):
"credit_account": %d, \
"subject": "TESTWTID", \
"exchange_url": "https://exchange.test", \
- "amount": \
- {"value": 5, \
- "fraction": 0, \
- "currency": "%s"}}' \
+ "amount": "%s:5.0"}' \
% (rejecting.bankaccount.account_no,
settings.TALER_CURRENCY)
response = client.post(
@@ -270,7 +267,7 @@ class RejectTestCase(TestCase):
follow=True, **{
"HTTP_X_TALER_BANK_USERNAME": "rejected_user",
"HTTP_X_TALER_BANK_PASSWORD": "rejected_password"})
-
+ self.assertEqual(response.status_code, 200)
data = response.content.decode("utf-8")
jdata = json.loads(data)
rejected = User.objects.get(username="rejected_user")
@@ -307,10 +304,7 @@ class AddIncomingTestCase(TestCase):
"credit_account": 1, \
"subject": "TESTWTID", \
"exchange_url": "https://exchange.test", \
- "amount": \
- {"value": 1, \
- "fraction": 0, \
- "currency": "%s"}}' \
+ "amount": "%s:1.0"}' \
% settings.TALER_CURRENCY
response = client.post(
reverse("add-incoming", urlconf=urls),
@@ -324,11 +318,7 @@ class AddIncomingTestCase(TestCase):
"credit_account": 1, \
"subject": "TESTWTID", \
"exchange_url": "https://exchange.test", \
- "amount": \
- {"value": 1, \
- "fraction": 0, \
- "currency": "%s"}}' \
- % "WRONGCURRENCY"
+ "amount": "WRONGCURRENCY:1.0"}'
response = client.post(
reverse("add-incoming", urlconf=urls),
data=data,
@@ -336,17 +326,14 @@ class AddIncomingTestCase(TestCase):
follow=True,
**{"HTTP_X_TALER_BANK_USERNAME": "user_user",
"HTTP_X_TALER_BANK_PASSWORD": "user_password"})
- self.assertEqual(406, response.status_code)
+ # note: a bad currency request gets 400.
+ self.assertEqual(400, response.status_code)
# Try to go debit
data = '{"auth": {"type": "basic"}, \
"credit_account": 1, \
"subject": "TESTWTID", \
"exchange_url": "https://exchange.test", \
- "amount": \
- {"value": 50, \
- "fraction": 1, \
- "currency": "%s"}}' \
- % settings.TALER_CURRENCY
+ "amount": "%s:50.1"}' % settings.TALER_CURRENCY
response = client.post(
reverse("add-incoming", urlconf=urls),
data=data,
diff --git a/talerbank/app/views.py b/talerbank/app/views.py
index 5f7d366..55686ce 100644
--- a/talerbank/app/views.py
+++ b/talerbank/app/views.py
@@ -561,7 +561,7 @@ def add_incoming(request, user_account):
subject = "%s %s" % (data["subject"], data["exchange_url"])
credit_account = BankAccount.objects.get(
account_no=data["credit_account"])
- wtrans = wire_transfer(Amount(**data["amount"]),
+ wtrans = wire_transfer(Amount.parse(data["amount"]),
user_account.bankaccount,
credit_account,
subject)