diff options
author | MS <ms@taler.net> | 2020-07-28 17:36:11 +0200 |
---|---|---|
committer | MS <ms@taler.net> | 2020-07-28 17:36:11 +0200 |
commit | c74d28a61c316def8ac2ed01a0502c159d3c0ef3 (patch) | |
tree | ffd51bc422a42e50f20f43bb5507538f876dc07e | |
parent | 32fdf9a36ec3550131b2090b6de9f0206cd1a8a1 (diff) | |
download | bank-c74d28a61c316def8ac2ed01a0502c159d3c0ef3.tar.gz bank-c74d28a61c316def8ac2ed01a0502c159d3c0ef3.tar.bz2 bank-c74d28a61c316def8ac2ed01a0502c159d3c0ef3.zip |
fix URI params parsing
-rw-r--r-- | talerbank/app/tests.py | 8 | ||||
-rw-r--r-- | talerbank/app/views.py | 4 |
2 files changed, 9 insertions, 3 deletions
diff --git a/talerbank/app/tests.py b/talerbank/app/tests.py index 4593831..748fd4b 100644 --- a/talerbank/app/tests.py +++ b/talerbank/app/tests.py @@ -33,7 +33,7 @@ from django.contrib.auth.models import User from mock import patch, MagicMock from .models import BankAccount, BankTransaction from . import urls -from .views import wire_transfer, get_reserve_pub +from .views import wire_transfer, get_reserve_pub, PaytoParse from taler.util.amount import ( Amount, SignedAmount, @@ -70,6 +70,12 @@ class ReservePubExtractionTestCase(TestCase): self.assertTrue(get_reserve_pub("0T096A11M57GWGG0P6ZM9Z8G5829BFJFH2AN9R5T80FJ931DX7GG other data")) self.assertFalse(get_reserve_pub("not a reserve public key")) +class PaytoParseTestCase(TestCase): + def test_payto_parse(self): + parsed = PaytoParse("payto://x-taler-bank/bank.int.taler.net/Exchange?subject=0T096A11M57GWGG0P6ZM9Z8G5829BFJFH2AN9R5T80FJ931DX7GG") + self.assertTrue("Exchange" == parsed.account) + self.assertTrue("0T096A11M57GWGG0P6ZM9Z8G5829BFJFH2AN9R5T80FJ931DX7GG" == parsed.subject) + class PublicAccountsTestCase(TestCase): def setUp(self): clear_db() diff --git a/talerbank/app/views.py b/talerbank/app/views.py index a6687a8..c2d512a 100644 --- a/talerbank/app/views.py +++ b/talerbank/app/views.py @@ -28,7 +28,7 @@ import re import time import base64 import uuid -from urllib.parse import urlparse, parse_qs +from urllib.parse import urlparse, parse_qsl import django.contrib.auth import django.contrib.auth.views import django.contrib.auth.forms @@ -78,7 +78,7 @@ class PaytoParse: if (len(path_as_list) == 0): raise Exception("No account/user name found: '%s'" % payto_uri) self.account = path_as_list[-1] - params = parse_qs(parsed_payto.query) + params = dict(parse_qsl(parsed_payto.query)) self.subject = params.get("subject") ## |