[Python-de] Code testen, der twisted.web.client.getPage() verwendet

Stefan Schwarzer sschwarzer at sschwarzer.net
Mo Jun 30 07:10:15 CEST 2014


Hi Hartmut,

On 2014-06-29 23:29, Hartmut Goebel wrote:
> ich schreibe eben an einer Test-Suite für alten Code, der
> twisted.web.client.getPage() verwendet. Ich dachte erst, dass ich die
> Testdaten liefern kann, indem ich einen "file:"-URL angebe. Aber weit
> gefehlt: twisted.web.client.getPage() kann nur mit http(s)-URLs umgehen.
> 
> Wi kann ich diesen Code testen, ohne einen Mini-Webserver zu erstellen?
> (Den möchte ich schon deshalb nicht, weil dann die Test-Suite ein
> funktionierendes Netzwerk ohne Host-Firewall voraussetzt.)

was mir spontan einfällt, wäre, `twisted.web.client.getPage`
per Monkey-Patching für die Dauer des Tests durch eine für
dich passende Funktion zu ersetzen. Das kannst du mit
`mock.patch` (wenn du das verwenden kannst/willst) oder "zu
Fuß" mit `try`/`finally` machen. Die Funktion muss nur einen
Deferred zurückliefern, der je nach Test von
`twisted.internet.defer.Deferred`,
`twisted.internet.defer.succeed` oder gegebenenfalls
`twisted.internet.defer.fail` kommen könnte.

Viele Grüße
Stefan


Mehr Informationen über die Mailingliste python-de