Commit Graph

93 Commits

Author SHA1 Message Date
Sebastian Pipping 9f74e86c78
gh-117187: Fix XML tests for vanilla Expat <2.6.0 (GH-117203)
This fixes XML unittest fallout from the https://github.com/python/cpython/issues/115398 security fix.  When configured using `--with-system-expat` on systems with older pre 2.6.0 versions of libexpat, our unittests were failing.

* sax|etree: Simplify Expat version guard where simplifiable

Idea by Matěj Cepl

* sax|etree: Fix reparse deferral tests for vanilla Expat <2.6.0

This *does not fix* the case of distros with an older version of libexpat with the 2.6.0 feature backported as a security fix.  (Ubuntu is a known example of this with its libexpat1 2.5.0-2ubunutu0.1 package)
2024-03-25 18:48:27 -07:00
Sebastian Pipping 6a95676bb5
gh-115398: Expose Expat >=2.6.0 reparse deferral API (CVE-2023-52425) (GH-115623)
Allow controlling Expat >=2.6.0 reparse deferral (CVE-2023-52425) by adding five new methods:

- `xml.etree.ElementTree.XMLParser.flush`
- `xml.etree.ElementTree.XMLPullParser.flush`
- `xml.parsers.expat.xmlparser.GetReparseDeferralEnabled`
- `xml.parsers.expat.xmlparser.SetReparseDeferralEnabled`
- `xml.sax.expatreader.ExpatParser.flush`

Based on the "flush" idea from https://github.com/python/cpython/pull/115138#issuecomment-1932444270 .

### Notes

- Please treat as a security fix related to CVE-2023-52425.

Includes code suggested-by: Snild Dolkow <snild@sony.com>
and by core dev Serhiy Storchaka.
2024-02-29 14:52:50 -08:00
Serhiy Storchaka 40348acc18
bpo-45229: Remove test_main in many tests (GH-28405)
Instead of explicitly enumerate test classes for run_unittest()
use the unittest ability to discover tests. This also makes these
tests discoverable and runnable with unittest.

load_tests() can be used for dynamic generating tests and adding
doctests. setUpModule(), tearDownModule() and addModuleCleanup()
can be used for running code before and after all module tests.
2021-09-19 15:27:33 +03:00
Zackery Spytz e28b8c9387
bpo-35018: Sax parser should provide user access to lexical handlers (GH-20958)
Co-Authored-By: Jonathan Gossage <jgossage@gmail.com>
2020-08-09 12:50:53 +02:00
Hai Shi bb0424b122
bpo-40275: Use new test.support helper submodules in tests (GH-21451) 2020-08-03 18:47:42 +02:00
Hai Shi 24bddc1b3b
bpo-40275: Remove test.support.TESTFN_ENCODING (GH-20482)
Replace test.support.TESTFN_ENCODING with sys.getfilesystemencoding().
2020-05-28 16:24:39 +02:00
Victor Stinner 7cb9204ee1
bpo-37421: urllib.request tests call urlcleanup() (GH-14529)
urllib.request tests now call urlcleanup() to remove temporary files
created by urlretrieve() tests and to clear the _opener global
variable set by urlopen() and functions calling indirectly urlopen().

regrtest now checks if urllib.request._url_tempfiles and
urllib.request._opener are changed by tests.
2019-07-02 14:50:19 +02:00
Mickaël Schoentgen 929b704738 bpo-31658: Make xml.sax.parse accepting Path objects (GH-8564) 2019-04-14 11:16:54 +02:00
Srinivas Thatiparthy (శ్రీనివాస్ తాటిపర్తి) 90d0cfb222 bpo-35202: Remove unused imports in tests. (GH-10561) 2018-11-16 17:32:58 +02:00
Andrés Delfino a6dc531063 bpo-34789: make xml.sax.make_parser accept iterables of all types (GH-9576) 2018-10-26 17:56:57 +03:00
Christian Heimes 17b1d5d4e3 bpo-17239: Disable external entities in SAX parser (GH-9217)
The SAX parser no longer processes general external entities by default
to increase security. Before, the parser created network connections
to fetch remote files or loaded local files from the file system for DTD
and entities.

