From 5031b5e93bbad77896ec77a02ca965407f95eaf0 Mon Sep 17 00:00:00 2001
From: matograine <tom.ngr@zaclys.net>
Date: Tue, 17 Mar 2020 18:41:07 +0100
Subject: [PATCH] [test] #213: move useful test patched functions

* Move patched functions from test_membership.py to relevant files
    * blockchain_tools.py
        * create mocked_block variable
        * make both patched_block and patched_head_block return mocked_block
    * auth.py
    * wot.py
* modify a pubkey list in patched/wot.py
* change calls in the tests
* change pubkeys in patched/money.py to match new pubkey_list
---
 tests/patched/auth.py             |  8 ++++
 tests/patched/blockchain_tools.py | 33 +++++++++++----
 tests/patched/money.py            | 19 +++------
 tests/patched/wot.py              | 48 +++++++++++++++++++---
 tests/test_membership.py          | 68 ++++++-------------------------
 tests/test_tui.py                 |  2 +-
 tests/test_unit_tx.py             | 20 ++++-----
 7 files changed, 105 insertions(+), 93 deletions(-)

diff --git a/tests/patched/auth.py b/tests/patched/auth.py
index c681ed47..86f7a079 100644
--- a/tests/patched/auth.py
+++ b/tests/patched/auth.py
@@ -1,4 +1,12 @@
 # This file contains patches for auth functions.
+from duniterpy.key import SigningKey
+
+
+def patched_auth_method(uid):
+    """
+    insecure way to test keys
+    """
+    return SigningKey.from_credentials(uid, uid)
 
 
 def patched_auth_by_seed():
diff --git a/tests/patched/blockchain_tools.py b/tests/patched/blockchain_tools.py
index 150a4187..b7ab4433 100644
--- a/tests/patched/blockchain_tools.py
+++ b/tests/patched/blockchain_tools.py
@@ -1,9 +1,28 @@
+# This file contains fake values for testing purposes
+
+
+currency = "g1"
+
+mocked_block = {
+    "number": 48000,
+    "time": 1592243760,
+    "unitbase": 0,
+    "currency": currency,
+    "hash": "0000010D30B1284D34123E036B7BE0A449AE9F2B928A77D7D20E3BDEAC7EE14C",
+}
+
+
+async def patched_params(self):
+    return {
+        "msValidity": 31557600,
+        "msPeriod": 5259600,
+    }
+
+
+async def patched_block(self, number):
+    return mocked_block
+
+
 ## mock head_block()
 async def patched_head_block(self):
-    mocked_head_block = {
-        "number": 48000,
-        "unitbase": 0,
-        "currency": "g1",
-        "hash": "0000010D30B1284D34123E036B7BE0A449AE9F2B928A77D7D20E3BDEAC7EE14C",
-    }
-    return mocked_head_block
+    return mocked_block
diff --git a/tests/patched/money.py b/tests/patched/money.py
index e26ce8ab..a0da99fd 100644
--- a/tests/patched/money.py
+++ b/tests/patched/money.py
@@ -21,20 +21,11 @@ from silkaj.constants import G1_SYMBOL
 from silkaj.money import amount_in_current_base
 from duniterpy.documents.transaction import InputSource
 
-## Mocked values
 
+# mock UDValue
 mock_ud_value = 314
 
-pubkey_list = [
-    {"pubkey": "DBM6F5ChMJzpmkUdL5zD9UXKExmZGfQ1AgPDQy4MxSBw", "uid": ""},
-    {"pubkey": "4szFkvQ5tzzhwcfUtZD32hdoG2ZzhvG3ZtfR61yjnxdw", "uid": ""},
-    {"pubkey": "BFb5yv8z1fowR6Z8mBXTALy5z7gHfMU976WtXhmRsUMh", "uid": "riri"},
-    {"pubkey": "C1oAV9FX2y9iz2sdp7kZBFu3EBNAa6UkrrRG3EwouPeH", "uid": "fifi"},
-    {"pubkey": "7Hr6oUxE6nGZxFG7gVbpMK6oUkNTh5eU686EiCXWCrBF", "uid": "loulou"},
-]
-
 
