Update tests and fix URI parsing
[electrum-nvc.git] / lib / util.py
index 97906eb..e734341 100644 (file)
@@ -159,6 +159,7 @@ def age(from_date, since_date = None, target_tz=None, include_seconds=False):
 
 def parse_URI(uri):
     import urlparse
+    import urllib
     import bitcoin
     from decimal import Decimal
 
@@ -170,7 +171,7 @@ def parse_URI(uri):
     assert u.scheme == 'bitcoin'
 
     address = u.path
-    assert bitcoin.is_address(address)
+    valid_address = bitcoin.is_address(address)
 
     pq = urlparse.parse_qs(u.query)
     
@@ -192,8 +193,13 @@ def parse_URI(uri):
     if 'label' in pq:
         label = pq['label'][0]
     if 'r' in pq:
-        request_url = pq['r'][0]
+        request_url = urllib.quote(pq['r'][0], '/:?')
         
+    if request_url != '':
+        return address, amount, label, message, request_url
+
+    assert valid_address
+
     return address, amount, label, message, request_url