def METHOD_NAME(mock_account, good_signer, unknown_address, mocker):
    #
    # Unlock
    #
    # Unknown account
    with pytest.raises(Signer.UnknownAccount):
        good_signer.unlock_account(account=unknown_address, password=INSECURE_DEVELOPMENT_PASSWORD)
    mocker.patch.dict(good_signer._KeystoreSigner__signers, {}, clear=True)
    # Missing password
    with pytest.raises(Signer.AuthenticationFailed, match='No password supplied to unlock account.'):
        good_signer.unlock_account(account=mock_account.address, password=None)
    # Wrong password
    mocker.patch.dict(good_signer._KeystoreSigner__signers, {}, clear=True)
    with pytest.raises(Signer.AuthenticationFailed, match="Invalid or incorrect ethereum account password."):
        good_signer.unlock_account(account=mock_account.address, password='imadeupthispassworditisverygood')
    # Correct account and password
    successful_unlock = good_signer.unlock_account(account=mock_account.address, password=INSECURE_DEVELOPMENT_PASSWORD)
    assert successful_unlock
    #
    # Lock
    #
    with pytest.raises(Signer.UnknownAccount):
        good_signer.lock_account(account=unknown_address)
    successful_lock = good_signer.lock_account(account=mock_account.address)
    assert successful_lock