def _write_dummy_report(self, filename):
     from ooni.reporter import YAMLReporter
     from .test_reporter import test_details
     reporter = YAMLReporter(test_details, filename)
     reporter.createReport()
     reporter.writeReportEntry({"spam": "ham"})
     reporter.finish()
Beispiel #2
0
 def test_write_report(self):
     y_reporter = YAMLReporter(test_details, 'dummy-report.yaml')
     y_reporter.createReport()
     with open(y_reporter.report_path) as f:
         self.filename = y_reporter.report_path
         report_entries = yaml.safe_load_all(f)
         # Check for keys in header
         entry = report_entries.next()
         assert all(x in entry for x in ['test_name', 'test_version'])
Beispiel #3
0
    def post_director_start(_):
        for net_test_loader in test_list:
            collector = global_options['collector']
            test_details = net_test_loader.testDetails

            yaml_reporter = YAMLReporter(test_details)
            reporters = [yaml_reporter]

            if collector and collector.startswith('httpo') \
                    and (not (config.tor_state or config.tor.socks_port)):
                raise errors.TorNotRunning
            elif collector:
                log.msg("Reporting using collector: %s" % collector)
                try:
                    oonib_reporter = OONIBReporter(test_details, collector)
                    reporters.append(oonib_reporter)
                except errors.InvalidOONIBCollectorAddress, e:
                    raise e

            log.debug("adding callback for startNetTest")
            d.addCallback(director.startNetTest, net_test_loader, reporters)
Beispiel #4
0
def get_reporters(net_test_loader):
    """
    Determines which reports are able to run and returns an instance of them.

    We always report to flat file via the :class:`ooni.reporters.YAMLReporter`
    and the :class:`ooni.reporters.OONIBReporter`.

    The later will be used only if we determine that Tor is running.

    Returns:
        a list of reporter instances
    """
    test_details = net_test_loader.testDetails
    reporters = []
    yaml_reporter = YAMLReporter(test_details, config.reports_directory)
    reporters.append(yaml_reporter)

    if config.reports.collector and collector_supported(config.reports.collector):
        oonib_reporter = OONIBReporter(test_details, config.reports.collector)
        reporters.append(oonib_reporter)
    return reporters