Skip to content

Commit 09c5e07

Browse files
committed
fix ci tmp folder err
1 parent 0d8d182 commit 09c5e07

File tree

2 files changed

+36
-25
lines changed

2 files changed

+36
-25
lines changed

chia/_tests/harvester/test_harvester_api.py

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from unittest.mock import MagicMock, patch
55

66
import pytest
7-
from chia_rs import FullBlock, ProofOfSpace
7+
from chia_rs import ConsensusConstants, FullBlock, ProofOfSpace
88
from chia_rs.sized_bytes import bytes32
99
from chia_rs.sized_ints import uint64
1010

@@ -14,10 +14,11 @@
1414
from chia.protocols import harvester_protocol
1515
from chia.protocols.harvester_protocol import PoolDifficulty
1616
from chia.server.ws_connection import WSChiaConnection
17-
from chia.simulator.block_tools import BlockTools
1817

1918

20-
def signage_point_from_block(block: FullBlock, bt: BlockTools) -> harvester_protocol.NewSignagePointHarvester:
19+
def signage_point_from_block(
20+
block: FullBlock, constants: ConsensusConstants
21+
) -> harvester_protocol.NewSignagePointHarvester:
2122
"""Create a real NewSignagePointHarvester from a blockchain block."""
2223
# extract real signage point data from the block
2324
sp_index = block.reward_chain_block.signage_point_index
@@ -30,8 +31,8 @@ def signage_point_from_block(block: FullBlock, bt: BlockTools) -> harvester_prot
3031

