def test_input_output(self, filename): """test parsing a file while retaining the doctype""" with open(sample_xml(filename), "rb") as xml_file: xml_output_expected = xml_file.read() root, doctype_dict = xmlio.parse(sample_xml(filename), return_doctype_dict=True) self.assertEqual(xmlio.output(root, None, doctype_dict), xml_output_expected)
def test_convert_xlink_href(self, name_map, xml_input_filename, xml_expected_filename): xmlio.register_xmlns() root = xmlio.parse(sample_xml(xml_input_filename)) xlink_count = xmlio.convert_xlink_href(root, name_map) xml_output = xmlio.output(root) xml_output_expected = None with open(sample_xml(xml_expected_filename), "rb") as xml_file: xml_output_expected = xml_file.read() self.assertEqual(xml_output, xml_output_expected)
def setUp(self): kitchen_sink_xml = sample_xml('elife-kitchen-sink.xml') # all of these methods are equivalent: #self.soup = bss(open(kitchen_sink_xml, 'r').read()) #self.soup = parser.parse_xml(open(kitchen_sink_xml, 'r')) self.soup = parser.parse_document(kitchen_sink_xml)
def test_table_wrap_foot(self, filename, expected_len): soup = parser.parse_document(sample_xml(filename)) self.assertEqual(len(raw_parser.table_wrap_foot(soup)), expected_len)
def test_input_output_forcing_jats_doctype(self, filename): with open(sample_xml(filename), "rb") as xml_file: xml_output_expected = xml_file.read() root, doctype_dict = xmlio.parse(sample_xml(filename), return_doctype_dict=True) self.assertEqual(xmlio.output(root, 'JATS'), xml_output_expected)
def test_author_response(self, filename, expected_type): soup = parser.parse_document(sample_xml(filename)) self.assertEqual(type(raw_parser.author_response(soup)), expected_type)
def test_parse(self, filename): root = xmlio.parse(sample_xml(filename)) self.assertEqual(type(root), Element)
def test_sub_article(self, filename, expected_len): soup = parser.parse_document(sample_xml(filename)) self.assertEqual(len(raw_parser.sub_article(soup)), expected_len)
def test_decision_letter(self, filename, expected_type): soup = parser.parse_document(sample_xml(filename)) self.assertEqual(type(raw_parser.decision_letter(soup)), expected_type)
for filename in xml_filenames: if not os.path.exists(json_expected_folder(filename)): os.mkdir(json_expected_folder(filename)) # Output json files for testing expected output for function_attrs in json_functions: if type(function_attrs) == str: function_name = function_attrs function_arguments = None elif type(function_attrs) == tuple: function_name = function_attrs[0] if type(function_attrs[1]) == tuple: function_arguments = function_attrs[1] else: print "arguments for function " + function_name + " must be a tuple" soup = parser.parse_document(sample_xml(filename)) if function_arguments: result = getattr(parser, function_name)(soup, *function_arguments) else: result = getattr(parser, function_name)(soup) if result is not None: print "writing " + json_expected_file(filename, function_name) with open(json_expected_file(filename, function_name), "wb") as json_file_fp: json_file_fp.write(json.dumps(result, indent=4))
def setUp(self): self.kitchen_sink_xml = sample_xml('elife-kitchen-sink.xml') self.xml = sample_xml('elife00013.xml') self.soup = parser.parse_document(self.kitchen_sink_xml)
def test_principal_award_recipient(self, filename, expected_len): soup = parser.parse_document(sample_xml(filename)) self.assertEqual(len(raw_parser.principal_award_recipient(soup)), expected_len)
def test_mixed_citations(self): self.soup = parser.parse_document(sample_xml('elife-kitchen-sink.xml')) self.assertEqual(1, len(raw_parser.mixed_citations(self.soup)))
def test_funding_group(self, filename, expected_len): soup = parser.parse_document(sample_xml(filename)) self.assertEqual(len(raw_parser.funding_group(soup)), expected_len)
def test_fn_group(self, filename, content_type, expected_len): soup = parser.parse_document(sample_xml(filename)) self.assertEqual(len(raw_parser.fn_group(soup, content_type)), expected_len)
def test_pub_id_uri(self, filename, ext_link_type, expected_len): soup = parser.parse_document(sample_xml(filename)) self.assertEqual(len(raw_parser.ext_link(soup, ext_link_type)), expected_len)
def test_get_first_element_index(self, filename, tag_name, index): root = xmlio.parse(sample_xml(filename)) self.assertEqual(xmlio.get_first_element_index(root, tag_name), index)
def test_article_body(self, filename, expected_type): soup = parser.parse_document(sample_xml(filename)) self.assertEqual(type(raw_parser.article_body(soup)), expected_type)
def test_abstract(self, filename, expected_len): soup = parser.parse_document(sample_xml(filename)) self.assertEqual(len(raw_parser.abstract(soup)), expected_len)
def test_disp_formula(self, filename, expected_len): soup = parser.parse_document(sample_xml(filename)) self.assertEqual(len(raw_parser.disp_formula(soup)), expected_len)