Esempio n. 1
0
    def test_find_missing(self):
        fp = etree.parse(StringIO(b'<a>\n<b>bar</b>\n</a>'))
        xml = stylechecker.XML(fp)
        xml.xmlschema = etree.XMLSchema(etree.parse(sample_xsd))

        # missing elements fallback to the root element
        self.assertEquals(xml.find_element('c', 2), fp.getroot())
Esempio n. 2
0
    def test_invalid(self):
        fp = etree.parse(StringIO(b'<a><c>bar</c></a>'))
        xml = stylechecker.XML(fp)
        xml.xmlschema = etree.XMLSchema(etree.parse(sample_xsd))

        result, _ = xml.validate()
        self.assertFalse(result)
Esempio n. 3
0
    def test_find_root_element(self):
        fp = etree.parse(StringIO(b'<a>\n<b>bar</b>\n</a>'))
        xml = stylechecker.XML(fp)
        xml.xmlschema = etree.XMLSchema(etree.parse(sample_xsd))

        elem = xml.find_element('a', 1)
        self.assertEqual(elem.tag, 'a')
        self.assertEqual(elem.sourceline, 1)
Esempio n. 4
0
    def test_invalid_errors(self):
        # Default lxml error log.
        fp = etree.parse(StringIO(b'<a><c>bar</c></a>'))
        xml = stylechecker.XML(fp)
        xml.xmlschema = etree.XMLSchema(etree.parse(sample_xsd))

        _, errors = xml.validate()
        self.assertIsInstance(errors, etree._ListErrorLog)
Esempio n. 5
0
    def test_validation(self):
        fp = etree.parse(StringIO(b'<a><b>bar</b></a>'))
        xml = stylechecker.XML(fp)
        xml.xmlschema = etree.XMLSchema(etree.parse(sample_xsd))

        result, errors = xml.validate()
        self.assertTrue(result)
        self.assertFalse(errors)
Esempio n. 6
0
    def test_find_missing_without_fallback(self):
        fp = etree.parse(StringIO(b'<a>\n<b>bar</b>\n</a>'))
        xml = stylechecker.XML(fp)
        xml.xmlschema = etree.XMLSchema(etree.parse(sample_xsd))

        # missing elements fallback to the root element
        self.assertRaises(ValueError,
                          lambda: xml.find_element('c', 2, fallback=False))
Esempio n. 7
0
    def test_invalid_schematron(self):
        fp = etree.parse(
            StringIO(
                b'<Total><Percent>60</Percent><Percent>30</Percent></Total>'))
        xml = stylechecker.XML(fp)
        xml.schematron = isoschematron.Schematron(etree.parse(sample_sch))

        result, errors = xml._validate_sch()
        self.assertFalse(result)
        self.assertTrue(errors)
Esempio n. 8
0
    def test_annotate_errors(self):
        fp = etree.parse(StringIO(b'<a><c>bar</c></a>'))
        xml = stylechecker.XML(fp)
        xml.xmlschema = etree.XMLSchema(etree.parse(sample_xsd))

        xml.annotate_errors()
        xml_text = xml.read()

        self.assertIn(
            "<SPS-ERROR>Element 'c': This element is not expected. Expected is ( b ).</SPS-ERROR>",
            xml_text)
        self.assertTrue(isinstance(xml_text, unicode))
Esempio n. 9
0
    def test_annotate_errors_schematron(self):
        fp = etree.parse(
            StringIO(
                b'<Total><Percent>60</Percent><Percent>30</Percent></Total>'))
        xml = stylechecker.XML(fp)
        xml.schematron = isoschematron.Schematron(etree.parse(sample_sch))

        xml.annotate_errors()
        xml_text = xml.read()

        self.assertIn("<!--SPS-ERROR: Element 'Total': Sum is not 100%.-->",
                      xml_text)
        self.assertTrue(isinstance(xml_text, unicode))
Esempio n. 10
0
    def test_initializes_with_etree(self):
        fp = StringIO(b'<a><b>bar</b></a>')
        et = etree.parse(fp)

        self.assertTrue(stylechecker.XML(et))
Esempio n. 11
0
 def test_initializes_with_filepath(self):
     self.assertTrue(stylechecker.XML(self.valid_tmpfile.name))