Ich habe einige Code, der eine HTTP-Anfrage aufruft, und ich möchte Unit-Test einen negativen Fall, wo es eine spezifische Ausnahme für eine 404-Antwort auslösen sollte. Jedoch versuche ich herauszufinden, wie man den Parameter verhöhnen kann, so dass er HTTPError
als Nebeneffekt in der aufrufenden Funktion auslösen kann, scheint das Scheinobjekt eine aufrufbare Funktion zu erzeugen, die nicht der Parameter ist, den es akzeptiert, sondern nur ein Skalarwert.Python spottet einen Parameter
def scrape(variant_url):
try:
with urlopen(variant_url) as response:
doc = response.read()
sizes = scrape_sizes(doc)
price = scrape_price(doc)
return VariantInfo([], sizes, [], price)
except HTTPError as e:
if e.code == 404:
raise LookupError('Variant not found!')
raise e
def test_scrape_negative(self):
with self.assertRaises(LookupError):
scrape('foo')
Ordentlich! Danke, das hat funktioniert –