Fix Django 1.11 compatibility for auth validation methods.

Review Request #10837 — Created Jan. 19, 2020 and submitted

Information

Djblets
release-2.0.x

Reviewers

djblets.auth.util.validate_test_cookie() was using an old module
location for ErrorList(), used for form errors. We had a couple
imports at the top of the module that were designed to locate the
correct version of this for validate_old_password, but
validate_test_cookie wasn't using it.

A more correct approach, which this change implements, is to use the
provided form's error_class attribute instead, which defaults to
ErrorList but could be something more specific on some forms. This
simplifies our code, since we don't have to guess where the class is,
and ensures we work with more form implementations.

Unit tests were added for the validation methods to ensure they work in
all Django versions.

Unit tests pass on Django 1.7 and 1.11.

Summary ID
Fix Django 1.11 compatibility for auth validation methods.
`djblets.auth.util.validate_test_cookie()` was using an old module location for `ErrorList()`, used for form errors. We had a couple imports at the top of the module that were designed to locate the correct version of this for `validate_old_password`, but `validate_test_cookie` wasn't using it. A more correct approach, which this change implements, is to use the provided form's `error_class` attribute instead, which defaults to `ErrorList` but could be something more specific on some forms. This simplifies our code, since we don't have to guess where the class is, and ensures we work with more form implementations. Unit tests were added for the validation methods to ensure they work in all Django versions.
3665745f1b2ebe08a4875d4ae0be0880f445c0a6
chipx86
david
  1. Ship It!
  2. 
      
chipx86
Review request changed
Status:
Completed
Change Summary:
Pushed to release-2.0.x (40a7d18)