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()


Roundup Issue Tracker: http://roundup-tracker.org/