commit 26f7afc073cb86276a04d1faeec65dde59dd858f Author: Arturo Filastò arturo@filasto.net Date: Fri Sep 21 12:05:17 2012 +0000
Write some more docstrings and fix some code. --- ooni/protocols/http.py | 4 ++-- ooni/reporter.py | 6 ++++-- ooni/runner.py | 23 +++++++++++++++++++++-- 3 files changed, 27 insertions(+), 6 deletions(-)
diff --git a/ooni/protocols/http.py b/ooni/protocols/http.py index 09bb9b9..569c382 100644 --- a/ooni/protocols/http.py +++ b/ooni/protocols/http.py @@ -56,7 +56,7 @@ class HTTPTest(OONITest):
def _processResponseBody(self, data): self.response['body'] = data - #self.result['response'] = self.response + self.result['response'] = self.response self.processResponseBody(data)
def processResponseBody(self, data): @@ -127,7 +127,7 @@ class HTTPTest(OONITest): if self.randomize_ua: self.randomize_useragent()
- #self.result['request'] = self.request + self.result['request'] = self.request self.result['url'] = url return self.agent.request(self.request['method'], self.request['url'], Headers(self.request['headers']), diff --git a/ooni/reporter.py b/ooni/reporter.py index 4b3ed6f..b145e87 100644 --- a/ooni/reporter.py +++ b/ooni/reporter.py @@ -138,12 +138,14 @@ class OONIReporter(OReporter): # This is here for allowing reporting of legacy tests. # XXX In the future this should be removed. try: - self._tests[idx]['report'] = list(test.legacy_report) + report = list(test.legacy_report) except: # XXX I put a dict() here so that the object is re-instantiated and I # actually end up with the report I want. This could either be a # python bug or a yaml bug. - self._tests[idx]['report'] = dict(test.report) + report = dict(test.report) + + self._tests[idx]['report'] = report
def done(self): diff --git a/ooni/runner.py b/ooni/runner.py index 0bcafb0..ff6b47e 100644 --- a/ooni/runner.py +++ b/ooni/runner.py @@ -85,13 +85,18 @@ def adaptLegacyTest(obj, config): args = {} args[self.key] = self.input result = yield my_test.startTest(args) - print "Finished!" - print result + self.report['result'] = result
return LegacyOONITest
def findTestClassesFromConfig(config): + """ + Takes as input the command line config parameters and returns the test + case classes. + If it detects that a certain test class is using the old OONIProbe format, + then it will adapt it to the new testing system. + """ filename = config['test']
classes = [] @@ -105,12 +110,20 @@ def findTestClassesFromConfig(config): return classes
def makeTestCases(klass, tests, methodPrefix): + """ + Takes a class some tests and returns the test cases. methodPrefix is how + the test case functions should be prefixed with. + """ cases = [] for test in tests: cases.append(klass(methodPrefix+test)) return cases
def loadTestsAndOptions(classes): + """ + Takes a list of classes and returnes their testcases and options. + Legacy tests will be adapted. + """ methodPrefix = 'test' suiteFactory = InputTestSuite options = [] @@ -132,6 +145,12 @@ def loadTestsAndOptions(classes): return testCases, options
class ORunner(object): + """ + This is a specialized runner used by the ooniprobe command line tool. + I am responsible for reading the inputs from the test files and splitting + them in input units. I also create all the report instances required to run + the tests. + """ def __init__(self, cases, options=None, config=None): self.baseSuite = InputTestSuite self.cases = cases