From 3827810000b112ba5fd3508c8b03992ecf2cc93e Mon Sep 17 00:00:00 2001
From: Moul <moul@moul.re>
Date: Sat, 20 Apr 2019 21:38:31 +0200
Subject: [PATCH] [fix] OutputSource: fix from_inline() regex:

- Remove trailing \n, and limit UnitBase to 9
- Lock feature with a test
---
 duniterpy/documents/transaction.py  | 2 +-
 tests/documents/test_transaction.py | 8 +++++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/duniterpy/documents/transaction.py b/duniterpy/documents/transaction.py
index cd2ad5b1..71aeda2f 100644
--- a/duniterpy/documents/transaction.py
+++ b/duniterpy/documents/transaction.py
@@ -154,7 +154,7 @@ class OutputSource:
     """
     A Transaction OUTPUT
     """
-    re_inline = re.compile("([0-9]+):([0-9]+):(.*)\n")
+    re_inline = re.compile("([0-9]+):([0-9]):(.*)")
 
     def __init__(self, amount: int, base: int, condition: str) -> None:
         """
diff --git a/tests/documents/test_transaction.py b/tests/documents/test_transaction.py
index 34e1cfab..af5aa072 100644
--- a/tests/documents/test_transaction.py
+++ b/tests/documents/test_transaction.py
@@ -6,7 +6,7 @@ Created on 12 déc. 2014
 import unittest
 import pypeg2
 from duniterpy.grammars import output
-from duniterpy.documents.transaction import Transaction, reduce_base, SimpleTransaction, InputSource
+from duniterpy.documents.transaction import Transaction, reduce_base, SimpleTransaction, InputSource, OutputSource
 
 compact_change = """TX:10:1:1:1:1:1:0
 13410-000041DF0CCA173F09B5FBA48F619D4BC934F12ADF1D0B798639EB2149C4A8CC
@@ -486,3 +486,9 @@ class TestTransaction(unittest.TestCase):
         input_source_str = "30:0:T:6991C993631BED4733972ED7538E41CCC33660F554E3C51963E2A0AC4D6453D3:2"
         i = InputSource.from_inline(10, input_source_str)
         self.assertEqual(i.inline(10), input_source_str)
+
+
+    def test_outputsource_from_inline(self):
+        output_source_str = "460:0:SIG(8kXygUHh1vLjmcRzXVM86t38EL8dfFJgfBeHmkaWLamu)"
+        o = OutputSource.from_inline(output_source_str)
+        self.assertEqual(o.inline(), output_source_str)
-- 
GitLab