-# mock UDValue
 async def patched_ud_value(self):
     return mock_ud_value
 
@@ -85,16 +76,16 @@ async def patched_get_sources(pubkey):
 
     listinput, n = list(), 0
     amount = 0
-    if pubkey == "DBM6F5ChMJzpmkUdL5zD9UXKExmZGfQ1AgPDQy4MxSBw":
+    if pubkey == "CtM5RZHopnSRAAoWNgTWrUhDEmspcCAxn6fuCEWDWudp":
         max_tx = 3
         max_ud = 0
-    elif pubkey == "4szFkvQ5tzzhwcfUtZD32hdoG2ZzhvG3ZtfR61yjnxdw":
+    elif pubkey == "HcRgKh4LwbQVYuAc3xAdCynYXpKoiPE6qdxCMa8JeHat":
         max_tx = 53
         max_ud = 0
-    elif pubkey == "BFb5yv8z1fowR6Z8mBXTALy5z7gHfMU976WtXhmRsUMh":
+    elif pubkey == "2sq4w8yYVDWNxVWZqGWWDriFf5z7dn7iLahDCvEEotuY":
         max_tx = 0
         max_ud = 10
-    elif pubkey == "C1oAV9FX2y9iz2sdp7kZBFu3EBNAa6UkrrRG3EwouPeH":
+    elif pubkey == "9cwBBgXcSVMT74xiKYygX6FM5yTdwd3NABj1CfHbbAmp":
         max_tx = 20
         max_ud = 50
     else:
diff --git a/tests/patched/wot.py b/tests/patched/wot.py
index 0605bc92..901e9d8d 100644
--- a/tests/patched/wot.py
+++ b/tests/patched/wot.py
@@ -1,11 +1,12 @@
 pubkey_list = [
-    {"pubkey": "DBM6F5ChMJzpmkUdL5zD9UXKExmZGfQ1AgPDQy4MxSBw", "uid": ""},
-    {"pubkey": "4szFkvQ5tzzhwcfUtZD32hdoG2ZzhvG3ZtfR61yjnxdw", "uid": ""},
-    {"pubkey": "BFb5yv8z1fowR6Z8mBXTALy5z7gHfMU976WtXhmRsUMh", "uid": "riri"},
-    {"pubkey": "C1oAV9FX2y9iz2sdp7kZBFu3EBNAa6UkrrRG3EwouPeH", "uid": "fifi"},
-    {"pubkey": "7Hr6oUxE6nGZxFG7gVbpMK6oUkNTh5eU686EiCXWCrBF", "uid": "loulou"},
+    {"pubkey": "9cwBBgXcSVMT74xiKYygX6FM5yTdwd3NABj1CfHbbAmp", "uid": ""},
+    {"pubkey": "BUhLyJT17bzDVXW66xxfk1F7947vytmwJVadTaWb8sJS", "uid": ""},
+    {"pubkey": "CtM5RZHopnSRAAoWNgTWrUhDEmspcCAxn6fuCEWDWudp", "uid": "riri"},
+    {"pubkey": "HcRgKh4LwbQVYuAc3xAdCynYXpKoiPE6qdxCMa8JeHat", "uid": "fifi"},
+    {"pubkey": "2sq4w8yYVDWNxVWZqGWWDriFf5z7dn7iLahDCvEEotuY", "uid": "loulou"},
 ]
 
+
 # mock is_member
 async def patched_is_member(pubkey):
     for account in pubkey_list:
@@ -13,3 +14,40 @@ async def patched_is_member(pubkey):
             if account["uid"]:
                 return account
     return False
