Various documentation typo/spelling fixes
Errors detected by Topy (https://github.com/intgr/topy), all changes verified by hand.
Use the stdlib's compare_digest for constant time comparisons when available
Forward ported code from 1.5 that adds backwards compatibility with legacy message length. See commit 9e71830 for details. Thanks to Ofir Ovadia for the initial patch.
…casting. This is a security fix; disclosure to follow shortly.
This is a security fix. Disclosure will follow shortly.
Thanks Benjamin Bach for the report and initial patch. This is a security fix; disclosure to follow shortly.
Fixed bad code introduced in 2f9d157.
Removed old test runner test cases.
This is useful for tests manually calling migrate inside a testcase, for normal usage this should make no difference, since there is no surrounding transaction after all. If there is one we still try to leave the transaction in a useable state (for postgres at least). If this commit turns out to be causing issues, settings savepoint=False is probably the right fix :)
The model_inheritance_same_model_name tests couldn't be run without the model_inheritance tests. Make the problem go away by merging them. Thanks timo for the report.
These files were added as part of #12658, which pertained to the old django.test.simple test runner. No tests call them anymore.
Thanks Jon Foster for the report.
Changed the migration autodetector to remove models last so that FK and M2M fields will not be left as dangling references. Added a check in the migration state renderer to error out in the presence of dangling references instead of leaving them as strings. Fixed a bug in the sqlite backend to handle the deletion of M2M fields with "through" models properly (i.e., do nothing successfully). Thanks to melinath for report, loic for tests and andrewgodwin and charettes for assistance with architecture.
Thanks tobami at gmail.com for the report.
Binary mode added in ed532a6 is not supported by ZipFile. Refs #22399.
This might help on systems where default encoding is not UTF-8 (and on Python 3). Thanks bacilla for the report.