diff --git a/chia/util/full_block_utils.py b/chia/util/full_block_utils.py index 85d2cbf3c246..bc41e03f8f2a 100644 --- a/chia/util/full_block_utils.py +++ b/chia/util/full_block_utils.py @@ -1,8 +1,9 @@ -from typing import Optional, Callable +from typing import Callable, Optional -from chia.types.blockchain_format.program import SerializedProgram -from clvm_rs import serialized_length from blspy import G1Element, G2Element +from clvm_rs import serialized_length + +from chia.types.blockchain_format.program import SerializedProgram def skip_list(buf: memoryview, skip_item: Callable[[memoryview], memoryview]) -> memoryview: diff --git a/chia/util/struct_stream.py b/chia/util/struct_stream.py index e1c6ae42cefe..a674910fbb29 100644 --- a/chia/util/struct_stream.py +++ b/chia/util/struct_stream.py @@ -1,8 +1,8 @@ import io import struct from typing import Any, BinaryIO, SupportsInt, Type, TypeVar, Union -from typing_extensions import SupportsIndex, Protocol +from typing_extensions import Protocol, SupportsIndex _T_StructStream = TypeVar("_T_StructStream", bound="StructStream") diff --git a/tests/block_tools.py b/tests/block_tools.py index 7b9f95ae6a9c..8cc5e145e1ba 100644 --- a/tests/block_tools.py +++ b/tests/block_tools.py @@ -5,7 +5,6 @@ import random import shutil import ssl -import sys import tempfile import time from argparse import Namespace @@ -323,7 +322,7 @@ async def new_plot( except KeyboardInterrupt: shutil.rmtree(self.temp_dir, ignore_errors=True) - sys.exit(1) + raise async def refresh_plots(self): self.plot_manager.refresh_parameter.batch_size = ( diff --git a/tests/conftest.py b/tests/conftest.py index dcd91b3e8008..bd5451b05457 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -2,7 +2,11 @@ import pytest_asyncio import tempfile from pathlib import Path +from typing import Union, Any +from _pytest.runner import CallInfo +from _pytest.runner import CollectReport +from _pytest.runner import TestReport # TODO: tests.setup_nodes (which is also imported by tests.util.blockchain) creates a # global BlockTools at tests.setup_nodes.bt. This results in an attempt to create @@ -15,6 +19,16 @@ # fixtures avoids the issue. +@pytest.hookimpl +def pytest_exception_interact( + node: Union[pytest.Item, pytest.Collector], + call: CallInfo[Any], + report: Union[CollectReport, TestReport], +) -> None: + if call.excinfo is not None and isinstance(call.excinfo.value, KeyboardInterrupt): + pytest.exit("Cancelled by KeyboardInterrupt") + + @pytest_asyncio.fixture(scope="function", params=[1, 2]) async def empty_blockchain(request): """ diff --git a/tests/util/test_full_block_utils.py b/tests/util/test_full_block_utils.py index b51170c3f019..2d6c4e8fd872 100644 --- a/tests/util/test_full_block_utils.py +++ b/tests/util/test_full_block_utils.py @@ -1,14 +1,13 @@ import random + import pytest -from chia.util.full_block_utils import generator_from_block -from chia.types.full_block import FullBlock -from chia.util.ints import uint128, uint64, uint32, uint8 +from benchmarks.utils import rand_bytes, rand_g1, rand_g2, rand_hash, rand_vdf, rand_vdf_proof, rewards +from chia.types.blockchain_format.foliage import Foliage, FoliageBlockData, FoliageTransactionBlock, TransactionsInfo from chia.types.blockchain_format.pool_target import PoolTarget -from chia.types.blockchain_format.foliage import Foliage, FoliageTransactionBlock, TransactionsInfo, FoliageBlockData +from chia.types.blockchain_format.program import SerializedProgram from chia.types.blockchain_format.proof_of_space import ProofOfSpace from chia.types.blockchain_format.reward_chain_block import RewardChainBlock -from chia.types.blockchain_format.program import SerializedProgram from chia.types.blockchain_format.slots import ( ChallengeChainSubSlot, InfusedChallengeChainSubSlot, @@ -16,8 +15,9 @@ SubSlotProofs, ) from chia.types.end_of_slot_bundle import EndOfSubSlotBundle - -from benchmarks.utils import rand_hash, rand_bytes, rewards, rand_g1, rand_g2, rand_vdf, rand_vdf_proof +from chia.types.full_block import FullBlock +from chia.util.full_block_utils import generator_from_block +from chia.util.ints import uint8, uint32, uint64, uint128 test_g2s = [rand_g2() for _ in range(10)] test_g1s = [rand_g1() for _ in range(10)]