def write_header(self): pretty_date = date.pretty_date() header = "# OONI Probe Report for Test %s\n" % self.testname header += "# %s\n\n" % pretty_date self._write_to_report(header) # XXX replace this with something proper address = net.getClientAddress() test_details = {'start_time': str(date.now()), 'asn': address['asn'], 'test_name': self.testname, 'addr': address['ip']} self(test_details)
def startTest(self, args): """ This method is invoked by the worker to start the test with one line of the asset file. @param args: the asset(s) lines that we are working on. """ log.debug("OONITest.startTest") self.start_time = date.now() log.msg("OONITest: Starting test %s" % self.__class__) return self._do_experiment(args)
def write_header(self): pretty_date = date.pretty_date() header = "# OONI Probe Report for Test %s\n" % self.testname header += "# %s\n\n" % pretty_date self._write_to_report(header) # XXX replace this with something proper address = net.getClientAddress() test_details = { "start_time": str(date.now()), "asn": address["asn"], "test_name": self.testname, "addr": address["ip"], } self(test_details)
def finished(self, return_value): """ The Test has finished running, we must now calculate the test runtime and add all time data to the report. """ #self.ooninet.report(result) self.end_time = date.now() result = self.result result['start_time'] = str(self.start_time) result['end_time'] = str(self.end_time) result['run_time'] = str(self.end_time - self.start_time) result['return_value'] = return_value log.msg("FINISHED %s" % result) self.report(result) return result
def startTest(self, args): """ This method is invoked by the worker to start the test with one line of the asset file. @param args: the asset(s) lines that we are working on. """ self.start_time = date.now() if self.shortName: log.msg("Starting test %s" % self.shortName) else: log.msg("Starting test %s" % self.__class__) return self._do_experiment(args)
def disabled_startTest(self, args): """ Local override of :meth:`OONITest.startTest` to bypass calling self.control. :param args: The current line of :class:`Asset`, not used but kept for compatibility reasons. :return: A fired deferred which callbacks :meth:`experiment` and :meth:`OONITest.finished`. """ self.start_time = date.now() self.d = self.experiment(args) self.d.addErrback(log.err) self.d.addCallbacks(self.finished, log.err) return self.d
def writeHeader(self): self.firstrun = False (klass, options) = self.options self._writeln("###########################################") self._writeln("# OONI Probe Report for %s test" % klass.name) self._writeln("# %s" % date.pretty_date()) self._writeln("###########################################") client_geodata = {} log.msg("Running geo IP lookup via check.torproject.org") client_ip = yield geodata.myIP() try: import txtorcon client_location = txtorcon.util.NetLocation(client_ip) except: log.err("txtorcon is not installed. Geolocation lookup is not"\ "supported") client_geodata['ip'] = client_ip client_geodata['asn'] = client_location.asn client_geodata['city'] = client_location.city client_geodata['countrycode'] = client_location.countrycode test_details = {'startTime': repr(date.now()), 'probeASN': client_geodata['asn'], 'probeCC': client_geodata['countrycode'], 'probeIP': client_geodata['ip'], 'probeLocation': {'city': client_geodata['city'], 'countrycode': client_geodata['countrycode']}, 'testName': klass.name, 'testVersion': klass.version, } self.writeYamlLine(test_details) self._writeln('')