Ejemplo n.º 1
0
    def generate_report(self):
        data = defaultdict(defaultdict)

        generate_general_data(data)
        generate_link_checker_data(data)
        generate_schema_checker_data(data)

        copy_report_asset_files()
        copy_report_vendor_files()

        templates = ['index.html', 'linkchecker.html', 'schemachecker.html']
        templates = map(lambda name: name + '.jinja2', templates)
        for template_file in templates:
            rendered_template = self.render_template(template_file, data)
            self.write_validation_result(rendered_template, template_file)
Ejemplo n.º 2
0
    def test_generate_link_checker_data(self):
        # prepare
        general = {'num_datasets': 1}
        self.link_checker.redis_client.set('general', general)

        dataset_id = 1
        dataset_name = 'example'
        portal = 'portal1'
        url = 'http://example.com/dataset/1'
        status = 404
        date = datetime.datetime(2014, 1, 1)
        date_string = date.strftime("%Y-%m-%d")
        initial_record = {
            'id': dataset_id,
            'name': dataset_name,
            'urls': {
                url: {
                    'status': status,
                    'date': date_string,
                    'strikes': 1
                }
            },
           'metadata_original_portal': portal
        }
        self.link_checker.redis_client.set(dataset_id, initial_record)
        data = {}

        # execute
        generate_link_checker_data(data)

        # verify
        self.assertDictEqual(data['linkchecker'], {'broken': 1, 'working': 0})
        self.assertEqual(data['portals'][portal], 1)
        self.assertListEqual(
            data['entries'][portal],
            [{
                'metadata_original_portal': portal,
                'id': dataset_id,
                'urls': {
                         url: {
                               'status': 'HTTP 404',
                               'date': '2014-01-01',
                               'strikes': 1}
                         },
                'name': 'example'
             }]
        )
Ejemplo n.º 3
0
    def test_generate_link_checker_data_empty_urls_dict(self):
        # prepare
        general = {'num_datasets': 0}
        self.link_checker.redis_client.set('general', general)

        dataset_id = 1
        dataset_name = 'example'
        portal = 'portal1'
        initial_record = {
            'id': dataset_id,
            'name': dataset_name,
            'urls': {},
            'metadata_original_portal': portal
        }
        self.link_checker.redis_client.set(dataset_id, initial_record)
        data = {}

        # execute
        generate_link_checker_data(data)

        # verify
        self.assertDictEqual(data['linkchecker'], {'broken': 0, 'working': 0})
        self.assertDictEqual(data['portals'], {})
        self.assertDictEqual(data['entries'], {})
Ejemplo n.º 4
0
 def generate_report(self):
     data = {}
     generate_link_checker_data(data)
     self.write_report(self.render_template(data))