+
+
+# patch wot requirements
+async def patched_wot_requirements_one_pending(pubkey, identity_uid):
+    return {
+        "identities": [
+            {
+                "uid": "toto",
+                "pendingMemberships": [
+                    {
+                        "membership": "IN",
+                        "issuer": "5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH",
+                        "number": 613206,
+                        "blockNumber": 613206,
+                        "userid": "moul-test",
+                        "expires_on": 1598624404,
+                        "type": "IN",
+                    }
+                ],
+                "membershipPendingExpiresIn": 6311520,
+                "membershipExpiresIn": 2603791,
+            },
+        ],
+    }
+
+
+async def patched_wot_requirements_no_pending(pubkey, identity_uid):
+    return {
+        "identities": [
+            {
+                "uid": "toto",
+                "pendingMemberships": [],
+                "membershipPendingExpiresIn": 0,
+                "membershipExpiresIn": 3724115,
+            }
+        ]
+    }
diff --git a/tests/test_membership.py b/tests/test_membership.py
index 6a9c8605..f1cbd819 100644
--- a/tests/test_membership.py
+++ b/tests/test_membership.py
@@ -27,7 +27,17 @@ from duniterpy.documents import Membership, block_uid
 from duniterpy.api import bma
 from duniterpy.key import SigningKey
 
-from patched.blockchain_tools import patched_head_block
+from patched.blockchain_tools import (
+    currency,
+    patched_params,
+    patched_block,
+    patched_head_block,
+)
+from patched.wot import (
+    patched_wot_requirements_one_pending,
+    patched_wot_requirements_no_pending,
+)
+
 from silkaj import auth, wot
 from silkaj.cli import cli
 from silkaj.network_tools import ClientInstance
@@ -46,9 +56,7 @@ else:
     from asynctest.mock import CoroutineMock as AsyncMock
 
 
-# To be moved/merged into tests/patched.py or tests/patched/<module_name>.py
-
-currency = "g1"
+# Values and patches
 pubkey = "EA7Dsw39ShZg4SpURsrgMaMqrweJPUFPYHwZA8e92e3D"
 identity_timestamp = block_uid(
     "0-E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855"
@@ -71,58 +79,6 @@ async def patched_choose_identity(pubkey):
     )
 
 
