From 48257445aedfb0746766d1df3c3f48dfb58f5590 Mon Sep 17 00:00:00 2001
From: unknown <ggoinvic@ITEM-72692.dhcp.ren2.fr.sopra>
Date: Thu, 10 Apr 2014 17:27:47 +0200
Subject: [PATCH] 74% coverage of models

---
 coverage.rc                                   | 10 +++++++
 .../models/account/test_wallets.py            |  2 --
 src/_cutecoin_test/models/test_community.py   | 20 +++++++++----
 src/_cutecoin_test/models/test_node.py        | 28 +++++++++++++++++--
 src/_cutecoin_test/models/test_person.py      | 12 ++++----
 src/_cutecoin_test/models/test_wallet.py      | 10 +++++--
 6 files changed, 64 insertions(+), 18 deletions(-)
 create mode 100644 coverage.rc

diff --git a/coverage.rc b/coverage.rc
new file mode 100644
index 00000000..934a3920
--- /dev/null
+++ b/coverage.rc
@@ -0,0 +1,10 @@
+[run]
+omit = 
+    src/cutecoin/gen_resources/*
+    src/cutecoin/gui/*
+    src/cutecoin/core/*
+    src/cutecoin/models/*Model*
+source = src/cutecoin
+
+[html]
+directory = doc/coverage
diff --git a/src/_cutecoin_test/models/account/test_wallets.py b/src/_cutecoin_test/models/account/test_wallets.py
index a3435296..7b2f39c8 100644
--- a/src/_cutecoin_test/models/account/test_wallets.py
+++ b/src/_cutecoin_test/models/account/test_wallets.py
@@ -71,5 +71,3 @@ class Test_Wallets:
         assert wallets.get_wallet(mock_wallet1) is None
         assert wallets.get_wallet(mock_wallet2) is not None
 
-    def test_wallets_jsonify(self):
-        pass
diff --git a/src/_cutecoin_test/models/test_community.py b/src/_cutecoin_test/models/test_community.py
index d5d6a589..704c6e2b 100644
--- a/src/_cutecoin_test/models/test_community.py
+++ b/src/_cutecoin_test/models/test_community.py
@@ -3,6 +3,9 @@ from mock import Mock
 import ucoinpy as ucoin
 from cutecoin.models.community import Community
 from cutecoin.models.community import Node
+from cutecoin.models.account.wallets import Wallets
+from cutecoin.models.account import Account
+from cutecoin.models.node import Node
 
 
 
@@ -154,8 +157,15 @@ class Test_Community():
         assert "3F871197FAB029D8669EF85E82457A1587CA0ED9C" not in community.voters_fingerprints()
 
     #TODO: Test community json
-    def test_community_to_json(self):
-        pass
-
-    def test_community_from_json(self):
-        pass
+    def test_community_jsonify(self, monkeypatch):
+        monkeypatch.setattr(ucoin.hdc.amendments.Current,
+                            '__get__', patch_amendment_current_get)
+        main_node = Node(trust=True, hoster=True,
+                server="192.168.100.10", port=3800)
+        community = Community.create(main_node)
+        wallets = Wallets()
+        json = community.jsonify(wallets)
+        account = Mock(spec=Account)
+        community2 = Community.load(json, account)
+        
+        assert community2.network.nodes[0].server == community.network.nodes[0].server
diff --git a/src/_cutecoin_test/models/test_node.py b/src/_cutecoin_test/models/test_node.py
index 0e6538a0..eeac9ad1 100644
--- a/src/_cutecoin_test/models/test_node.py
+++ b/src/_cutecoin_test/models/test_node.py
@@ -38,6 +38,14 @@ def patch_peer_get(*args, **kwargs):
     "port": "3800",
     "signature": "-----BEGIN PGP SIGNATURE----- ... -----END PGP SIGNATURE-----"
     }
+    
+def patch_downstream_get(*args, **kwargs):
+    return {
+      "peers": [
+        {"key": "SOME_KEY_FINGERPRINT", "dns": "name.example1.com", "ipv4": "11.11.11.11", "ipv6": "1A01:E35:2421:4BE0:CDBC:C04E:A7AB:ECF1", "port": 8881},
+        {"key": "SOME_KEY_FINGERPRINT", "dns": "name.example2.com", "ipv4": "11.11.11.12", "ipv6": "1A01:E35:2421:4BE0:CDBC:C04E:A7AB:ECF2", "port": 8882}
+      ]
+    }
 
 
 class Test_Node():
@@ -57,6 +65,20 @@ class Test_Node():
         assert peering["ipv4"] == "192.168.100.10"
         assert peering["port"] == str(3800)
 
-    #TODO: Test node json
-    def test_node_jsonify(self):
-        pass
+    def test_eq(self, monkeypatch):
+        node1 = Node("192.168.100.12", 3800)
+        node2 = Node("192.168.100.13", 3800)
+        node3 = Node("192.168.100.12", 3801)
+        node4 = Node("192.168.100.12", 3800)
+
+        assert node1 != node2
+        assert node1 != node3
+        assert node1 == node4
+        
+    def test_downstream(self, monkeypatch):
+        monkeypatch.setattr(ucoin.ucg.peering.peers.DownStream, '__get__', patch_downstream_get)
+        node = Node("192.168.100.12", 3800)
+        downstream = node.downstream_peers()
+        assert downstream[0].server == "11.11.11.11" and downstream[0].port == 8881
+        assert downstream[1].server == "11.11.11.12" and downstream[1].port == 8882
+    
\ No newline at end of file
diff --git a/src/_cutecoin_test/models/test_person.py b/src/_cutecoin_test/models/test_person.py
index f329ef38..8a866430 100644
--- a/src/_cutecoin_test/models/test_person.py
+++ b/src/_cutecoin_test/models/test_person.py
@@ -55,8 +55,10 @@ class Test_Person():
         assert person.fingerprint == "2E69197FAB029D8669EF85E82457A1587CA0ED9C"
         assert person.email == "mistertest2@testmail.com"
 
-    def test_person_jsonify(self):
-        pass
-
-    def test_person_from_json(self):
-        pass
+    def test_person_jsonify(self, monkeypatch, mock_community):
+        person = Person.lookup("2E69197FAB029D8669EF85E82457A1587CA0ED9C", mock_community)
+        json = person.jsonify()
+        person2 = Person.from_json(json)
+        assert person2.name == person.name
+        assert person2.fingerprint == person.fingerprint
+        assert person2.email == person.email
diff --git a/src/_cutecoin_test/models/test_wallet.py b/src/_cutecoin_test/models/test_wallet.py
index 2c4e4573..0e239c78 100644
--- a/src/_cutecoin_test/models/test_wallet.py
+++ b/src/_cutecoin_test/models/test_wallet.py
@@ -70,6 +70,10 @@ class Test_Wallet:
 
         assert wallet1 != wallet2
         
-
-    def test_wallet_jsonify(self):
-        pass
+    def test_wallet_jsonify(self, monkeypatch):
+        wallet = Wallet([], mock_community())
+        wallet.refresh_coins("86F7E437FAA5A7FCE15D1DDCB9EAEAEA377667B8")
+        json = wallet.jsonify()
+        wallet2 = Wallet.load(json, mock_community())
+        same_coins = [coin1 for coin1, coin2 in zip(wallet.coins, wallet2.coins) if coin1 == coin2]
+        assert len(same_coins) == len(wallet.coins) and len(same_coins) == len(wallet2.coins) 
\ No newline at end of file
-- 
GitLab