Example #1
0
 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()
Example #2
0
 def test_write_yaml_report_after_close(self):
     r = YAMLReporter(self.testDetails)
     r.createReport()
     r.finish()
     def f(r):
         r.writeReportEntry("foo")
     r.created.addCallback(f)
     self.assertFailure(r.created, ReportAlreadyClosed)
 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'])
Example #4
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'])
Example #5
0
 def test_open_yaml_report_and_succeed(self):
     r = YAMLReporter(self.testDetails)
     r.createReport()
     # verify that testDetails was written to report properly
     def f(r):
         r._stream.seek(0)
         details, = yaml.safe_load_all(r._stream)
         self.assertEqual(details, self.testDetails)
     r.created.addCallback(f)
     return r.created
Example #6
0
def runTestCases(test_cases, options, cmd_line_options):
    log.debug("Running %s" % test_cases)
    log.debug("Options %s" % options)
    log.debug("cmd_line_options %s" % dict(cmd_line_options))

    test_inputs = options['inputs']

    oonib_reporter = OONIBReporter(cmd_line_options)
    yaml_reporter = YAMLReporter(cmd_line_options)

    if cmd_line_options['collector']:
        log.msg("Using remote collector, please be patient while we create the report.")
        try:
            yield oonib_reporter.createReport(options)
        except OONIBReportError:
            log.err("Error in creating new report")
            log.msg("We will only create reports to a file")
            oonib_reporter = None
    else:
        oonib_reporter = None

    yield yaml_reporter.createReport(options)
    log.msg("Reporting to file %s" % yaml_reporter._stream.name)

    try:
        input_unit_factory = InputUnitFactory(test_inputs)
        input_unit_factory.inputUnitSize = int(cmd_line_options['parallelism'])
    except Exception, e:
        log.exception(e)
Example #7
0
    def test_write_yaml_report_entry(self):
        r = YAMLReporter(self.testDetails)
        r.createReport()

        report_entry = {'foo':'bar', 'bin':'baz'}
        r.writeReportEntry(report_entry)

        # verify that details and entry were written to report
        def f(r):
            r._stream.seek(0)
            report = yaml.safe_load_all(r._stream)
            details, entry  = report
            self.assertEqual(details, self.testDetails)
            self.assertEqual(entry, report_entry)
        r.created.addCallback(f)
        return r.created
Example #8
0
 def test_write_multiple_yaml_report_entry(self):
     r = YAMLReporter(self.testDetails)
     r.createReport()
     def reportEntry():
         for x in xrange(10):
             yield {'foo':'bar', 'bin':'baz', 'item':x}
     for entry in reportEntry():
         r.writeReportEntry(entry)
     # verify that details and multiple entries were written to report
     def f(r):
         r._stream.seek(0)
         report = yaml.safe_load_all(r._stream)
         details = report.next()
         self.assertEqual(details, self.testDetails)
         self.assertEqual([r for r in report], [r for r in reportEntry()])
     r.created.addCallback(f)
     return r.created
Example #9
0
    def test_write_report(self):
        test = MockTest()

        y_reporter = YAMLReporter(test_details)
        y_reporter.createReport()
        y_reporter.testDone(test, 'spam')
        with open(y_reporter.report_path) as f:
            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'])

            entry = report_entries.next()
            # Check for first entry of report
            assert all(x in entry \
                       for x in ['report_content', 'input', \
                                 'test_name', 'test_started', \
                                 'test_runtime'])
Example #10
0
def runTestCases(test_cases, options, cmd_line_options):
    log.debug("Running %s" % test_cases)
    log.debug("Options %s" % options)
    log.debug("cmd_line_options %s" % dict(cmd_line_options))

    test_inputs = options['inputs']

    # Set a default reporter
    if not cmd_line_options['collector'] and not \
        cmd_line_options['no-default-reporter']:
        with open('collector') as f:
            reporter_url = random.choice(f.readlines())
            reporter_url = reporter_url.split('#')[0].strip()
            cmd_line_options['collector'] = reporter_url

    oonib_reporter = OONIBReporter(cmd_line_options)
    yaml_reporter = YAMLReporter(cmd_line_options)

    if cmd_line_options['collector']:
        log.msg("Using remote collector, please be patient while we create the report.")
        try:
            yield oonib_reporter.createReport(options)
        except OONIBReportError:
            log.err("Error in creating new report")
            log.msg("We will only create reports to a file")
            oonib_reporter = None
    else:
        oonib_reporter = None

    yield yaml_reporter.createReport(options)
    log.msg("Reporting to file %s" % yaml_reporter._stream.name)

    try:
        input_unit_factory = InputUnitFactory(test_inputs)
        input_unit_factory.inputUnitSize = int(cmd_line_options['parallelism'])
    except Exception, e:
        log.exception(e)
Example #11
0
 def test_close_yaml_report(self):
     r = YAMLReporter(self.testDetails)
     r.createReport()
     r.finish()
     self.assertTrue(r._stream.closed)