-async def patched_params(self):
-    return {
-        "msValidity": 31557600,
-        "msPeriod": 5259600,
-    }
-
-
-async def patched_block(self, number):
-    return {
-        "number": 48000,
-        "time": 1592243760,
-        "currency": currency,
-        "hash": "0000A51FF952B76AAA594A46CA0C8156A56988D2B2B57BE18ECB4F3CFC25CEC2",
-    }
-
-
-async def patched_wot_requirements_one_pending(pubkey, identity_uid):
-    return {
-        "identities": [
-            {
-                "uid": "toto",
-                "pendingMemberships": [
-                    {
-                        "membership": "IN",
-                        "issuer": "5B8iMAzq1dNmFe3ZxFTBQkqhq4fsztg1gZvxHXCk1XYH",
-                        "number": 613206,
-                        "blockNumber": 613206,
-                        "userid": "moul-test",
-                        "expires_on": 1598624404,
-                        "type": "IN",
-                    }
-                ],
-                "membershipPendingExpiresIn": 6311520,
-                "membershipExpiresIn": 2603791,
-            },
-        ],
-    }
-
-
-async def patched_wot_requirements_no_pending(pubkey, identity_uid):
-    return {
-        "identities": [
-            {
-                "uid": "toto",
-                "pendingMemberships": [],
-                "membershipPendingExpiresIn": 0,
-                "membershipExpiresIn": 3724115,
-            }
-        ]
-    }
-
-
 @pytest.mark.parametrize(
     "dry_run, confirmation, exit_code",
     [
diff --git a/tests/test_tui.py b/tests/test_tui.py
index 3edd27b5..93a94cab 100644
--- a/tests/test_tui.py
+++ b/tests/test_tui.py
@@ -49,7 +49,7 @@ def test_display_amount(message, amount, currency_symbol):
 @pytest.mark.parametrize(
     "message, pubkey, id",
     [
-        ("From", "BFb5yv8z1fowR6Z8mBXTALy5z7gHfMU976WtXhmRsUMh", "riri"),
+        ("From", "CtM5RZHopnSRAAoWNgTWrUhDEmspcCAxn6fuCEWDWudp", "riri"),
         ("To", "DBM6F5ChMJzpmkUdL5zD9UXKExmZGfQ1AgPDQy4MxSBw", ""),
     ],
 )
diff --git a/tests/test_unit_tx.py b/tests/test_unit_tx.py
index d848b2c3..953e9b9a 100644
--- a/tests/test_unit_tx.py
+++ b/tests/test_unit_tx.py
@@ -429,24 +429,24 @@ async def test_generate_transaction_document(
 @pytest.mark.parametrize(
     "pubkey, TXamount, expected",
     [
-        ("DBM6F5ChMJzpmkUdL5zD9UXKExmZGfQ1AgPDQy4MxSBw", 200, (2, 300, False)),
-        ("DBM6F5ChMJzpmkUdL5zD9UXKExmZGfQ1AgPDQy4MxSBw", 600, (3, 600, False)),
+        ("CtM5RZHopnSRAAoWNgTWrUhDEmspcCAxn6fuCEWDWudp", 200, (2, 300, False)),
+        ("CtM5RZHopnSRAAoWNgTWrUhDEmspcCAxn6fuCEWDWudp", 600, (3, 600, False)),
         (
-            "DBM6F5ChMJzpmkUdL5zD9UXKExmZGfQ1AgPDQy4MxSBw",
+            "CtM5RZHopnSRAAoWNgTWrUhDEmspcCAxn6fuCEWDWudp",
             800,
             "Error: you don't have enough money",
         ),
-        ("4szFkvQ5tzzhwcfUtZD32hdoG2ZzhvG3ZtfR61yjnxdw", 143100, (40, 82000, True)),
-        ("BFb5yv8z1fowR6Z8mBXTALy5z7gHfMU976WtXhmRsUMh", 200, (1, 314, False)),
-        ("BFb5yv8z1fowR6Z8mBXTALy5z7gHfMU976WtXhmRsUMh", 3140, (10, 3140, False)),
+        ("HcRgKh4LwbQVYuAc3xAdCynYXpKoiPE6qdxCMa8JeHat", 143100, (40, 82000, True)),
+        ("2sq4w8yYVDWNxVWZqGWWDriFf5z7dn7iLahDCvEEotuY", 200, (1, 314, False)),
+        ("2sq4w8yYVDWNxVWZqGWWDriFf5z7dn7iLahDCvEEotuY", 3140, (10, 3140, False)),
         (
-            "BFb5yv8z1fowR6Z8mBXTALy5z7gHfMU976WtXhmRsUMh",
+            "2sq4w8yYVDWNxVWZqGWWDriFf5z7dn7iLahDCvEEotuY",
             5000,
             "Error: you don't have enough money",
         ),
-        ("C1oAV9FX2y9iz2sdp7kZBFu3EBNAa6UkrrRG3EwouPeH", 2900, (8, 3600, False)),
-        ("C1oAV9FX2y9iz2sdp7kZBFu3EBNAa6UkrrRG3EwouPeH", 22500, (25, 22570, False)),
-        ("C1oAV9FX2y9iz2sdp7kZBFu3EBNAa6UkrrRG3EwouPeH", 29000, (40, 27280, True)),
+        ("9cwBBgXcSVMT74xiKYygX6FM5yTdwd3NABj1CfHbbAmp", 2900, (8, 3600, False)),
+        ("9cwBBgXcSVMT74xiKYygX6FM5yTdwd3NABj1CfHbbAmp", 22500, (25, 22570, False)),
+        ("9cwBBgXcSVMT74xiKYygX6FM5yTdwd3NABj1CfHbbAmp", 29000, (40, 27280, True)),
     ],
 )
 @pytest.mark.asyncio
-- 
GitLab