3132
return harvester_protocol.NewSignagePointHarvester(
3233
challenge_hash=challenge_hash,
33-
difficulty=uint64(bt.constants.DIFFICULTY_STARTING),
34-
sub_slot_iters=uint64(bt.constants.SUB_SLOT_ITERS_STARTING),
34+
difficulty=uint64(constants.DIFFICULTY_STARTING),
35+
sub_slot_iters=uint64(constants.SUB_SLOT_ITERS_STARTING),
3536
signage_point_index=sp_index,
3637
sp_hash=sp_hash,
3738
pool_difficulties=[],
@@ -57,15 +58,18 @@ def create_plot_info() -> PlotInfo:
5758

5859
@pytest.mark.anyio
5960
async def test_new_signage_point_harvester(
60-
harvester_farmer_environment: HarvesterFarmerEnvironment, default_400_blocks: list[FullBlock], tmp_path: Path
61+
harvester_farmer_environment: HarvesterFarmerEnvironment,
62+
default_400_blocks: list[FullBlock],
63+
tmp_path: Path,
64+
testconstants: ConsensusConstants,
6165
) -> None:
6266
"""Test successful signage point processing with real blockchain data."""
63-
_, _, harvester_service, _, bt = harvester_farmer_environment
67+
_, _, harvester_service, _, _ = harvester_farmer_environment
6468
harvester_api = harvester_service._server.api
6569
assert isinstance(harvester_api, HarvesterAPI)
6670
# use real signage point data from actual block
6771
block = default_400_blocks[2] # use a transaction block
68-
new_challenge = signage_point_from_block(block, bt)
72+
new_challenge = signage_point_from_block(block, testconstants)
6973
# harvester doesn't accept incoming connections, so use mock peer like other tests
7074
mock_peer = MagicMock(spec=WSChiaConnection)
7175
# create realistic plot info for testing
@@ -83,10 +87,13 @@ async def test_new_signage_point_harvester(
8387

8488
@pytest.mark.anyio
8589
async def test_new_signage_point_harvester_pool_difficulty(
86-
harvester_farmer_environment: HarvesterFarmerEnvironment, default_400_blocks: list[FullBlock], tmp_path: Path
90+
harvester_farmer_environment: HarvesterFarmerEnvironment,
91+
default_400_blocks: list[FullBlock],
92+
tmp_path: Path,
93+
testconstants: ConsensusConstants,
8794
) -> None:
8895
"""Test pool difficulty overrides with real blockchain signage points."""
89-
_, _, harvester_service, _, bt = harvester_farmer_environment
96+
_, _, harvester_service, _, _ = harvester_farmer_environment
9097
harvester_api = harvester_service._server.api
9198
assert isinstance(harvester_api, HarvesterAPI)
9299

@@ -105,7 +112,7 @@ async def test_new_signage_point_harvester_pool_difficulty(
105112

106113
# create signage point from real block with pool difficulty
107114
block = default_400_blocks[2] # use a transaction block
108-
new_challenge = signage_point_from_block(block, bt)
115+
new_challenge = signage_point_from_block(block, testconstants)
109116
new_challenge = harvester_protocol.NewSignagePointHarvester(
110117
challenge_hash=new_challenge.challenge_hash,
111118
difficulty=new_challenge.difficulty,
@@ -135,16 +142,19 @@ async def test_new_signage_point_harvester_pool_difficulty(
135142

136143
@pytest.mark.anyio
137144
async def test_new_signage_point_harvester_prover_error(
138-
harvester_farmer_environment: HarvesterFarmerEnvironment, default_400_blocks: list[FullBlock], tmp_path: Path
145+
harvester_farmer_environment: HarvesterFarmerEnvironment,
146+
default_400_blocks: list[FullBlock],
147+
tmp_path: Path,
148+
testconstants: ConsensusConstants,
139149
) -> None:
140150
"""Test error handling when prover fails using real blockchain data."""
141-
_, _, harvester_service, _, bt = harvester_farmer_environment
151+
_, _, harvester_service, _, _ = harvester_farmer_environment
142152
harvester_api = harvester_service._server.api
143153
assert isinstance(harvester_api, HarvesterAPI)
144154

145155
# create signage point from real block
146156
block = default_400_blocks[2] # use a transaction block
147-
new_challenge = signage_point_from_block(block, bt)
157+
new_challenge = signage_point_from_block(block, testconstants)
148158

149159
mock_peer = MagicMock(spec=WSChiaConnection)
150160

chia/_tests/solver/test_solver_service.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from unittest.mock import patch
66

77
import pytest
8-
from chia_rs import FullBlock
8+
from chia_rs import ConsensusConstants, FullBlock
99
from chia_rs.sized_bytes import bytes32
1010
from chia_rs.sized_ints import uint8, uint64
1111

@@ -14,16 +14,15 @@
1414
from chia.consensus.get_block_challenge import get_block_challenge
1515
from chia.consensus.pot_iterations import is_overflow_block
1616
from chia.protocols.solver_protocol import SolverInfo
17-
from chia.simulator.block_tools import BlockTools
1817
from chia.simulator.setup_services import setup_solver
1918
from chia.solver.solver_rpc_client import SolverRpcClient
2019
from chia.types.blockchain_format.proof_of_space import verify_and_get_quality_string
2120

2221

2322
@pytest.mark.anyio
24-
async def test_solver_api_methods(bt: BlockTools, tmp_path: Path) -> None:
23+
async def test_solver_api_methods(test_constants: ConsensusConstants, tmp_path: Path) -> None:
2524
"""Test solver api protocol methods with real requests."""
26-
async with setup_solver(tmp_path, bt.constants) as solver_service:
25+
async with setup_solver(tmp_path, test_constants) as solver_service:
2726
solver = solver_service._node
2827
solver_api = solver_service._api
2928

@@ -64,7 +63,7 @@ async def test_non_overflow_genesis(empty_blockchain: Blockchain, default_400_bl
6463

6564
@pytest.mark.anyio
6665
async def test_solver_with_real_blocks_and_signage_points(
67-
bt: BlockTools,
66+
test_constants: ConsensusConstants,
6867
default_400_blocks: list[FullBlock],
6968
empty_blockchain: Blockchain,
7069
self_hostname: str,
@@ -75,8 +74,8 @@ async def test_solver_with_real_blocks_and_signage_points(
7574
for block in blocks:
7675
await _validate_and_add_block(empty_blockchain, block)
7776
block = blocks[-1] # always use the last block
78-
overflow = is_overflow_block(bt.constants, block.reward_chain_block.signage_point_index)
79-
challenge = get_block_challenge(bt.constants, block, blockchain, False, overflow, False)
77+
overflow = is_overflow_block(test_constants, block.reward_chain_block.signage_point_index)
78+
challenge = get_block_challenge(test_constants, block, blockchain, False, overflow, False)
8079
assert block.reward_chain_block.pos_ss_cc_challenge_hash == challenge
8180
if block.reward_chain_block.challenge_chain_sp_vdf is None:
8281
challenge_chain_sp: bytes32 = challenge
@@ -87,7 +86,7 @@ async def test_solver_with_real_blocks_and_signage_points(
8786
# calculate real quality string from proof of space data
8887
quality_string: Optional[bytes32] = verify_and_get_quality_string(
8988
block.reward_chain_block.proof_of_space,
90-
bt.constants,
89+
test_constants,
9190
challenge,
9291
challenge_chain_sp,
9392
height=block.reward_chain_block.height,
@@ -100,7 +99,7 @@ async def test_solver_with_real_blocks_and_signage_points(
10099
plot_size = pos.size()
101100
k_size = plot_size.size_v1 if plot_size.size_v1 is not None else plot_size.size_v2
102101
assert k_size is not None
103-
async with setup_solver(tmp_path, bt.constants) as solver_service:
102+
async with setup_solver(tmp_path, test_constants) as solver_service:
104103
assert solver_service.rpc_server is not None
105104
solver_rpc_client = await SolverRpcClient.create(
106105
self_hostname, solver_service.rpc_server.listen_port, solver_service.root_path, solver_service.config
@@ -113,9 +112,11 @@ async def test_solver_with_real_blocks_and_signage_points(
113112

114113

115114
@pytest.mark.anyio
116-
async def test_solver_error_handling_and_edge_cases(bt: BlockTools, self_hostname: str, tmp_path: Path) -> None:
115+
async def test_solver_error_handling_and_edge_cases(
116+
test_constants: ConsensusConstants, self_hostname: str, tmp_path: Path
117+
) -> None:
117118
"""Test solver error handling with invalid requests and edge cases."""
118-
async with setup_solver(tmp_path, bt.constants) as solver_service:
119+
async with setup_solver(tmp_path, test_constants) as solver_service:
119120
assert solver_service.rpc_server is not None
120121
solver_rpc_client = await SolverRpcClient.create(
121122
self_hostname, solver_service.rpc_server.listen_port, solver_service.root_path, solver_service.config

0 commit comments

Comments
 (0)