Signed-off-by: Christian Heimes <christian@python.org>



https://bugs.python.org/issue17239
2018-09-23 00:50:25 -07:00
Victor Stinner ef9c0e732f bpo-30264: ExpatParser closes the source on error (#1451)
ExpatParser.parse() of xml.sax.xmlreader now always closes the
source: close the file object or the urllib object if source is a
string (not an open file-like object). The change fixes a
ResourceWarning on parsing error.

Add test_parse_close_source() unit test.
2017-05-05 09:46:47 +02:00
Serhiy Storchaka 9749b5a6a3 Issue #24125: Saved error's line and column numbers when an error is occured
during closing expatreader.  Fixed a regression introduced in issue #23865.
2015-05-06 09:38:22 +03:00
Serhiy Storchaka ab914780ba Issue #24125: Saved error's line and column numbers when an error is occured
during closing expatreader.  Fixed a regression introduced in issue #23865.
2015-05-06 09:36:06 +03:00
Serhiy Storchaka 778db289b5 Issue #10590: xml.sax.parseString() now supports string argument. 2015-04-04 10:12:26 +03:00
Serhiy Storchaka f1468eb44c Issue #10590: Added tests for xml.sax.parse() and xml.sax.parseString(). 2015-04-02 23:07:19 +03:00
Serhiy Storchaka 13e41c516a Issue #10590: Added tests for xml.sax.parse() and xml.sax.parseString(). 2015-04-02 23:05:57 +03:00
Serhiy Storchaka 61de087f0f Issue #2175: SAX parsers now support a character stream of InputSource object. 2015-04-02 21:00:13 +03:00
Serhiy Storchaka aa9563c1b8 Issue #2175: Added tests for xml.sax.saxutils.prepare_input_source().
Made test XML files non-ASCII.
2015-04-02 20:55:59 +03:00
Serhiy Storchaka fc8e9b0e72 Issue #22915: SAX parser now supports files opened with file descriptor or
bytes path.
2014-11-27 22:13:16 +02:00
Richard Oudkerk 90a24270f8 Close file before reopening to keep Windows happy in test_sax. 2013-05-18 18:11:30 +01:00
Antoine Pitrou 2adb6fe246 Fix ResourceWarnings in test_sax 2013-05-13 22:34:21 +02:00
Serhiy Storchaka 3eab6b363a Issue #17606: Fixed support of encoded byte strings in the XMLGenerator
characters() and ignorableWhitespace() methods.  Original patch by Sebastian
Ortiz Vasquez.
2013-05-12 17:31:16 +03:00
Georg Brandl 64949fa20e merge with 3.2 2013-05-12 11:52:22 +02:00
Georg Brandl c502df4e3e Issue #17915: Fix interoperability of xml.sax with file objects returned by
codecs.open().
2013-05-12 11:41:12 +02:00
R David Murray f3a1b6efe0 Merge #17448: Make test_sax skip if there are no xml parsers.
Patch by Rafael Santos.
2013-03-18 00:20:43 -04:00
R David Murray a846f5ace8 #17448: Make test_sax skip if there are no xml parsers.
Patch by Rafael Santos.
2013-03-18 00:18:12 -04:00
Serhiy Storchaka d9a550b5e1 Issue #1470548: Add test for fragment producing with XMLGenerator. 2013-02-25 13:46:32 +02:00
Serhiy Storchaka a5f13d2a5f Issue #1470548: Add test for fragment producing with XMLGenerator. 2013-02-25 13:46:10 +02:00
Serhiy Storchaka 9fef188c9e Issue #1470548: XMLGenerator now works with binary output streams. 2013-02-10 14:31:07 +02:00
Serhiy Storchaka 88efc52d74 Issue #1470548: XMLGenerator now works with binary output streams. 2013-02-10 14:29:52 +02:00
Serhiy Storchaka e080a7a5d4 Fix tests for issue #11159. 2013-02-02 12:17:30 +02:00
Serhiy Storchaka 1a4ed4ce18 Fix tests for issue #11159. 2013-02-02 12:17:05 +02:00
Serhiy Storchaka efbf40f9e1 Issue #11159: Add tests for testing SAX parser support of non-ascii file names. 2013-02-02 10:31:50 +02:00
Serhiy Storchaka d52023968a Issue #11159: Add tests for testing SAX parser support of non-ascii file names. 2013-02-02 10:31:17 +02:00
Andrew Svetlov 5b89840d9c Issue #16714: use 'raise' exceptions, don't 'throw'.
Patch by Serhiy Storchaka.
2012-12-18 21:26:36 +02:00
Andrew Svetlov 737fb89dd1 Issue #16714: use 'raise' exceptions, don't 'throw'.
Patch by Serhiy Storchaka.
2012-12-18 21:14:22 +02:00
Martin v. Löwis 7c038b4726 merge 11164 2011-05-09 08:12:19 +02:00
Martin v. Löwis 867754e3e3 merge 11164 2011-05-09 08:10:38 +02:00
Martin v. Löwis 2f48d892d4 Stop trying to use _xmlplus in the xml module. Closes #11164.
Patch by Arfrever Frehtes Taifersar Arahesis.
2011-05-09 08:05:43 +02:00
Marc-André Lemburg 8f36af7a4c Normalize the encoding names for Latin-1 and UTF-8 to
'latin-1' and 'utf-8'.

These are optimized in the Python Unicode implementation
to result in more direct processing, bypassing the codec
registry.

Also see issue11303.
2011-02-25 15:42:01 +00:00
Ezio Melotti 19f2aeba67 Merged revisions 86596 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r86596 | ezio.melotti | 2010-11-20 21:04:17 +0200 (Sat, 20 Nov 2010) | 1 line

  #9424: Replace deprecated assert* methods in the Python test suite.
........
2010-11-21 01:30:29 +00:00
Ezio Melotti b3aedd4862 #9424: Replace deprecated assert* methods in the Python test suite. 2010-11-20 19:04:17 +00:00
Benjamin Peterson d5df36d378 fix resource warnings in test_sax #10269 2010-10-31 18:23:23 +00:00
Antoine Pitrou 43ffd5c013 Merged revisions 85861 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r85861 | antoine.pitrou | 2010-10-27 20:52:48 +0200 (mer., 27 oct. 2010) | 3 lines

  Recode modules from latin-1 to utf-8
........
2010-10-27 18:54:06 +00:00
Antoine Pitrou d72402effc Recode modules from latin-1 to utf-8 2010-10-27 18:52:48 +00:00
Antoine Pitrou 0619ae798d Merged revisions 85858 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r85858 | antoine.pitrou | 2010-10-27 20:33:30 +0200 (mer., 27 oct. 2010) | 5 lines

  Issue #5027: The standard `xml` namespace is now understood by
  xml.sax.saxutils.XMLGenerator as being bound to
  http://www.w3.org/XML/1998/namespace.  Patch by Troy J. Farrell.
........
2010-10-27 18:37:51 +00:00
Antoine Pitrou 6b03ee6033 Issue #5027: The standard `xml` namespace is now understood by
xml.sax.saxutils.XMLGenerator as being bound to
http://www.w3.org/XML/1998/namespace.  Patch by Troy J. Farrell.
2010-10-27 18:33:30 +00:00
R. David Murray a90032a3fb #1343: Add short_empty_elements option to XMLGenerator.
Patch and tests by Neil Muller.
2010-10-17 22:46:45 +00:00
Victor Stinner 6c6f851eae Issue #9425: skip tests if a filename is not encodable 2010-08-07 10:09:35 +00:00