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)
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' }] )
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'], {})
def generate_report(self): data = {} generate_link_checker_data(data) self.write_report(self.render_template(data))