package tezos-mockup
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=6b33e0549574c89a63538c94ce5555dd141e3c0fb5d934abff07d702fa3244d2
sha512=681a197baabec6e2f806871d43490382243207518f8fcf932741cd314d8717e46db2b6a5adc222f8726083a5dd911083b4931b7e878ab815f8f1a32763d1bf93
Description
Published: 16 Sep 2021
README
Mockup mode
Libraries for mockup mode, i.e., the implementation of tezos-client
's --mode mockup
flags.
Overview
There are 3 libraries in this directory (see dune
file):
tezos_mockup
tezos_mockup_registration
tezos_mockup_commands
Tezos mockup
This library defines a mockup implementation of RPCs that are handled locally in mockup mode while they are executed on a node by vanilla clients.
Mockup-specific services (e.g., baking RPCs) are implemented in local_services.ml
The mockup RPC layer is itself in RPC_client.ml
.
Higher-level mockup interaction is located in persistence.ml
, in particular to handle mockup states (creation, modification, etc.).
Tezos mockup registration
This library defines the interface that is expected to be implemented by the protocol. This then allows to register a protocol and support it in mockup mode. See for example src/proto_alpha/lib_client/mockup.ml
.
mockup_args.ml
handles mockup (dummy) chain ids.
Tezos mockup commands
Mockup commands that are independent from the protocol (one of list mockup protocols
) are implemented here. Currently, there is only one such command (list mockup protocols
indeed). All other mockup client commands are the same as for vanilla clients, except for the additional --mode mockup
switch.
Protocol-specific mockup commands are implemented in the respective src/proto_*/lib_client_commands/client_proto_mockup_commands.ml
. For example, for protocol alpha
, this is done in src/proto_alpha/lib_client_commands/client_proto_mockup_commands.ml
. create mockup
is an example of such a command.
All mockup commands are used in src/lib_client_base_unix/client_config.ml
. More precisely, there is a dedicated mockup context object in src/lib_client_base_unix/client_context_unix.ml
, delegating its RPC calls to the local mockup implementation
Testing
Tests for mockup mode use both the pytest
and the tezt
testing frameworks.
Pytest
For the former kind of tests, run at toplevel:
(cd tests_python && poetry run pytest tests_alpha/test_mockup.py)
Replace tests_alpha
by tests_008
if needed.
Tezt
Run at toplevel
dune exec tezt/tests/main.exe -- mockup
API Documentation
https://tezos.gitlab.io/api/odoc/_html/tezos-mockup/index.html
Other documentation
Dependencies (4)
-
tezos-mockup-registration
= version
-
tezos-mockup-proxy
= version
-
tezos-p2p
= version
-
dune
>= "2.5"
Dev Dependencies (3)
-
tezos-test-helpers
with-test & = version
-
alcotest-lwt
with-test
-
tezos-test-services
with-test & = version
Used by (1)
-
tezos-mockup-commands
= "10.2"
Conflicts
None