Skip to content

Commit

Permalink
Refactor parity tests into separate classes
Browse files Browse the repository at this point in the history
  • Loading branch information
kclowes committed Jul 18, 2019
1 parent 8b43ec1 commit b3c4047
Show file tree
Hide file tree
Showing 6 changed files with 69 additions and 8 deletions.
14 changes: 12 additions & 2 deletions tests/integration/parity/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@

from web3._utils.module_testing import ( # noqa: F401
EthModuleTest,
ParityModuleTest as TraceModuleTest,
ParityModuleTest,
ParityPersonalModuleTest,
ParitySetModuleTest,
ParityTraceModuleTest,
Web3ModuleTest,
)
from web3._utils.module_testing.eth_module import (
Expand Down Expand Up @@ -178,7 +180,15 @@ def test_invalid_eth_signTypedData(self,
)


class ParityTraceModuleTest(TraceModuleTest):
class ParityTraceModuleTest(ParityTraceModuleTest):
pass


class ParitySetModuleTest(ParitySetModuleTest):
pass


class ParityModuleTest(ParityModuleTest):
pass


Expand Down
10 changes: 10 additions & 0 deletions tests/integration/parity/test_parity_ipc.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@
from .common import (
CommonParityShhModuleTest,
ParityEthModuleTest,
ParityModuleTest,
ParityPersonalModuleTest,
ParitySetModuleTest,
ParityTraceModuleTest,
ParityWeb3ModuleTest,
)
Expand Down Expand Up @@ -102,5 +104,13 @@ class TestParityTraceModuleTest(ParityTraceModuleTest):
pass


class TestParityModuleTest(ParityModuleTest):
pass


class TestParitySetModuleTest(ParitySetModuleTest):
pass


class TestParityShhModuleTest(CommonParityShhModuleTest):
pass
10 changes: 10 additions & 0 deletions tests/integration/parity/test_parity_ws.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@
from .common import (
CommonParityShhModuleTest,
ParityEthModuleTest,
ParityModuleTest,
ParityPersonalModuleTest,
ParitySetModuleTest,
ParityTraceModuleTest,
ParityWeb3ModuleTest,
)
Expand Down Expand Up @@ -107,6 +109,14 @@ class TestParityTraceModuleTest(ParityTraceModuleTest):
pass


class TestParityModuleTest(ParityModuleTest):
pass


class TestParitySetModuleTest(ParitySetModuleTest):
pass


class TestMiscWebsocketTest(MiscWebsocketTest):
pass

Expand Down
2 changes: 2 additions & 0 deletions web3/_utils/module_testing/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,7 @@
VersionModuleTest,
)
from .parity_module import ( # noqa: F401
ParitySetModuleTest,
ParityTraceModuleTest,
ParityModuleTest,
)
39 changes: 34 additions & 5 deletions web3/_utils/module_testing/parity_module.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,7 @@
)


class ParityModuleTest:

def test_list_storage_keys_no_support(self, web3, emitter_contract_address):
keys = web3.parity.listStorageKeys(emitter_contract_address, 10, None)
assert keys is None
class ParityTraceModuleTest:

def test_trace_replay_transaction(self, web3, parity_fixture_data):
trace = web3.parity.traceReplayTransaction(parity_fixture_data['mined_txn_hash'])
Expand Down Expand Up @@ -92,6 +88,39 @@ def test_trace_filter(self, web3, txn_filter_params, parity_fixture_data):
assert isinstance(trace, list)
assert trace[0]['action']['from'] == add_0x_prefix(parity_fixture_data['coinbase'])


class ParityModuleTest:

def test_add_reserved_peer(self, web3):
peer_addr = 'enode://f1a6b0bdbf014355587c3018454d070ac57801f05d3b39fe85da574f002a32e929f683d72aa5a8318382e4d3c7a05c9b91687b0d997a39619fb8a6e7ad88e512@1.1.1.1:30300' # noqa: E501
assert web3.parity.addReservedPeer(peer_addr)

def test_list_storage_keys_no_support(self, web3, emitter_contract_address):
keys = web3.parity.listStorageKeys(emitter_contract_address, 10, None)
assert keys is None

def test_mode(self, web3):
assert web3.parity.mode() is not None


class ParitySetModuleTest:

@pytest.mark.parametrize(
'mode',
[
('dark'),
('offline'),
('active'),
('passive'),
]
)
def test_set_mode(self, web3, mode):
assert web3.parity.setMode(mode) is True

def test_set_mode_with_bad_string(self, web3):
with pytest.raises(ValueError, match="Couldn't parse parameters: mode"):
web3.parity.setMode('not a mode')

def test_set_mode_with_no_argument(self, web3):
with pytest.raises(TypeError, match='missing 1 required positional argument'):
web3.parity.setMode()
2 changes: 1 addition & 1 deletion web3/parity.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ def setMode(self, mode):
[mode]
)

def getMode(self):
def mode(self):
return self.web3.manager.request_blocking(
"parity_mode",
[]
Expand Down

0 comments on commit b3c4047

Please sign in to comment.