Eu usei a primeira exception que eu lembrava com mais facilidade, que foi ValueError.
def calcular_bonus(self):
valor = self._salario * 0.1
if valor > 1000:
raise ValueError('Valor maior que R$10.000,00')
return valor
O código abaixo passou no Pytest, acredito que Exception é uma super-exceção que inclui muitas outras incluindo ValueError:
def test_quando_calcular_bonus_para_120000_deve_retornar_exception(self):
with pytest.raises(Exception):
entrada = 120000
# Não é precisa a variável esperado, por a exceção ser esperada.
funcionario_teste = Funcionario("Elle", '11/11/2000', entrada)
resultado = funcionario_teste.calcular_bonus()
assert resultado
Todavia, é mais recomendável que eu use Exception em vez de ValueError? Estou usando essa exceção fora do esperado?