diff --git a/src/_cutecoin_test/models/test_coin.py b/src/_cutecoin_test/models/test_coin.py index 0bf8f8ed0b0c04674f14bd8a9d5374cdaf53f293..b7340891e9b3f186c53e71f85193f8efe6a553b0 100644 --- a/src/_cutecoin_test/models/test_coin.py +++ b/src/_cutecoin_test/models/test_coin.py @@ -4,24 +4,31 @@ from cutecoin.models.coin import Coin issuer = "2E69197FAB029D8669EF85E82457A1587CA0ED9C" -number = "0" -base = "1" -power = "1" +number = 0 +base = 3 +power = 2 origin = "A-2" @pytest.fixture def coin_id_regex(): - return re.compile("^([A-Z\d]{40})-(\d+)-(\d)-(\d+)-((A|F|D)-\d+)$") + return re.compile("^([A-Z\d]{40})-(\d+)-(\d)-(\d+)-((A|F|D)-\d+)$") +@pytest.mark.order1 +class Test_Coin: -def test_coin_init(coin_id_regex): - coin = Coin(issuer, number, base, power, origin) - assert coin_id_regex.match(coin.get_id()) is not None + def test_coin_init(self, coin_id_regex): + coin = Coin(issuer, number, base, power, origin) + assert coin_id_regex.match(coin.get_id()) is not None -def test_coin_from_id(coin_id_regex): - coin_id = issuer + "-" + number + "-" + base + "-" + power + "-" + origin - coin = Coin.from_id(coin_id) - assert coin is not None - assert coin_id_regex.match(coin.get_id()) is not None + def test_coin_from_id(self, coin_id_regex): + coin_id = issuer + "-" + number + "-" + base + "-" + power + "-" + origin + coin = Coin.from_id(coin_id) + assert coin is not None + assert coin_id_regex.match(coin.get_id()) is not None + + + def test_coin_value(self): + coin = Coin(issuer, number, base, power, origin) + assert coin.value() == 300 \ No newline at end of file diff --git a/src/_cutecoin_test/models/test_community.py b/src/_cutecoin_test/models/test_community.py index d727a49ac5d0607a9cc8ec8e93439563bf89f109..31286c314cef0ec5ce07e8b689ef554b858ec589 100644 --- a/src/_cutecoin_test/models/test_community.py +++ b/src/_cutecoin_test/models/test_community.py @@ -2,44 +2,99 @@ import pytest from mock import Mock import ucoinpy as ucoin from cutecoin.models.community import Community +from cutecoin.models.community import Node -#TODO: Unit test for community -def test_community_create(monkeypatch): - pass +@pytest.fixture +def mock_amendment_current_get(): + mock_get = Mock(spec=ucoin.hdc.amendments.Current.__get__) + mock_get.return_value = { + "version": "1", + "currency": "beta_brousouf", + "number": "2", + "previousHash": "0F45DFDA214005250D4D2CBE4C7B91E60227B0E5", + "dividend": "100", + "coinMinimalPower": "0", + "votersRoot": "DC7A9229DFDABFB9769789B7BFAE08048BCB856F", + "votersCount": "2", + "votersChanges": [ + "-C73882B64B7E72237A2F460CE9CAB76D19A8651E" + ], + "membersRoot": "F92B6F81C85200250EE51783F5F9F6ACA57A9AFF", + "membersCount": "4", + "membersChanges": [ + "+31A6302161AC8F5938969E85399EB3415C237F93" + ], + "raw": "Version: 1\r\n...+31A6302161AC8F5938969E85399EB3415C237F93\r\n" + } + return mock_get -def test_community_dividend(monkeypatch): - pass +@pytest.fixture +def mock_amendments_members_get(): + mock_get = Mock(spec=ucoin.hdc.amendments.Current.__get__) + mock_get.return_value = [{ + "hash": "2E69197FAB029D8669EF85E82457A1587CA0ED9C", + "value": "2E69197FAB029D8669EF85E82457A1587CA0ED9C" + }, + { + "hash": "3F69197FAB029D8669EF85E82457A1587CA0ED9C", + "value": "3F69197FAB029D8669EF85E82457A1587CA0ED9C" + }] + return mock_get + +@pytest.fixture +def mock_amendments_voters_get(): + mock_get = Mock(spec=ucoin.hdc.amendments.Current.__get__) + mock_get.return_value = [{ + "hash": "2E69197FAB029D8669EF85E82457A1587CA0ED9C", + "value": "2E69197FAB029D8669EF85E82457A1587CA0ED9C" + }, + { + "hash": "3F69197FAB029D8669EF85E82457A1587CA0ED9C", + "value": "3F69197FAB029D8669EF85E82457A1587CA0ED9C" + }] + return mock_get + + -def test_community_coin_minimal_power(monkeypatch): - pass +class Test_Community(): + def test_community_create(self, monkeypatch, mock_amendment_current_get): + pass -def test_community_amendment_id(monkeypatch): - pass + def test_community_dividend(self, monkeypatch): + pass -def test_community_amendment_number(monkeypatch): - pass + def test_community_coin_minimal_power(self, monkeypatch): + pass -def test_community_person_quality(monkeypatch): - pass + def test_community_amendment_id(self, monkeypatch): + pass -def test_community_members_fingerprint(monkeypatch): - pass + def test_community_amendment_number(self, monkeypatch): + pass -def test_community_voters_fingerprint(monkeypatch): - pass + def test_community_person_quality(self, monkeypatch): + pass -def test_community_to_json(): - pass + def test_community_members_fingerprint(self, monkeypatch): + pass -def test_community_from_json(): - pass + def test_community_voters_fingerprint(self, monkeypatch): + pass + + + def test_community_to_json(self): + pass + + + def test_community_from_json(self): + pass diff --git a/src/_cutecoin_test/models/test_node.py b/src/_cutecoin_test/models/test_node.py index 3d7241cf86278e1746196ad61186f110746dcddb..8db527f4ed140d84782e785889f3a1d1882317d2 100644 --- a/src/_cutecoin_test/models/test_node.py +++ b/src/_cutecoin_test/models/test_node.py @@ -3,55 +3,66 @@ import ucoinpy as ucoin from mock import Mock from cutecoin.models.node import Node +@pytest.fixture +def mock_peers_get(): + mock_get = Mock(spec=ucoin.ucg.peering.Peers.__get__) + mock_get.return_value = [{ + "version": "1", + "currency": "beta_brousouf", + "fingerprint": "A70B8E8E16F91909B6A06DFB7EEF1651D9CCF468", + "dns": "DNS_VALUE", + "ipv4": "192.168.100.10", + "ipv6": "", + "port": "3800", + "signature": "-----BEGIN PGP SIGNATURE----- ... -----END PGP SIGNATURE-----" + }, + { + "version": "1", + "currency": "beta_brousouf", + "fingerprint": "A70B8E8E16F91909B6A06DFB7EEF1651D9CCF469", + "dns": "DNS_VALUE", + "ipv4": "192.168.100.11", + "ipv6": "", + "port": "3801", + "signature": "-----BEGIN PGP SIGNATURE----- ... -----END PGP SIGNATURE-----" + }] + return mock_get + -def test_peers(monkeypatch): - mock_peers_get = Mock(spec=ucoin.ucg.peering.Peers.__get__) - mock_peers_get.return_value = [{"version": "1", - "currency": "beta_brousouf", - "fingerprint": "A70B8E8E16F91909B6A06DFB7EEF1651D9CCF468", - "dns": "DNS_VALUE", - "ipv4": "192.168.100.10", - "ipv6": "", - "port": "3800", - "signature": "-----BEGIN PGP SIGNATURE----- ... -----END PGP SIGNATURE-----" - }, - {"version": "1", - "currency": "beta_brousouf", - "fingerprint": "A70B8E8E16F91909B6A06DFB7EEF1651D9CCF469", - "dns": "DNS_VALUE", - "ipv4": "192.168.100.11", - "ipv6": "", - "port": "3801", - "signature": "-----BEGIN PGP SIGNATURE----- ... -----END PGP SIGNATURE-----" -}] - monkeypatch.setattr(ucoin.ucg.peering.Peers, '__get__', mock_peers_get) - - node = Node("192.168.100.12", 3800) - peers = node.peers() - assert peers[0]["ipv4"] == "192.168.100.10" - assert peers[1]["ipv4"] == "192.168.100.11" - - -def test_peering(monkeypatch): - mock_peering_get = Mock(spec=ucoin.ucg.peering.Peer.__get__) - mock_peering_get.return_value = { - "version": "1", - "currency": "beta_brousouf", - "fingerprint": "A70B8E8E16F91909B6A06DFB7EEF1651D9CCF468", - "dns": "DNS_VALUE", - "ipv4": "192.168.100.10", - "ipv6": "", - "port": "3800", - "signature": "-----BEGIN PGP SIGNATURE----- ... -----END PGP SIGNATURE-----" -} - monkeypatch.setattr(ucoin.ucg.peering.Peer, '__get__', mock_peering_get) - - node = Node("192.168.100.12", 3800) - peering = node.peering() - assert peering["ipv4"] == "192.168.100.10" - assert peering["port"] == str(3800) - - -#TODO: Test node jsonify -def test_node_jsonify(monkeypatch): - pass +@pytest.fixture +def mock_peer_get(): + mock_get = Mock(spec=ucoin.ucg.peering.Peer.__get__) + mock_get.return_value = { + "version": "1", + "currency": "beta_brousouf", + "fingerprint": "A70B8E8E16F91909B6A06DFB7EEF1651D9CCF468", + "dns": "DNS_VALUE", + "ipv4": "192.168.100.10", + "ipv6": "", + "port": "3800", + "signature": "-----BEGIN PGP SIGNATURE----- ... -----END PGP SIGNATURE-----" + } + return mock_get + +class Test_Node(): + def test_peers(self, monkeypatch, mock_peers_get): + + monkeypatch.setattr(ucoin.ucg.peering.Peers, '__get__', mock_peers_get) + + node = Node("192.168.100.12", 3800) + peers = node.peers() + assert peers[0]["ipv4"] == "192.168.100.10" + assert peers[1]["ipv4"] == "192.168.100.11" + + + def test_peering(self, monkeypatch, mock_peer_get): + monkeypatch.setattr(ucoin.ucg.peering.Peer, '__get__', mock_peer_get) + + node = Node("192.168.100.12", 3800) + peering = node.peering() + assert peering["ipv4"] == "192.168.100.10" + assert peering["port"] == str(3800) + + + def test_node_jsonify(self, monkeypatch): + pass diff --git a/src/_cutecoin_test/models/test_person.py b/src/_cutecoin_test/models/test_person.py index 82387a086f68f3443c3f967f1ba4994737a98375..2d76715c8e14dcd5529c57693b137f59294d63b0 100644 --- a/src/_cutecoin_test/models/test_person.py +++ b/src/_cutecoin_test/models/test_person.py @@ -5,37 +5,43 @@ from cutecoin.models.person import Person from cutecoin.models.community import Community -#TODO: Lookup for person after community was tested -def test_person_lookup(monkeypatch): - pks_lookup_get = Mock(spec = ucoin.pks.Lookup.get) - pks_lookup_get.return_value = [ - { - "signature": "-----BEGIN PGP SIGNATURE----- ... -----END PGP SIGNATURE-----", - "key": - { - "email":"misterk@supermail.com", - "comment":"udid2;c;CAT;LOL;2000-04-19;e+43.70-079.42;0;", - "name":"LoL Cat", - "fingerprint":"C73882B64B7E72237A2F460CE9CAB76D19A8651E", - "raw":"-----BEGIN PGP PUBLIC KEY BLOCK----- ... -----END PGP PUBLIC KEY BLOCK-----\r\n" - } - }, - { - "signature": "-----BEGIN PGP SIGNATURE----- ... -----END PGP SIGNATURE-----", - "key": - { - "email":"mistery@undermail.com", - "comment":"udid2;c;CAT;LOL;2000-04-19;e+43.70-079.42;0;", - "name":"LoL Cat", - "fingerprint":"C73882B64B7E72237A2F460CE9CAB76D19A8651E", - "raw":"-----BEGIN PGP PUBLIC KEY BLOCK----- ... -----END PGP PUBLIC KEY BLOCK-----\r\n" - } - }] +@pytest.fixture +def mock_lookup_get(): + mock_get = Mock(spec = ucoin.pks.Lookup.__get__) + mock_get.return_value = [ + { + "signature": "-----BEGIN PGP SIGNATURE----- ... -----END PGP SIGNATURE-----", + "key": + { + "email":"misterk@supermail.com", + "comment":"udid2;c;CAT;LOL;2000-04-19;e+43.70-079.42;0;", + "name":"LoL Cat", + "fingerprint":"C73882B64B7E72237A2F460CE9CAB76D19A8651E", + "raw":"-----BEGIN PGP PUBLIC KEY BLOCK----- ... -----END PGP PUBLIC KEY BLOCK-----\r\n" + } + }, + { + "signature": "-----BEGIN PGP SIGNATURE----- ... -----END PGP SIGNATURE-----", + "key": + { + "email":"mistery@undermail.com", + "comment":"udid2;c;CAT;LOL;2000-04-19;e+43.70-079.42;0;", + "name":"LoL Cat", + "fingerprint":"C73882B64B7E72237A2F460CE9CAB76D19A8651E", + "raw":"-----BEGIN PGP PUBLIC KEY BLOCK----- ... -----END PGP PUBLIC KEY BLOCK-----\r\n" + } + }] + return mock_get +#TODO: Lookup for person after community was tested +class Test_Person(): + def test_person_lookup(self, monkeypatch): + pass + -def test_person_jsonify(): - pass + def test_person_jsonify(self): + pass -def test_person_from_json(): - pass + def test_person_from_json(self): + pass diff --git a/src/_cutecoin_test/models/test_wallet.py b/src/_cutecoin_test/models/test_wallet.py index 87995cc862556ce3d67430061f5ff1eb0a2418b5..37374c3202c9b4d4980062bb21d0d327454e5f29 100644 --- a/src/_cutecoin_test/models/test_wallet.py +++ b/src/_cutecoin_test/models/test_wallet.py @@ -1,28 +1,65 @@ import pytest import ucoinpy as ucoin +from mock import Mock from cutecoin.models.wallet import Wallet +from cutecoin.models.community import Community +@pytest.fixture +def mock_coins_list_get(): + mock_get = Mock(spec=ucoin.hdc.coins.List.__get__) + mock_get.return_value = { + "owner": "86F7E437FAA5A7FCE15D1DDCB9EAEAEA377667B8", + "coins": [{ + "issuer": "86F7E437FAA5A7FCE15D1DDCB9EAEAEA377667B8", + "ids": ["1-5-2-A-1", "2-4-1-A-1"] + },{ + "issuer": "31A6302161AC8F5938969E85399EB3415C237F93", + "ids": ["10-1-2-F-14"] + }] + } + return mock_get -#TODO: Test wallet -def test_wallet_create(): - pass +@pytest.fixture +def mock_community_request(request, mock_coins_list_get): + if request == ucoin.hdc.coins.List.get: + return mock_coins_list_get() + else: + return "Failed !" -def test_wallet_load(): - pass +@pytest.fixture +def mock_community(mock_community_request): + community = Mock(spec=Community) + instance = community.return_value + instance.network.request.return_value = mock_community_request + return community -def test_wallet_value(): - pass +class Test_Wallet: + def test_wallet_create(self, mock_community): + wallet = Wallet([], mock_community) + assert wallet is not None -def test_wallet_refresh_coins(): - pass + + def test_wallet_load(self): + pass -def test_wallet_get_text(): - pass + def test_wallet_value(self, mock_community): + wallet = Wallet([], mock_community) + assert wallet.value() == 640 + + pass -def test_wallet_jsonify(): - pass + def test_wallet_refresh_coins(self): + pass + + + def test_wallet_get_text(self): + pass + + + def test_wallet_jsonify(self): + pass diff --git a/src/_cutecoin_test/test_scenarios.py b/src/_cutecoin_test/test_scenarios.py deleted file mode 100644 index 29543a6391d5690a84572a64c0d5fc191fac426d..0000000000000000000000000000000000000000 --- a/src/_cutecoin_test/test_scenarios.py +++ /dev/null @@ -1,18 +0,0 @@ -''' -Created on 6 avr. 2014 - -@author: inso -''' - -#TODO: Scenario de tests -''' -def pytest_generate_tests(metafunc): - idlist = [] - argvalues = [] - for scenario in metafunc.cls.scenarios: - idlist.append(scenario[0]) - items = scenario[1].items() - argnames = [x[0] for x in items] - argvalues.append(([x[1] for x in items])) - metafunc.parametrize(argnames, argvalues, ids=idlist, scope="class") - '''