async def METHOD_NAME(
    lid_status: ThermocyclerLidStatus,
    expected_raise_cm: ContextManager[Any],
    subject: ThermocyclerMovementFlagger,
    state_store: StateStore,
    hardware_api: HardwareAPI,
    decoy: Decoy,
) -> None:
    """When on a Thermocycler, it should raise if the lid isn't open."""
    decoy.when(
        state_store.modules.get_thermocycler_module_substate(module_id="module-id")
    ).then_return(
        ThermocyclerModuleSubState(
            module_id=ThermocyclerModuleId("module-id"),
            is_lid_open=True,
            target_lid_temperature=None,
            target_block_temperature=None,
        ),
    )
    decoy.when(state_store.config.use_virtual_modules).then_return(False)
    decoy.when(
        state_store.modules.get_serial_number(module_id="module-id")
    ).then_return("module-serial")
    thermocycler = decoy.mock(cls=HardwareThermocycler)
    decoy.when(thermocycler.device_info).then_return({"serial": "module-serial"})
    decoy.when(thermocycler.lid_status).then_return(lid_status)
    decoy.when(hardware_api.attached_modules).then_return([thermocycler])
    with expected_raise_cm:
        await subject.raise_if_labware_in_non_open_thermocycler(
            labware_parent=ModuleLocation(moduleId="module-id"),
        )