test_mathml.py 836 B

123456789101112131415161718192021222324252627282930313233
  1. import os
  2. from textwrap import dedent
  3. from sympy.external import import_module
  4. from sympy.testing.pytest import skip
  5. from sympy.utilities.mathml import apply_xsl
  6. lxml = import_module('lxml')
  7. path = os.path.abspath(os.path.join(os.path.dirname(__file__), "test_xxe.py"))
  8. def test_xxe():
  9. assert os.path.isfile(path)
  10. if not lxml:
  11. skip("lxml not installed.")
  12. mml = dedent(
  13. rf"""
  14. <!--?xml version="1.0" ?-->
  15. <!DOCTYPE replace [<!ENTITY ent SYSTEM "file://{path}"> ]>
  16. <userInfo>
  17. <firstName>John</firstName>
  18. <lastName>&ent;</lastName>
  19. </userInfo>
  20. """
  21. )
  22. xsl = 'mathml/data/simple_mmlctop.xsl'
  23. res = apply_xsl(mml, xsl)
  24. assert res == \
  25. '<?xml version="1.0"?>\n<userInfo>\n<firstName>John</firstName>\n<lastName/>\n</userInfo>\n'