Consolidate test fixtures (#10778)

* Rename confusing fixtures, especially ones with the same name but different implementation

* revert premature fixture rename: two_wallet_nodes_start_height_1

* Consolidate test fixtures
This commit is contained in:
Adam Kelly
2022-03-29 13:25:30 -07:00
committed by GitHub
parent 92897ffc39
commit c5426068aa
28 changed files with 377 additions and 515 deletions
@@ -11,9 +11,9 @@ from chia.types.spend_bundle import SpendBundle
from chia.util.errors import ConsensusError, Err
from chia.util.ints import uint64
from tests.blockchain.blockchain_test_utils import _validate_and_add_block
from tests.wallet_tools import WalletTool
from tests.setup_nodes import test_constants
from tests.util.generator_tools_testing import run_and_get_removals_and_additions
from tests.wallet_tools import WalletTool
BURN_PUZZLE_HASH = b"0" * 32
+313 -1
View File
@@ -1,6 +1,8 @@
# flake8: noqa E402 # See imports after multiprocessing.set_start_method
import multiprocessing
import os
from secrets import token_bytes
import pytest
import pytest_asyncio
import tempfile
@@ -8,11 +10,34 @@ import tempfile
from tests.setup_nodes import setup_node_and_wallet, setup_n_nodes, setup_two_nodes
# Set spawn after stdlib imports, but before other imports
from chia.clvm.spend_sim import SimClient, SpendSim
from chia.protocols import full_node_protocol
from chia.simulator.simulator_protocol import FarmNewBlockProtocol
from chia.types.blockchain_format.sized_bytes import bytes32
from chia.types.peer_info import PeerInfo
from chia.util.ints import uint16
from tests.core.node_height import node_height_at_least
from tests.pools.test_pool_rpc import wallet_is_synced
from tests.setup_nodes import (
setup_simulators_and_wallets,
setup_node_and_wallet,
setup_full_system,
setup_daemon,
setup_n_nodes,
setup_introducer,
setup_timelord,
setup_two_nodes,
)
from tests.simulation.test_simulation import test_constants_modified
from tests.time_out_assert import time_out_assert
from tests.util.socket import find_available_listen_port
from tests.wallet_tools import WalletTool
multiprocessing.set_start_method("spawn")
from pathlib import Path
from chia.util.keyring_wrapper import KeyringWrapper
from tests.block_tools import BlockTools, test_constants, create_block_tools
from tests.block_tools import BlockTools, test_constants, create_block_tools, create_block_tools_async
from tests.util.keyring import TempKeyring
@@ -157,6 +182,12 @@ async def two_nodes(db_version, self_hostname):
yield _
@pytest_asyncio.fixture(scope="function")
async def setup_two_nodes_fixture(db_version):
async for _ in setup_simulators_and_wallets(2, 0, {}, db_version=db_version):
yield _
@pytest_asyncio.fixture(scope="function")
async def three_nodes(db_version, self_hostname):
async for _ in setup_n_nodes(test_constants, 3, db_version=db_version, self_hostname=self_hostname):
@@ -173,3 +204,284 @@ async def four_nodes(db_version, self_hostname):
async def five_nodes(db_version, self_hostname):
async for _ in setup_n_nodes(test_constants, 5, db_version=db_version, self_hostname=self_hostname):
yield _
@pytest_asyncio.fixture(scope="module")
async def wallet_nodes(bt):
async_gen = setup_simulators_and_wallets(2, 1, {"MEMPOOL_BLOCK_BUFFER": 2, "MAX_BLOCK_COST_CLVM": 400000000})
nodes, wallets = await async_gen.__anext__()
full_node_1 = nodes[0]
full_node_2 = nodes[1]
server_1 = full_node_1.full_node.server
server_2 = full_node_2.full_node.server
wallet_a = bt.get_pool_wallet_tool()
wallet_receiver = WalletTool(full_node_1.full_node.constants)
yield full_node_1, full_node_2, server_1, server_2, wallet_a, wallet_receiver
async for _ in async_gen:
yield _
@pytest_asyncio.fixture(scope="function")
async def setup_four_nodes(db_version):
async for _ in setup_simulators_and_wallets(5, 0, {}, db_version=db_version):
yield _
@pytest_asyncio.fixture(scope="function")
async def two_nodes_sim_and_wallets():
async for _ in setup_simulators_and_wallets(2, 0, {}):
yield _
@pytest_asyncio.fixture(scope="function")
async def wallet_node_sim_and_wallet():
async for _ in setup_simulators_and_wallets(1, 1, {}):
yield _
@pytest_asyncio.fixture(scope="function")
async def wallet_node_100_pk():
async for _ in setup_simulators_and_wallets(1, 1, {}, initial_num_public_keys=100):
yield _
@pytest_asyncio.fixture(scope="function")
async def two_wallet_nodes():
async for _ in setup_simulators_and_wallets(1, 2, {}):
yield _
@pytest_asyncio.fixture(scope="function")
async def three_sim_two_wallets():
async for _ in setup_simulators_and_wallets(3, 2, {}):
yield _
@pytest_asyncio.fixture(scope="function")
async def setup_two_nodes_and_wallet():
async for _ in setup_simulators_and_wallets(2, 1, {}, db_version=2): # xxx
yield _
@pytest_asyncio.fixture(scope="function")
async def three_wallet_nodes():
async for _ in setup_simulators_and_wallets(1, 3, {}):
yield _
@pytest_asyncio.fixture(scope="function")
async def two_wallet_nodes_five_freeze():
async for _ in setup_simulators_and_wallets(1, 2, {}):
yield _
@pytest_asyncio.fixture(scope="function")
async def wallet_node_simulator():
async for _ in setup_simulators_and_wallets(1, 1, {}):
yield _
@pytest_asyncio.fixture(scope="function")
async def wallet_two_node_simulator():
async for _ in setup_simulators_and_wallets(2, 1, {}):
yield _
@pytest_asyncio.fixture(scope="module")
async def wallet_nodes_mempool_perf(bt):
key_seed = bt.farmer_master_sk_entropy
async for _ in setup_simulators_and_wallets(2, 1, {}, key_seed=key_seed):
yield _
@pytest_asyncio.fixture(scope="module")
async def wallet_nodes_perf(bt):
async_gen = setup_simulators_and_wallets(1, 1, {"MEMPOOL_BLOCK_BUFFER": 1, "MAX_BLOCK_COST_CLVM": 11000000000})
nodes, wallets = await async_gen.__anext__()
full_node_1 = nodes[0]
server_1 = full_node_1.full_node.server
wallet_a = bt.get_pool_wallet_tool()
wallet_receiver = WalletTool(full_node_1.full_node.constants)
yield full_node_1, server_1, wallet_a, wallet_receiver
async for _ in async_gen:
yield _
@pytest_asyncio.fixture(scope="function")
async def wallet_node_starting_height(self_hostname):
async for _ in setup_node_and_wallet(test_constants, self_hostname, starting_height=100):
yield _
@pytest_asyncio.fixture(scope="function")
async def wallet_nodes_mainnet(bt, db_version):
async_gen = setup_simulators_and_wallets(2, 1, {"NETWORK_TYPE": 0}, db_version=db_version)
nodes, wallets = await async_gen.__anext__()
full_node_1 = nodes[0]
full_node_2 = nodes[1]
server_1 = full_node_1.full_node.server
server_2 = full_node_2.full_node.server
wallet_a = bt.get_pool_wallet_tool()
wallet_receiver = WalletTool(full_node_1.full_node.constants)
yield full_node_1, full_node_2, server_1, server_2, wallet_a, wallet_receiver
async for _ in async_gen:
yield _
@pytest_asyncio.fixture(scope="function")
async def three_nodes_two_wallets():
async for _ in setup_simulators_and_wallets(3, 2, {}):
yield _
@pytest_asyncio.fixture(scope="function")
async def wallet_and_node():
async for _ in setup_simulators_and_wallets(1, 1, {}):
yield _
# TODO: Ideally, the db_version should be the (parameterized) db_version
# fixture, to test all versions of the database schema. This doesn't work
# because of a hack in shutting down the full node, which means you cannot run
# more than one simulations per process.
@pytest_asyncio.fixture(scope="function")
async def daemon_simulation(bt, get_b_tools, get_b_tools_1):
async for _ in setup_full_system(
test_constants_modified,
bt,
b_tools=get_b_tools,
b_tools_1=get_b_tools_1,
connect_to_daemon=True,
db_version=1,
):
yield _
@pytest_asyncio.fixture(scope="function")
async def get_daemon(bt):
async for _ in setup_daemon(btools=bt):
yield _
@pytest_asyncio.fixture(scope="function")
async def get_temp_keyring():
with TempKeyring() as keychain:
yield keychain
@pytest_asyncio.fixture(scope="function")
async def get_b_tools_1(get_temp_keyring):
return await create_block_tools_async(constants=test_constants_modified, keychain=get_temp_keyring)
@pytest_asyncio.fixture(scope="function")
async def get_b_tools(get_temp_keyring):
local_b_tools = await create_block_tools_async(constants=test_constants_modified, keychain=get_temp_keyring)
new_config = local_b_tools._config
local_b_tools.change_config(new_config)
return local_b_tools
@pytest_asyncio.fixture(scope="function")
async def get_daemon_with_temp_keyring(get_b_tools):
async for daemon in setup_daemon(btools=get_b_tools):
yield get_b_tools, daemon
@pytest_asyncio.fixture(scope="function")
async def wallets_prefarm(two_wallet_nodes, self_hostname, trusted):
"""
Sets up the node with 10 blocks, and returns a payer and payee wallet.
"""
farm_blocks = 10
buffer = 4
full_nodes, wallets = two_wallet_nodes
full_node_api = full_nodes[0]
full_node_server = full_node_api.server
wallet_node_0, wallet_server_0 = wallets[0]
wallet_node_1, wallet_server_1 = wallets[1]
wallet_0 = wallet_node_0.wallet_state_manager.main_wallet
wallet_1 = wallet_node_1.wallet_state_manager.main_wallet
ph0 = await wallet_0.get_new_puzzlehash()
ph1 = await wallet_1.get_new_puzzlehash()
if trusted:
wallet_node_0.config["trusted_peers"] = {full_node_server.node_id.hex(): full_node_server.node_id.hex()}
wallet_node_1.config["trusted_peers"] = {full_node_server.node_id.hex(): full_node_server.node_id.hex()}
else:
wallet_node_0.config["trusted_peers"] = {}
wallet_node_1.config["trusted_peers"] = {}
await wallet_server_0.start_client(PeerInfo(self_hostname, uint16(full_node_server._port)), None)
await wallet_server_1.start_client(PeerInfo(self_hostname, uint16(full_node_server._port)), None)
for i in range(0, farm_blocks):
await full_node_api.farm_new_transaction_block(FarmNewBlockProtocol(ph0))
for i in range(0, farm_blocks):
await full_node_api.farm_new_transaction_block(FarmNewBlockProtocol(ph1))
for i in range(0, buffer):
await full_node_api.farm_new_transaction_block(FarmNewBlockProtocol(bytes32(token_bytes(nbytes=32))))
await time_out_assert(10, wallet_is_synced, True, wallet_node_0, full_node_api)
await time_out_assert(10, wallet_is_synced, True, wallet_node_1, full_node_api)
return wallet_node_0, wallet_node_1, full_node_api
@pytest_asyncio.fixture(scope="function")
async def introducer(bt):
introducer_port = find_available_listen_port("introducer")
async for _ in setup_introducer(bt, introducer_port):
yield _
@pytest_asyncio.fixture(scope="function")
async def timelord(bt):
timelord_port = find_available_listen_port("timelord")
node_port = find_available_listen_port("node")
rpc_port = find_available_listen_port("rpc")
vdf_port = find_available_listen_port("vdf")
async for _ in setup_timelord(timelord_port, node_port, rpc_port, vdf_port, False, test_constants, bt):
yield _
@pytest_asyncio.fixture(scope="module")
async def two_nodes_mempool(bt, wallet_a):
async_gen = setup_simulators_and_wallets(2, 1, {})
nodes, _ = await async_gen.__anext__()
full_node_1 = nodes[0]
full_node_2 = nodes[1]
server_1 = full_node_1.full_node.server
server_2 = full_node_2.full_node.server
reward_ph = wallet_a.get_new_puzzlehash()
blocks = bt.get_consecutive_blocks(
3,
guarantee_transaction_block=True,
farmer_reward_puzzle_hash=reward_ph,
pool_reward_puzzle_hash=reward_ph,
)
for block in blocks:
await full_node_1.full_node.respond_block(full_node_protocol.RespondBlock(block))
await time_out_assert(60, node_height_at_least, True, full_node_1, blocks[-1].height)
yield full_node_1, full_node_2, server_1, server_2
async for _ in async_gen:
yield _
@pytest_asyncio.fixture(scope="function")
async def setup_sim():
sim = await SpendSim.create()
sim_client = SimClient(sim)
await sim.farm_block()
return sim, sim_client
+1 -47
View File
@@ -3,62 +3,16 @@ import asyncio
import json
import logging
import pytest
import pytest_asyncio
from chia.daemon.server import WebSocketServer
from chia.server.outbound_message import NodeType
from chia.types.peer_info import PeerInfo
from tests.block_tools import BlockTools, create_block_tools_async
from tests.block_tools import BlockTools
from chia.util.ints import uint16
from chia.util.keyring_wrapper import DEFAULT_PASSPHRASE_IF_NO_MASTER_PASSPHRASE
from chia.util.ws_message import create_payload
from tests.core.node_height import node_height_at_least
from tests.setup_nodes import setup_daemon, setup_full_system
from tests.simulation.test_simulation import test_constants_modified
from tests.time_out_assert import time_out_assert_custom_interval, time_out_assert
from tests.util.keyring import TempKeyring
@pytest_asyncio.fixture(scope="function")
async def get_temp_keyring():
with TempKeyring() as keychain:
yield keychain
@pytest_asyncio.fixture(scope="function")
async def get_b_tools_1(get_temp_keyring):
return await create_block_tools_async(constants=test_constants_modified, keychain=get_temp_keyring)
@pytest_asyncio.fixture(scope="function")
async def get_b_tools(get_temp_keyring):
local_b_tools = await create_block_tools_async(constants=test_constants_modified, keychain=get_temp_keyring)
new_config = local_b_tools._config
local_b_tools.change_config(new_config)
return local_b_tools
@pytest_asyncio.fixture(scope="function")
async def get_daemon_with_temp_keyring(get_b_tools):
async for daemon in setup_daemon(btools=get_b_tools):
yield get_b_tools, daemon
# TODO: Ideally, the db_version should be the (parameterized) db_version
# fixture, to test all versions of the database schema. This doesn't work
# because of a hack in shutting down the full node, which means you cannot run
# more than one simulations per process.
@pytest_asyncio.fixture(scope="function")
async def daemon_simulation(bt, get_b_tools, get_b_tools_1):
async for _ in setup_full_system(
test_constants_modified,
bt,
b_tools=get_b_tools,
b_tools_1=get_b_tools_1,
connect_to_daemon=True,
db_version=1,
):
yield _
class TestDaemon:
@@ -17,7 +17,6 @@ from tests.core.node_height import node_height_exactly, node_height_between
from tests.setup_nodes import test_constants
from tests.time_out_assert import time_out_assert
log = logging.getLogger(__name__)
@@ -1,5 +1,3 @@
# flake8: noqa: F811, F401
import asyncio
import atexit
import logging
from secrets import token_bytes
@@ -8,7 +6,6 @@ from typing import List, Optional
import pytest
import pytest_asyncio
from chia.consensus.block_record import BlockRecord
from chia.consensus.blockchain import ReceiveBlockResult
from chia.consensus.find_fork_point import find_fork_point_in_chain
from chia.consensus.multiprocess_validation import PreValidationResult
@@ -20,12 +17,11 @@ from chia.protocols.timelord_protocol import NewInfusionPointVDF
from chia.types.blockchain_format.sized_bytes import bytes32
from chia.types.unfinished_block import UnfinishedBlock
from chia.util.block_cache import BlockCache
from tests.block_tools import get_signage_point, create_block_tools
from chia.util.hash import std_hash
from chia.util.ints import uint8, uint32, uint64, uint128
from tests.block_tools import get_signage_point, create_block_tools
from tests.blockchain.blockchain_test_utils import (
_validate_and_add_block,
_validate_and_add_block_multi_result,
_validate_and_add_block_no_error,
)
from tests.setup_nodes import test_constants as test_constants_original
@@ -627,7 +623,7 @@ class TestFullNodeStore:
for block in blocks:
await _validate_and_add_block_no_error(blockchain, block)
log.warning(f"Starting loop")
log.warning("Starting loop")
while True:
log.warning("Looping")
blocks = bt.get_consecutive_blocks(1, block_list_input=blocks, skip_slots=1)
+6 -59
View File
@@ -5,11 +5,10 @@ import random
import time
from secrets import token_bytes
from typing import Dict, Optional, List
from blspy import G2Element
from clvm.casts import int_to_bytes
import pytest
import pytest_asyncio
from blspy import G2Element
from clvm.casts import int_to_bytes
from chia.consensus.pot_iterations import is_overflow_block
from chia.full_node.bundle_tools import detect_potential_template_generator
@@ -33,26 +32,24 @@ from chia.types.mempool_inclusion_status import MempoolInclusionStatus
from chia.types.peer_info import PeerInfo, TimestampedPeerInfo
from chia.types.spend_bundle import SpendBundle
from chia.types.unfinished_block import UnfinishedBlock
from tests.block_tools import get_signage_point
from chia.util.errors import Err
from chia.util.hash import std_hash
from chia.util.ints import uint8, uint16, uint32, uint64
from chia.util.recursive_replace import recursive_replace
from chia.util.vdf_prover import get_vdf_info_and_proof
from chia.wallet.transaction_record import TransactionRecord
from tests.block_tools import get_signage_point
from tests.blockchain.blockchain_test_utils import (
_validate_and_add_block,
_validate_and_add_block_no_error,
)
from tests.pools.test_pool_rpc import wallet_is_synced
from tests.wallet_tools import WalletTool
from chia.wallet.transaction_record import TransactionRecord
from tests.connection_utils import add_dummy_connection, connect_and_get_peer
from tests.core.full_node.stores.test_coin_store import get_future_reward_coins
from tests.core.full_node.test_mempool_performance import wallet_height_at_least
from tests.core.make_block_generator import make_spend_bundle
from tests.core.node_height import node_height_at_least
from tests.setup_nodes import setup_simulators_and_wallets, test_constants
from tests.pools.test_pool_rpc import wallet_is_synced
from tests.setup_nodes import test_constants
from tests.time_out_assert import time_out_assert, time_out_assert_custom_interval, time_out_messages
log = logging.getLogger(__name__)
@@ -98,56 +95,6 @@ async def get_block_path(full_node: FullNodeAPI):
return blocks_list
@pytest_asyncio.fixture(scope="module")
async def wallet_nodes(bt):
async_gen = setup_simulators_and_wallets(2, 1, {"MEMPOOL_BLOCK_BUFFER": 2, "MAX_BLOCK_COST_CLVM": 400000000})
nodes, wallets = await async_gen.__anext__()
full_node_1 = nodes[0]
full_node_2 = nodes[1]
server_1 = full_node_1.full_node.server
server_2 = full_node_2.full_node.server
wallet_a = bt.get_pool_wallet_tool()
wallet_receiver = WalletTool(full_node_1.full_node.constants)
yield full_node_1, full_node_2, server_1, server_2, wallet_a, wallet_receiver
async for _ in async_gen:
yield _
@pytest_asyncio.fixture(scope="function")
async def setup_four_nodes(db_version):
async for _ in setup_simulators_and_wallets(5, 0, {}, db_version=db_version):
yield _
@pytest_asyncio.fixture(scope="function")
async def setup_two_nodes_fixture(db_version):
async for _ in setup_simulators_and_wallets(2, 0, {}, db_version=db_version):
yield _
@pytest_asyncio.fixture(scope="function")
async def setup_two_nodes_and_wallet():
async for _ in setup_simulators_and_wallets(2, 1, {}, db_version=2):
yield _
@pytest_asyncio.fixture(scope="function")
async def wallet_nodes_mainnet(bt, db_version):
async_gen = setup_simulators_and_wallets(2, 1, {"NETWORK_TYPE": 0}, db_version=db_version)
nodes, wallets = await async_gen.__anext__()
full_node_1 = nodes[0]
full_node_2 = nodes[1]
server_1 = full_node_1.full_node.server
server_2 = full_node_2.full_node.server
wallet_a = bt.get_pool_wallet_tool()
wallet_receiver = WalletTool(full_node_1.full_node.constants)
yield full_node_1, full_node_2, server_1, server_2, wallet_a, wallet_receiver
async for _ in async_gen:
yield _
class TestFullNodeBlockCompression:
@pytest.mark.asyncio
@pytest.mark.parametrize("tx_size", [10000, 3000000000000])
@@ -1,11 +1,9 @@
# flake8: noqa: F811, F401
import asyncio
import logging
import time
import pytest
import pytest_asyncio
import logging
from chia.protocols import full_node_protocol
from chia.types.peer_info import PeerInfo
@@ -13,7 +11,6 @@ from chia.util.ints import uint16
from chia.wallet.transaction_record import TransactionRecord
from chia.wallet.wallet_node import WalletNode
from tests.connection_utils import connect_and_get_peer
from tests.setup_nodes import setup_simulators_and_wallets
from tests.time_out_assert import time_out_assert
@@ -35,13 +32,6 @@ async def wallet_balance_at_least(wallet_node: WalletNode, balance):
log = logging.getLogger(__name__)
@pytest_asyncio.fixture(scope="module")
async def wallet_nodes_mempool_perf(bt):
key_seed = bt.farmer_master_sk_entropy
async for _ in setup_simulators_and_wallets(2, 1, {}, key_seed=key_seed):
yield _
class TestMempoolPerformance:
@pytest.mark.asyncio
@pytest.mark.benchmark
+2 -21
View File
@@ -1,15 +1,13 @@
# flake8: noqa: F811, F401
import asyncio
import cProfile
import dataclasses
import logging
import random
import time
from typing import Dict
from clvm.casts import int_to_bytes
import pytest
import pytest_asyncio
import cProfile
from clvm.casts import int_to_bytes
from chia.consensus.block_record import BlockRecord
from chia.full_node.full_node_api import FullNodeAPI
@@ -18,12 +16,9 @@ from chia.types.condition_opcodes import ConditionOpcode
from chia.types.condition_with_args import ConditionWithArgs
from chia.types.unfinished_block import UnfinishedBlock
from chia.util.ints import uint64
from tests.wallet_tools import WalletTool
from tests.connection_utils import add_dummy_connection
from tests.core.full_node.stores.test_coin_store import get_future_reward_coins
from tests.core.node_height import node_height_at_least
from tests.setup_nodes import setup_simulators_and_wallets
from tests.time_out_assert import time_out_assert
log = logging.getLogger(__name__)
@@ -39,20 +34,6 @@ async def get_block_path(full_node: FullNodeAPI):
return blocks_list
@pytest_asyncio.fixture(scope="module")
async def wallet_nodes_perf(bt):
async_gen = setup_simulators_and_wallets(1, 1, {"MEMPOOL_BLOCK_BUFFER": 1, "MAX_BLOCK_COST_CLVM": 11000000000})
nodes, wallets = await async_gen.__anext__()
full_node_1 = nodes[0]
server_1 = full_node_1.full_node.server
wallet_a = bt.get_pool_wallet_tool()
wallet_receiver = WalletTool(full_node_1.full_node.constants)
yield full_node_1, server_1, wallet_a, wallet_receiver
async for _ in async_gen:
yield _
class TestPerformance:
@pytest.mark.asyncio
@pytest.mark.benchmark
-20
View File
@@ -3,7 +3,6 @@ from secrets import token_bytes
from typing import Optional
import pytest
import pytest_asyncio
from chia.consensus.block_record import BlockRecord
from chia.consensus.block_rewards import calculate_base_farmer_reward, calculate_pool_reward
@@ -12,28 +11,9 @@ from chia.protocols import full_node_protocol
from chia.simulator.simulator_protocol import FarmNewBlockProtocol
from chia.types.peer_info import PeerInfo
from chia.util.ints import uint16, uint32
from tests.setup_nodes import setup_simulators_and_wallets
from tests.time_out_assert import time_out_assert
@pytest_asyncio.fixture(scope="function")
async def wallet_node_sim_and_wallet():
async for _ in setup_simulators_and_wallets(1, 1, {}):
yield _
@pytest_asyncio.fixture(scope="function")
async def two_wallet_nodes():
async for _ in setup_simulators_and_wallets(1, 2, {}):
yield _
@pytest_asyncio.fixture(scope="function")
async def three_nodes_two_wallets():
async for _ in setup_simulators_and_wallets(3, 2, {}):
yield _
class TestTransactions:
@pytest.mark.asyncio
async def test_wallet_coinbase(self, wallet_node_sim_and_wallet, self_hostname):
+1 -9
View File
@@ -3,7 +3,6 @@ import asyncio
import logging
import pytest
import pytest_asyncio
from aiohttp import ClientSession, ClientTimeout, ServerDisconnectedError, WSCloseCode, WSMessage, WSMsgType
from chia.full_node.full_node_api import FullNodeAPI
@@ -15,9 +14,8 @@ from chia.server.rate_limits import RateLimiter
from chia.server.server import ssl_context_for_client
from chia.server.ws_connection import WSChiaConnection
from chia.types.peer_info import PeerInfo
from chia.util.ints import uint16, uint64
from chia.util.errors import Err
from tests.setup_nodes import setup_simulators_and_wallets
from chia.util.ints import uint16, uint64
from tests.time_out_assert import time_out_assert
log = logging.getLogger(__name__)
@@ -33,12 +31,6 @@ async def get_block_path(full_node: FullNodeAPI):
return blocks_list
@pytest_asyncio.fixture(scope="function")
async def setup_two_nodes_fixture(db_version):
async for _ in setup_simulators_and_wallets(2, 0, {}, db_version=db_version):
yield _
class FakeRateLimiter:
def process_msg_and_check(self, msg):
return True
+2 -31
View File
@@ -10,15 +10,9 @@ from chia.server.server import ChiaServer, ssl_context_for_client
from chia.server.ws_connection import WSChiaConnection
from chia.ssl.create_ssl import generate_ca_signed_cert
from chia.types.peer_info import PeerInfo
from tests.block_tools import test_constants
from chia.util.ints import uint16
from tests.setup_nodes import (
setup_harvester_farmer,
setup_introducer,
setup_simulators_and_wallets,
setup_timelord,
)
from tests.util.socket import find_available_listen_port
from tests.block_tools import test_constants
from tests.setup_nodes import setup_harvester_farmer
async def establish_connection(server: ChiaServer, self_hostname: str, ssl_context) -> bool:
@@ -57,29 +51,6 @@ async def harvester_farmer(bt):
yield _
@pytest_asyncio.fixture(scope="function")
async def wallet_node_sim_and_wallet():
async for _ in setup_simulators_and_wallets(1, 1, {}):
yield _
@pytest_asyncio.fixture(scope="function")
async def introducer(bt):
introducer_port = find_available_listen_port("introducer")
async for _ in setup_introducer(bt, introducer_port):
yield _
@pytest_asyncio.fixture(scope="function")
async def timelord(bt):
timelord_port = find_available_listen_port("timelord")
node_port = find_available_listen_port("node")
rpc_port = find_available_listen_port("rpc")
vdf_port = find_available_listen_port("vdf")
async for _ in setup_timelord(timelord_port, node_port, rpc_port, vdf_port, False, test_constants, bt):
yield _
class TestSSL:
@pytest.mark.asyncio
async def test_public_connections(self, wallet_node_sim_and_wallet, self_hostname):
+1 -9
View File
@@ -1,15 +1,7 @@
import pytest
import pytest_asyncio
from tests.setup_nodes import setup_daemon
from chia.daemon.client import connect_to_daemon
from chia import __version__
@pytest_asyncio.fixture(scope="function")
async def get_daemon(bt):
async for _ in setup_daemon(btools=bt):
yield _
from chia.daemon.client import connect_to_daemon
class TestDaemonRpc:
-9
View File
@@ -1,17 +1,8 @@
from typing import List
import pytest
import pytest_asyncio
from chiabip158 import PyBIP158
from tests.setup_nodes import setup_simulators_and_wallets
@pytest_asyncio.fixture(scope="function")
async def wallet_and_node():
async for _ in setup_simulators_and_wallets(1, 1, {}):
yield _
class TestFilter:
@pytest.mark.asyncio
+4 -12
View File
@@ -1,9 +1,7 @@
# flake8: noqa: F811, F401
import logging
from typing import List
import pytest
import pytest_asyncio
from blspy import AugSchemeMPL
from chia.consensus.pot_iterations import is_overflow_block
@@ -16,22 +14,16 @@ from chia.simulator.simulator_protocol import FarmNewBlockProtocol, ReorgProtoco
from chia.types.full_block import FullBlock
from chia.types.spend_bundle import SpendBundle
from chia.types.unfinished_block import UnfinishedBlock
from tests.block_tools import get_signage_point
from chia.util.hash import std_hash
from chia.util.ints import uint16, uint8
from chia.util.ints import uint8
from tests.block_tools import get_signage_point
from tests.blockchain.blockchain_test_utils import _validate_and_add_block
from tests.wallet_tools import WalletTool
from tests.connection_utils import connect_and_get_peer
from tests.setup_nodes import setup_simulators_and_wallets, test_constants
from tests.setup_nodes import test_constants
from tests.time_out_assert import time_out_assert
from tests.util.rpc import validate_get_routes
from tests.util.socket import find_available_listen_port
@pytest_asyncio.fixture(scope="function")
async def two_nodes_sim_and_wallets():
async for _ in setup_simulators_and_wallets(2, 0, {}):
yield _
from tests.wallet_tools import WalletTool
class TestRpc:
-6
View File
@@ -91,12 +91,6 @@ async def wallet_is_synced(wallet_node: WalletNode, full_node_api):
PREFARMED_BLOCKS = 4
@pytest_asyncio.fixture(scope="function")
async def two_wallet_nodes():
async for _ in setup_simulators_and_wallets(1, 2, {}):
yield _
@pytest_asyncio.fixture(scope="function")
async def one_wallet_node_and_rpc(bt, self_hostname):
rmtree(get_pool_plot_dir(), ignore_errors=True)
+6 -16
View File
@@ -1,49 +1,39 @@
import pytest
import pytest_asyncio
from typing import List, Tuple, Optional, Dict
import pytest
from blspy import PrivateKey, AugSchemeMPL, G2Element
from clvm.casts import int_to_bytes
from chia.clvm.spend_sim import SpendSim, SimClient
from chia.types.blockchain_format.program import Program
from chia.types.blockchain_format.coin import Coin
from chia.types.blockchain_format.program import Program
from chia.types.blockchain_format.sized_bytes import bytes32
from chia.types.spend_bundle import SpendBundle
from chia.types.coin_spend import CoinSpend
from chia.types.mempool_inclusion_status import MempoolInclusionStatus
from chia.types.spend_bundle import SpendBundle
from chia.util.errors import Err
from chia.util.ints import uint64
from chia.wallet.lineage_proof import LineageProof
from chia.wallet.cat_wallet.cat_utils import (
CAT_MOD,
SpendableCAT,
construct_cat_puzzle,
unsigned_spend_bundle_for_spendable_cats,
)
from chia.wallet.lineage_proof import LineageProof
from chia.wallet.puzzles.tails import (
GenesisById,
GenesisByPuzhash,
EverythingWithSig,
DelegatedLimitations,
)
from tests.clvm.test_puzzles import secret_exponent_for_index
from tests.clvm.benchmark_costs import cost_of_spend_bundle
from tests.clvm.test_puzzles import secret_exponent_for_index
acs = Program.to(1)
acs_ph = acs.get_tree_hash()
NO_LINEAGE_PROOF = LineageProof()
@pytest_asyncio.fixture(scope="function")
async def setup_sim():
sim = await SpendSim.create()
sim_client = SimClient(sim)
await sim.farm_block()
return sim, sim_client
async def do_spend(
sim: SpendSim,
sim_client: SimClient,
+2 -22
View File
@@ -2,7 +2,6 @@ import asyncio
from typing import List
import pytest
import pytest_asyncio
from chia.consensus.block_rewards import calculate_base_farmer_reward, calculate_pool_reward
from chia.full_node.mempool_manager import MempoolManager
@@ -11,15 +10,14 @@ from chia.types.blockchain_format.coin import Coin
from chia.types.blockchain_format.sized_bytes import bytes32
from chia.types.peer_info import PeerInfo
from chia.util.ints import uint16, uint32, uint64
from chia.wallet.cat_wallet.cat_utils import construct_cat_puzzle
from chia.wallet.cat_wallet.cat_wallet import CATWallet
from chia.wallet.cat_wallet.cat_constants import DEFAULT_CATS
from chia.wallet.cat_wallet.cat_info import LegacyCATInfo
from chia.wallet.cat_wallet.cat_utils import construct_cat_puzzle
from chia.wallet.cat_wallet.cat_wallet import CATWallet
from chia.wallet.puzzles.cat_loader import CAT_MOD
from chia.wallet.transaction_record import TransactionRecord
from chia.wallet.wallet_info import WalletInfo
from tests.pools.test_pool_rpc import wallet_is_synced
from tests.setup_nodes import setup_simulators_and_wallets
from tests.time_out_assert import time_out_assert
@@ -30,24 +28,6 @@ async def tx_in_pool(mempool: MempoolManager, tx_id: bytes32):
return True
@pytest_asyncio.fixture(scope="function")
async def wallet_node_sim_and_wallet():
async for _ in setup_simulators_and_wallets(1, 1, {}):
yield _
@pytest_asyncio.fixture(scope="function")
async def two_wallet_nodes():
async for _ in setup_simulators_and_wallets(1, 2, {}):
yield _
@pytest_asyncio.fixture(scope="function")
async def three_wallet_nodes():
async for _ in setup_simulators_and_wallets(1, 3, {}):
yield _
class TestCATWallet:
@pytest.mark.parametrize(
"trusted",
@@ -1,17 +1,15 @@
import pytest
import pytest_asyncio
from typing import Dict, Optional, List
import pytest
from blspy import G2Element
from chia.clvm.spend_sim import SpendSim, SimClient
from chia.types.blockchain_format.coin import Coin
from chia.types.blockchain_format.sized_bytes import bytes32
from chia.types.blockchain_format.program import Program
from chia.types.announcement import Announcement
from chia.types.spend_bundle import SpendBundle
from chia.types.blockchain_format.coin import Coin
from chia.types.blockchain_format.program import Program
from chia.types.blockchain_format.sized_bytes import bytes32
from chia.types.coin_spend import CoinSpend
from chia.types.mempool_inclusion_status import MempoolInclusionStatus
from chia.types.spend_bundle import SpendBundle
from chia.util.ints import uint64
from chia.wallet.cat_wallet.cat_utils import (
CAT_MOD,
@@ -21,7 +19,6 @@ from chia.wallet.cat_wallet.cat_utils import (
)
from chia.wallet.payment import Payment
from chia.wallet.trading.offer import Offer, NotarizedPayment
from tests.clvm.benchmark_costs import cost_of_spend_bundle
acs = Program.to(1)
@@ -41,14 +38,6 @@ def str_to_cat_hash(tail_str: str) -> bytes32:
return construct_cat_puzzle(CAT_MOD, str_to_tail_hash(tail_str), acs).get_tree_hash()
@pytest_asyncio.fixture(scope="function")
async def setup_sim():
sim = await SpendSim.create()
sim_client = SimClient(sim)
await sim.farm_block()
return sim, sim_client
# This method takes a dictionary of strings mapping to amounts and generates the appropriate CAT/XCH coins
async def generate_coins(
sim,
+1 -54
View File
@@ -3,19 +3,15 @@ from secrets import token_bytes
from typing import List
import pytest
import pytest_asyncio
from chia.full_node.mempool_manager import MempoolManager
from chia.simulator.simulator_protocol import FarmNewBlockProtocol
from chia.types.peer_info import PeerInfo
from chia.util.ints import uint16, uint64
from chia.util.ints import uint64
from chia.wallet.cat_wallet.cat_wallet import CATWallet
from chia.wallet.trading.offer import Offer
from chia.wallet.trading.trade_status import TradeStatus
from chia.wallet.transaction_record import TransactionRecord
from chia.wallet.util.transaction_type import TransactionType
from tests.pools.test_pool_rpc import wallet_is_synced
from tests.setup_nodes import setup_simulators_and_wallets
from tests.time_out_assert import time_out_assert
@@ -26,58 +22,9 @@ async def tx_in_pool(mempool: MempoolManager, tx_id):
return True
@pytest_asyncio.fixture(scope="function")
async def two_wallet_nodes():
async for _ in setup_simulators_and_wallets(1, 2, {}):
yield _
buffer_blocks = 4
@pytest_asyncio.fixture(scope="function")
async def wallets_prefarm(two_wallet_nodes, self_hostname, trusted):
"""
Sets up the node with 10 blocks, and returns a payer and payee wallet.
"""
farm_blocks = 10
buffer = 4
full_nodes, wallets = two_wallet_nodes
full_node_api = full_nodes[0]
full_node_server = full_node_api.server
wallet_node_0, wallet_server_0 = wallets[0]
wallet_node_1, wallet_server_1 = wallets[1]
wallet_0 = wallet_node_0.wallet_state_manager.main_wallet
wallet_1 = wallet_node_1.wallet_state_manager.main_wallet
ph0 = await wallet_0.get_new_puzzlehash()
ph1 = await wallet_1.get_new_puzzlehash()
if trusted:
wallet_node_0.config["trusted_peers"] = {full_node_server.node_id.hex(): full_node_server.node_id.hex()}
wallet_node_1.config["trusted_peers"] = {full_node_server.node_id.hex(): full_node_server.node_id.hex()}
else:
wallet_node_0.config["trusted_peers"] = {}
wallet_node_1.config["trusted_peers"] = {}
await wallet_server_0.start_client(PeerInfo(self_hostname, uint16(full_node_server._port)), None)
await wallet_server_1.start_client(PeerInfo(self_hostname, uint16(full_node_server._port)), None)
for i in range(0, farm_blocks):
await full_node_api.farm_new_transaction_block(FarmNewBlockProtocol(ph0))
for i in range(0, farm_blocks):
await full_node_api.farm_new_transaction_block(FarmNewBlockProtocol(ph1))
for i in range(0, buffer):
await full_node_api.farm_new_transaction_block(FarmNewBlockProtocol(token_bytes()))
await time_out_assert(10, wallet_is_synced, True, wallet_node_0, full_node_api)
await time_out_assert(10, wallet_is_synced, True, wallet_node_1, full_node_api)
return wallet_node_0, wallet_node_1, full_node_api
@pytest.mark.parametrize(
"trusted",
[True, False],
+7 -32
View File
@@ -1,43 +1,18 @@
import pytest
import pytest_asyncio
from chia.simulator.simulator_protocol import FarmNewBlockProtocol
from chia.types.peer_info import PeerInfo
from chia.util.ints import uint16, uint32, uint64
from tests.setup_nodes import setup_simulators_and_wallets
from chia.wallet.did_wallet.did_wallet import DIDWallet
from chia.types.blockchain_format.program import Program
from blspy import AugSchemeMPL
from chia.types.spend_bundle import SpendBundle
from chia.consensus.block_rewards import calculate_pool_reward, calculate_base_farmer_reward
from chia.simulator.simulator_protocol import FarmNewBlockProtocol
from chia.types.blockchain_format.program import Program
from chia.types.peer_info import PeerInfo
from chia.types.spend_bundle import SpendBundle
from chia.util.ints import uint16, uint32, uint64
from chia.wallet.did_wallet.did_wallet import DIDWallet
from tests.time_out_assert import time_out_assert, time_out_assert_not_none
pytestmark = pytest.mark.skip("TODO: Fix tests")
@pytest_asyncio.fixture(scope="function")
async def two_wallet_nodes():
async for _ in setup_simulators_and_wallets(1, 2, {}):
yield _
@pytest_asyncio.fixture(scope="function")
async def three_wallet_nodes():
async for _ in setup_simulators_and_wallets(1, 3, {}):
yield _
@pytest_asyncio.fixture(scope="function")
async def two_wallet_nodes_five_freeze():
async for _ in setup_simulators_and_wallets(1, 2, {}):
yield _
@pytest_asyncio.fixture(scope="function")
async def three_sim_two_wallets():
async for _ in setup_simulators_and_wallets(3, 2, {}):
yield _
class TestDIDWallet:
@pytest.mark.asyncio
async def test_creation_from_backup_file(self, self_hostname, three_wallet_nodes):
+3 -11
View File
@@ -1,6 +1,6 @@
import logging
import pytest
import pytest_asyncio
from chia.rpc.rpc_server import start_rpc_server
from chia.rpc.wallet_rpc_api import WalletRpcApi
@@ -8,24 +8,16 @@ from chia.rpc.wallet_rpc_client import WalletRpcClient
from chia.simulator.simulator_protocol import FarmNewBlockProtocol
from chia.types.peer_info import PeerInfo
from chia.util.ints import uint16, uint64
from chia.wallet.util.wallet_types import WalletType
from tests.setup_nodes import setup_simulators_and_wallets
from tests.time_out_assert import time_out_assert
from chia.wallet.did_wallet.did_wallet import DIDWallet
from chia.wallet.util.wallet_types import WalletType
from tests.time_out_assert import time_out_assert
from tests.util.socket import find_available_listen_port
log = logging.getLogger(__name__)
pytestmark = pytest.mark.skip("TODO: Fix tests")
@pytest_asyncio.fixture(scope="function")
async def three_wallet_nodes():
async for _ in setup_simulators_and_wallets(1, 3, {}):
yield _
class TestDIDWallet:
@pytest.mark.asyncio
async def test_create_did(self, bt, three_wallet_nodes, self_hostname):
-8
View File
@@ -1,7 +1,6 @@
import asyncio
import pytest
import pytest_asyncio
from chia.rpc.wallet_rpc_api import WalletRpcApi
from chia.simulator.simulator_protocol import FarmNewBlockProtocol
@@ -13,7 +12,6 @@ from chia.util.bech32m import encode_puzzle_hash
from chia.util.ints import uint16
from chia.wallet.transaction_record import TransactionRecord
from chia.wallet.util.wallet_types import WalletType
from tests.setup_nodes import setup_simulators_and_wallets
from tests.time_out_assert import time_out_assert
from tests.wallet.sync.test_wallet_sync import wallet_height_at_least
@@ -46,12 +44,6 @@ async def check_balance(api, wallet_id):
return balance
@pytest_asyncio.fixture(scope="function")
async def three_wallet_nodes():
async for _ in setup_simulators_and_wallets(1, 3, {}):
yield _
class TestRLWallet:
@pytest.mark.asyncio
@pytest.mark.skip
-8
View File
@@ -1,20 +1,12 @@
import pytest
import pytest_asyncio
from chia.simulator.simulator_protocol import FarmNewBlockProtocol
from chia.types.peer_info import PeerInfo
from chia.util.ints import uint16, uint64
from chia.wallet.rl_wallet.rl_wallet import RLWallet
from tests.setup_nodes import setup_simulators_and_wallets
from tests.time_out_assert import time_out_assert
@pytest_asyncio.fixture(scope="function")
async def two_wallet_nodes():
async for _ in setup_simulators_and_wallets(1, 2, {}):
yield _
class TestCATWallet:
@pytest.mark.asyncio
@pytest.mark.skip
+9 -19
View File
@@ -1,19 +1,13 @@
import asyncio
import logging
from operator import attrgetter
from typing import Dict, Optional
import pytest
from blspy import G2Element
from chia.types.coin_record import CoinRecord
from chia.types.coin_spend import CoinSpend
from chia.types.spend_bundle import SpendBundle
from chia.util.config import lock_and_load_config, save_config
from operator import attrgetter
import logging
import pytest
import pytest_asyncio
from chia.consensus.block_rewards import calculate_base_farmer_reward, calculate_pool_reward
from chia.consensus.coinbase import create_puzzlehash_for_pk
from chia.rpc.full_node_rpc_api import FullNodeRpcApi
from chia.rpc.full_node_rpc_client import FullNodeRpcClient
from chia.rpc.rpc_server import start_rpc_server
@@ -22,33 +16,29 @@ from chia.rpc.wallet_rpc_client import WalletRpcClient
from chia.simulator.simulator_protocol import FarmNewBlockProtocol
from chia.types.announcement import Announcement
from chia.types.blockchain_format.program import Program
from chia.types.coin_record import CoinRecord
from chia.types.coin_spend import CoinSpend
from chia.types.peer_info import PeerInfo
from chia.types.spend_bundle import SpendBundle
from chia.util.bech32m import decode_puzzle_hash, encode_puzzle_hash
from chia.consensus.coinbase import create_puzzlehash_for_pk
from chia.util.config import lock_and_load_config, save_config
from chia.util.hash import std_hash
from chia.wallet.derive_keys import master_sk_to_wallet_sk
from chia.util.ints import uint16, uint32, uint64
from chia.wallet.cat_wallet.cat_constants import DEFAULT_CATS
from chia.wallet.cat_wallet.cat_wallet import CATWallet
from chia.wallet.derive_keys import master_sk_to_wallet_sk
from chia.wallet.trading.trade_status import TradeStatus
from chia.wallet.transaction_record import TransactionRecord
from chia.wallet.transaction_sorting import SortKey
from chia.wallet.util.compute_memos import compute_memos
from chia.wallet.util.wallet_types import WalletType
from tests.pools.test_pool_rpc import wallet_is_synced
from tests.setup_nodes import setup_simulators_and_wallets
from tests.time_out_assert import time_out_assert
from tests.util.socket import find_available_listen_port
log = logging.getLogger(__name__)
@pytest_asyncio.fixture(scope="function")
async def two_wallet_nodes():
async for _ in setup_simulators_and_wallets(1, 2, {}):
yield _
async def assert_wallet_types(client: WalletRpcClient, expected: Dict[WalletType, int]) -> None:
for wallet_type in WalletType:
wallets = await client.get_wallets(wallet_type)
@@ -3,15 +3,14 @@ import asyncio
from typing import List, Optional
import pytest
import pytest_asyncio
from clvm.casts import int_to_bytes
from colorlog import getLogger
from chia.consensus.block_rewards import calculate_pool_reward, calculate_base_farmer_reward
from chia.protocols import wallet_protocol, full_node_protocol
from chia.protocols import wallet_protocol
from chia.protocols.full_node_protocol import RespondTransaction
from chia.protocols.protocol_message_types import ProtocolMessageTypes
from chia.protocols.wallet_protocol import RespondToCoinUpdates, CoinStateUpdate, RespondToPhUpdates, CoinState
from chia.protocols.wallet_protocol import RespondToCoinUpdates, CoinStateUpdate, RespondToPhUpdates
from chia.server.outbound_message import NodeType
from chia.simulator.simulator_protocol import FarmNewBlockProtocol, ReorgProtocol
from chia.types.blockchain_format.coin import Coin
@@ -25,7 +24,6 @@ from chia.wallet.wallet import Wallet
from chia.wallet.wallet_state_manager import WalletStateManager
from tests.connection_utils import add_dummy_connection
from tests.pools.test_pool_rpc import wallet_is_synced
from tests.setup_nodes import setup_simulators_and_wallets
from tests.time_out_assert import time_out_assert
from tests.wallet.cat_wallet.test_cat_wallet import tx_in_pool
from tests.wallet_tools import WalletTool
@@ -41,18 +39,6 @@ def wallet_height_at_least(wallet_node, h):
log = getLogger(__name__)
@pytest_asyncio.fixture(scope="function")
async def wallet_node_simulator():
async for _ in setup_simulators_and_wallets(1, 1, {}):
yield _
@pytest_asyncio.fixture(scope="function")
async def wallet_two_node_simulator():
async for _ in setup_simulators_and_wallets(2, 1, {}):
yield _
async def get_all_messages_in_queue(queue):
all_messages = []
await asyncio.sleep(2)
+1 -20
View File
@@ -2,7 +2,6 @@
import asyncio
import pytest
import pytest_asyncio
from colorlog import getLogger
from chia.consensus.block_rewards import calculate_base_farmer_reward, calculate_pool_reward
@@ -13,7 +12,7 @@ from chia.util.ints import uint16, uint32
from chia.wallet.wallet_state_manager import WalletStateManager
from tests.connection_utils import disconnect_all_and_reconnect
from tests.pools.test_pool_rpc import wallet_is_synced
from tests.setup_nodes import setup_node_and_wallet, setup_simulators_and_wallets, test_constants
from tests.setup_nodes import test_constants
from tests.time_out_assert import time_out_assert
@@ -27,24 +26,6 @@ def wallet_height_at_least(wallet_node, h):
log = getLogger(__name__)
@pytest_asyncio.fixture(scope="function")
async def wallet_node(self_hostname):
async for _ in setup_node_and_wallet(test_constants, self_hostname):
yield _
@pytest_asyncio.fixture(scope="function")
async def wallet_node_simulator():
async for _ in setup_simulators_and_wallets(1, 1, {}):
yield _
@pytest_asyncio.fixture(scope="function")
async def wallet_node_starting_height(self_hostname):
async for _ in setup_node_and_wallet(test_constants, self_hostname, starting_height=100):
yield _
class TestWalletSync:
@pytest.mark.parametrize(
"trusted",
+5 -41
View File
@@ -1,7 +1,8 @@
import asyncio
import pytest
import pytest_asyncio
import time
import pytest
from chia.consensus.block_rewards import calculate_base_farmer_reward, calculate_pool_reward
from chia.protocols.full_node_protocol import RespondBlock
from chia.server.server import ChiaServer
@@ -11,52 +12,15 @@ from chia.types.blockchain_format.sized_bytes import bytes32
from chia.types.peer_info import PeerInfo
from chia.util.ints import uint16, uint32, uint64
from chia.wallet.derive_keys import master_sk_to_wallet_sk
from chia.wallet.util.transaction_type import TransactionType
from chia.wallet.util.compute_memos import compute_memos
from chia.wallet.transaction_record import TransactionRecord
from chia.wallet.util.compute_memos import compute_memos
from chia.wallet.util.transaction_type import TransactionType
from chia.wallet.wallet_node import WalletNode
from chia.wallet.wallet_state_manager import WalletStateManager
from tests.setup_nodes import setup_simulators_and_wallets
from tests.time_out_assert import time_out_assert, time_out_assert_not_none
from tests.wallet.cat_wallet.test_cat_wallet import tx_in_pool
@pytest_asyncio.fixture(scope="function")
async def wallet_node():
async for _ in setup_simulators_and_wallets(1, 1, {}):
yield _
@pytest_asyncio.fixture(scope="function")
async def wallet_node_sim_and_wallet():
async for _ in setup_simulators_and_wallets(1, 1, {}):
yield _
@pytest_asyncio.fixture(scope="function")
async def wallet_node_100_pk():
async for _ in setup_simulators_and_wallets(1, 1, {}, initial_num_public_keys=100):
yield _
@pytest_asyncio.fixture(scope="function")
async def two_wallet_nodes():
async for _ in setup_simulators_and_wallets(1, 2, {}):
yield _
@pytest_asyncio.fixture(scope="function")
async def two_wallet_nodes_five_freeze():
async for _ in setup_simulators_and_wallets(1, 2, {}):
yield _
@pytest_asyncio.fixture(scope="function")
async def three_sim_two_wallets():
async for _ in setup_simulators_and_wallets(3, 2, {}):
yield _
class TestWalletSimulator:
@pytest.mark.parametrize(
"trusted",
+1 -8
View File
@@ -3,7 +3,6 @@ from pathlib import Path
import aiosqlite
import pytest
import pytest_asyncio
from chia.consensus.blockchain import ReceiveBlockResult
from chia.protocols import full_node_protocol
@@ -13,13 +12,7 @@ from chia.util.db_wrapper import DBWrapper
from chia.util.generator_tools import get_block_header
from chia.wallet.key_val_store import KeyValStore
from chia.wallet.wallet_blockchain import WalletBlockchain
from tests.setup_nodes import test_constants, setup_node_and_wallet
@pytest_asyncio.fixture(scope="function")
async def wallet_node(self_hostname):
async for _ in setup_node_and_wallet(test_constants, self_hostname):
yield _
from tests.setup_nodes import test_constants
class TestWalletBlockchain: