Sto provando a scrivere un test unitario che verifica che venga creato uno KeyError
quando una chiave errata viene passata a un dizionario.Test per KeyError
Il codice che genera l'eccezione:
connections = SettingsManager().get_connections()
try:
connection = connections[self.conn_name]
except Exception:
self.log.error("Connection %s does not exist, exiting." % conn_name)
self.log.error(sys.exc_info()[0])
raise
ho guardato e ho trovato KeyError
test utilizzando lambda, ma non ho avuto molta fortuna. Ecco il test che ho finora, ma errori con l'attuale KeyError
.
def test_bad_connection(self):
#Testing to see if a non existant connection will fail gracefully.
records = [1, 2]
given_result = DataConnector("BadConnection").generate_data(self.table, records)
expected_result = "BadConnection"
self.assertRaises(KeyError, given_result[:1])
Grazie - che spiega perfettamente! Per qualche motivo, non sono stato in grado di utilizzare "raises.exception.msg", piuttosto ho usato "raises.exception [0]" e questo mi ha dato il risultato previsto. – OpenDataAlex
@OpenDataAlex: sorry; anche il valore 'exception.args [0]' è esposto come 'exception.message'; Ho appena scritto male. –
Fagioli freschi - ha funzionato come un fascino :) – OpenDataAlex