From bd28dc50e946b55047157c3e0a990683edfab214 Mon Sep 17 00:00:00 2001
From: vtexier <vit@free.fr>
Date: Sun, 29 Mar 2020 18:08:18 +0200
Subject: [PATCH] [fix] #119 fix HEAD messages software version regexp to be
 compliant with the WS2Pv1 protocol

---
 duniterpy/documents/ws2p/heads.py  | 2 +-
 tests/documents/test_ws2p_heads.py | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/duniterpy/documents/ws2p/heads.py b/duniterpy/documents/ws2p/heads.py
index 09004cf9..97a7a82f 100644
--- a/duniterpy/documents/ws2p/heads.py
+++ b/duniterpy/documents/ws2p/heads.py
@@ -124,7 +124,7 @@ class HeadV1:
         "({ws2pid}):({software}):({software_version}):({pow_prefix})(?::)?(.*)".format(
             ws2pid=WS2PID_REGEX,
             software="[A-Za-z-_]+",
-            software_version="[0-9]+[.][0-9]+[.][0-9]+",
+            software_version="[0-9]+[.][0-9]+[.][0-9]+[-\\w]*",
             pow_prefix="[0-9]+",
         )
     )
diff --git a/tests/documents/test_ws2p_heads.py b/tests/documents/test_ws2p_heads.py
index 4b6dc5eb..7dae1ea7 100644
--- a/tests/documents/test_ws2p_heads.py
+++ b/tests/documents/test_ws2p_heads.py
@@ -30,7 +30,7 @@ class TestWS2PHeads(unittest.TestCase):
         headv1, _ = HeadV1.from_inline(
             "WS2POCAIC:HEAD:1:HbTqJ1Ts3RhJ8Rx4XkNyh1oSKmoZL1kY5U7t9mKTSjAB:"
             "102131-0000066028B991BDFE3FF6DBA84EF519F76B62EA3787BC29D9A05557675B1F16:1152e46e:"
-            "duniter:1.6.21:1",
+            "duniter:1.6.21-beta:1",
             "ZGpT8HG4uX5Hc96gqhzIkkELVjGQKDp2/L+7BTFG5ODxGYWd2VX/H+hdZRqf0iUWRNuhxlequ68kkwMaE6ymBw==",
         )
 
@@ -38,7 +38,7 @@ class TestWS2PHeads(unittest.TestCase):
         self.assertEqual(headv1.v0.api.private, "OCA")
         self.assertEqual(headv1.v0.head.version, 1)
         self.assertEqual(headv1.software, "duniter")
-        self.assertEqual(headv1.software_version, "1.6.21")
+        self.assertEqual(headv1.software_version, "1.6.21-beta")
         self.assertEqual(headv1.pow_prefix, 1)
 
     def test_ws2p_headv2(self):
-- 
GitLab