From 0f0bc38c5a65a0691b0bacee3cb9b12eb10f81d4 Mon Sep 17 00:00:00 2001
From: Moul <moul@moul.re>
Date: Thu, 25 Apr 2019 22:45:21 +0200
Subject: [PATCH] [fix] InputSource: fix from_inline() regex:

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

diff --git a/duniterpy/documents/transaction.py b/duniterpy/documents/transaction.py
index fa3f19af..cd2ad5b1 100644
--- a/duniterpy/documents/transaction.py
+++ b/duniterpy/documents/transaction.py
@@ -55,8 +55,8 @@ class InputSource:
                 block_id_regex=BLOCK_ID_REGEX,
                 transaction_hash_regex=TRANSACTION_HASH_REGEX))
     re_inline_v3 = re.compile(
-        "([0-9]+):([0-9]+):(?:(?:(D):({pubkey_regex}):({block_id_regex}))|(?:(T):({transaction_hash_regex}):\
-([0-9]+)))\n"
+        "([0-9]+):([0-9]):(?:(?:(D):({pubkey_regex}):({block_id_regex}))|(?:(T):({transaction_hash_regex}):\
+([0-9]+)))"
         .format(pubkey_regex=PUBKEY_REGEX,
                 block_id_regex=BLOCK_ID_REGEX,
                 transaction_hash_regex=TRANSACTION_HASH_REGEX))
diff --git a/tests/documents/test_transaction.py b/tests/documents/test_transaction.py
index 64e01f83..34e1cfab 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
+from duniterpy.documents.transaction import Transaction, reduce_base, SimpleTransaction, InputSource
 
 compact_change = """TX:10:1:1:1:1:1:0
 13410-000041DF0CCA173F09B5FBA48F619D4BC934F12ADF1D0B798639EB2149C4A8CC
@@ -480,3 +480,9 @@ class TestTransaction(unittest.TestCase):
 
         tx = Transaction.from_compact("zeta_brousouf", tx_compact)
         self.assertFalse(SimpleTransaction.is_simple(tx))
+
+
+    def test_inputsource_from_inline(self):
+        input_source_str = "30:0:T:6991C993631BED4733972ED7538E41CCC33660F554E3C51963E2A0AC4D6453D3:2"
+        i = InputSource.from_inline(10, input_source_str)
+        self.assertEqual(i.inline(10), input_source_str)
-- 
GitLab