[ooni-probe/master] In case of failing requests write control_failure and experiment_failure report keys

commit f8b13b0b9cb1fd453c77a887726318b04ffe148e Author: Arturo Filastò <art@fuffa.org> Date: Fri Feb 8 20:21:49 2013 +0100 In case of failing requests write control_failure and experiment_failure report keys These keys will contain the error strings for errors that have occurred while performing the HTTP request. --- nettests/blocking/http_requests.py | 30 +++++++++++++++++------------- 1 files changed, 17 insertions(+), 13 deletions(-) diff --git a/nettests/blocking/http_requests.py b/nettests/blocking/http_requests.py index 56e5944..b6bab00 100644 --- a/nettests/blocking/http_requests.py +++ b/nettests/blocking/http_requests.py @@ -5,8 +5,10 @@ from twisted.internet import defer from twisted.python import usage + from ooni.utils import log from ooni.templates import httpt +from ooni.nettest import failureToString, handleAllFailures class UsageOptions(usage.Options): optParameters = [ @@ -25,7 +27,7 @@ class HTTPRequestsTest(httpt.HTTPTest): """ name = "HTTP Requests Test" author = "Arturo Filastò" - version = "0.2" + version = "0.2.2" usageOptions = UsageOptions @@ -85,20 +87,23 @@ class HTTPRequestsTest(httpt.HTTPTest): self.report['headers_match'] = True def test_get(self): - def errback(failure): - log.err("There was an error while testing %s" % self.url) - log.exception(failure) - def callback(res): experiment, control = res - experiment_success, experiment_response = experiment - control_success, control_response = control + experiment_succeeded, experiment_result = experiment + control_succeeded, control_result = control + + if control_succeeded and experiment_succeeded: + self.compare_body_lengths(len(experiment_result.body), + len(control_result.body)) + + self.compare_headers(control_result.headers, + experiment_result.headers) - self.compare_body_lengths(len(experiment_response.body), - len(control_response.body)) + if not control_succeeded: + self.report['control_failure'] = failureToString(control_result) - self.compare_headers(control_response.headers, - experiment_response.headers) + if not experiment_succeeded: + self.report['experiment_failure'] = failureToString(experiment_result) l = [] log.msg("Performing GET request to %s" % self.url) @@ -111,9 +116,8 @@ class HTTPRequestsTest(httpt.HTTPTest): l.append(experiment_request) l.append(control_request) - dl = defer.DeferredList(l) + dl = defer.DeferredList(l, consumeErrors=True) dl.addCallback(callback) - dl.addErrback(errback) return dl
participants (1)
-
art@torproject.org