Esempio n. 1
0
def test_project_directory_properties(project_dir):
    project = Project()

    contracts_dir = get_contracts_dir(project_dir)
    assert is_same_path(project.contracts_dir, contracts_dir)

    build_dir = get_build_dir(project_dir)
    assert is_same_path(project.build_dir, build_dir)

    compiled_contracts_file_path = get_compiled_contracts_file_path(
        project_dir)
    assert is_same_path(project.compiled_contracts_file_path,
                        compiled_contracts_file_path)

    blockchains_dir = get_blockchains_dir(project_dir)
    assert is_same_path(project.blockchains_dir, blockchains_dir)

    data_dir = get_data_dir(project_dir, 'some-test-chain-name')
    assert is_same_path(
        project.get_blockchain_data_dir('some-test-chain-name'), data_dir)

    chaindata_dir = get_chaindata_dir(data_dir)
    assert is_same_path(
        project.get_blockchain_chaindata_dir('some-test-chain-name'),
        chaindata_dir)

    geth_ipc_path = get_geth_ipc_path(data_dir)
    assert is_same_path(
        project.get_blockchain_ipc_path('some-test-chain-name'), geth_ipc_path)
Esempio n. 2
0
def start_private_geth(chain_name, project_dir, host, port, verbosity=5, p2p_port=30303):
    """Start a local geth process that mines isolated private testnet."""
    blockchains_dir = get_blockchains_dir(project_dir)

    os.makedirs(os.path.join(project_dir, "logs"), exist_ok=True)

    overrides = {
        "rpc_port": str(port),
        "rpc_addr": host,
        "ipc_disable": "true",
        "verbosity": str(verbosity),  # https://github.com/ethereum/go-ethereum/wiki/Command-Line-Options
        "port": str(p2p_port)
    }

    geth = LoggedDevGethProcess(
        chain_name=chain_name,
        project_dir=project_dir,
        blockchains_dir=blockchains_dir,
        overrides=overrides
    )

    logger.info("Starting geth")
    geth.start()

    if geth.is_mining:
        logger.info("Waiting for DAG")
        geth.wait_for_dag(600)
    if geth.ipc_enabled:
        logger.info("Waiting for IPC")
        geth.wait_for_ipc(30)
    if geth.rpc_enabled:
        logger.info("Waiting for RPC")
        geth.wait_for_rpc(30)

    return geth
Esempio n. 3
0
 def start_geth(self):
     geth_proc = DevGethProcess(
         chain_name=current_app.config.get('FLASKWEB3_CHAIN_NAME'),
         base_dir=get_blockchains_dir(
             current_app.config.get('FLASKWEB3_PROJECTDIR')))
     geth_proc.start()
     return geth_proc
Esempio n. 4
0
    def get_geth_process_instance(self):
        tmp_project_dir = self.stack.enter_context(tempdir())
        blockchains_dir = get_blockchains_dir(tmp_project_dir)

        return LoggedDevGethProcess(
            project_dir=self.project.project_dir,
            blockchains_dir=blockchains_dir,
            chain_name=self.chain_name,
            overrides=self.geth_kwargs,
        )
Esempio n. 5
0
def project_dir(tmpdir, monkeypatch):
    from populus.utils.filesystem import (
        ensure_path_exists,
        get_contracts_dir,
        get_build_dir,
        get_blockchains_dir,
    )

    _project_dir = str(tmpdir.mkdir("project-dir"))

    # setup project directories
    ensure_path_exists(get_contracts_dir(_project_dir))
    ensure_path_exists(get_build_dir(_project_dir))
    ensure_path_exists(get_blockchains_dir(_project_dir))

    monkeypatch.chdir(_project_dir)
    monkeypatch.syspath_prepend(_project_dir)

    return _project_dir
Esempio n. 6
0
def project_dir(tmpdir, monkeypatch):
    from populus.utils.filesystem import (
        ensure_path_exists,
        get_contracts_dir,
        get_build_dir,
        get_blockchains_dir,
    )

    _project_dir = str(tmpdir.mkdir("project-dir"))

    # setup project directories
    ensure_path_exists(get_contracts_dir(_project_dir))
    ensure_path_exists(get_build_dir(_project_dir))
    ensure_path_exists(get_blockchains_dir(_project_dir))

    monkeypatch.chdir(_project_dir)
    monkeypatch.syspath_prepend(_project_dir)

    return _project_dir
def test_project_directory_properties(project_dir):
    project = Project()

    contracts_dir = get_contracts_dir(project_dir)
    assert is_same_path(project.contracts_dir, contracts_dir)

    build_dir = get_build_dir(project_dir)
    assert is_same_path(project.build_dir, build_dir)

    compiled_contracts_file_path = get_compiled_contracts_file_path(project_dir)
    assert is_same_path(project.compiled_contracts_file_path, compiled_contracts_file_path)

    blockchains_dir = get_blockchains_dir(project_dir)
    assert is_same_path(project.blockchains_dir, blockchains_dir)

    data_dir = get_data_dir(project_dir, "some-test-chain-name")
    assert is_same_path(project.get_blockchain_data_dir("some-test-chain-name"), data_dir)

    chaindata_dir = get_chaindata_dir(data_dir)
    assert is_same_path(project.get_blockchain_chaindata_dir("some-test-chain-name"), chaindata_dir)

    geth_ipc_path = get_geth_ipc_path(data_dir)
    assert is_same_path(project.get_blockchain_ipc_path("some-test-chain-name"), geth_ipc_path)
Esempio n. 8
0
 def blockchains_dir(self):
     return get_blockchains_dir(self.project_dir)