Mercurial > p > roundup > code
view test/conftest.py @ 8268:05d8806b25ad
fix: issue2551387 - TypeError: not indexable.
Fix crash due to uninitialized list element on a (Mini)FieldStorage
when unexpected input is posted via wsgi. This doesn't happen when
running roundup-server. It might happen under other front ends.
Moved the code that sets '.list = [] if .list == None' to the main
flow. Added an exception hander that logs the value of self.form if
self.form.list raises an AttributeError. This exception should never
happen if I understand the code correctly (but I probably don't).
Fixed a number of test cases that were broken because I was calling
Client and passing '[]' rather than a cgi.formStorage object.
Added test cases:
create a FileStorage (self.form) with .list = None.
check AttributeError exception and verify logging.
Problem reported and debugged by Christof Meerwald.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sun, 12 Jan 2025 12:34:52 -0500 |
| parents | 43dc610bbd24 |
| children |
line wrap: on
line source
# simple way to see if there are order dependencies in tests # can use if pytest-random-order --random-order mode isn't # usable (e.g. python2). # known issues: # python3 -m pytest -k Whoosh test/test_indexer.py fails starting with # first reversed (so last) test in module # # python3 -m pytest test/test_cgi.py # fails: FormTestCase::testCreatePermission # FormTestCase::testClassPermission # FormTestCase::testCheckAndPropertyPermission # # this failure results in a failure in test_action again with # bad permission application. Something run prior to these # tests is breaking the permission checks. #def pytest_collection_modifyitems(items): # items.reverse() # Add a marker for pg_schema tests. # They duplicate the postgresql tests exactly but uses a named # schema rather than the default 'public' schema. def pytest_configure(config): config.addinivalue_line( "markers", "pg_schema: tests using schema for postgres" ) # try to work around loss of testmon data when ^Cing out of tests. def pytest_unconfigure(config): if hasattr(config, "testmon_data"): config.testmon_data.db.con.close()
