- Add test_data_cannot_be_accessed_prior_to_is_valid to HyperlinkedManyToManyTests
- Add test_data_cannot_be_accessed_prior_to_is_valid to PKManyToManyTests
- Remove TODO comments that were addressed
- Ensures AssertionError is raised when accessing .data before validation
Fixes TODO items in:
- tests/test_relations_hyperlink.py (line 71)
- tests/test_relations_pk.py (line 97)
Co-authored-by: therealjozbert <info@therealjozbert.com>
Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
- Respect USERNAME_FIELD of the user model.
- Default ordering by username.
- Filter by creation date.
Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
* adding django6.0a support
* test fixed
* gitignore updated
* pre-commit applied
* test issue 1386 fixed
* fixing test issue 1386
* .gov domain handled for different version
* correct urls updated
* Modify URL test cases for Django version compatibility
Adjust URL test cases based on Django version.
* Add Django import to test_templatetags.py
* Reorder import statements in test file
* Update tox.ini
* Update tox.ini
* Revert unnecessary changes in tests
* Default to AutoField for now
* Add Django upper bound to base and dist tests to avoid testing on unsupported versions
---------
Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
Co-authored-by: Bruno Alla <alla.brunoo@gmail.com>
* Add validation for decorator order with @api_view
Raise TypeError when API policy decorators (@permission_classes,
@renderer_classes, etc.) are applied after @api_view instead of before it.
Fixes#9596
* Address PR review feedback: update error message wording and example
- Change 'must be applied before' to 'must come after (below) the' to match DRF docs language
- Fix decorator order in example to show @api_view first, then policy decorator below
- Remove unnecessary f-string prefixes from non-interpolated lines
- Update all test assertions to match new error message wording
Addresses feedback from @browniebroke in PR #9821
* Add support for ipaddress objects in JSONEncoder
* Update tests/test_encoders.py
* Update assertions to be more explicit
---------
Co-authored-by: Asif Saif Uddin {"Auvi":"অভি"} <auvipy@gmail.com>
Co-authored-by: Bruno Alla <alla.brunoo@gmail.com>
* Fixed#5363 -- HTML5 datetime-local valid format HTMLFormRenderer
Co-authored-by: Peter Thomassen
* Add condition to make code cleanable by pyupgrade
---------
Co-authored-by: Bruno Alla <alla.brunoo@gmail.com>
* Standardize spelling to American English (only in .md files)
* Update remaining British english spell words to American english style
* Configures the codespell pre-commit hook to enforce US English consistency
changes:
- Activates the `en-GB_to_en-US` built-in dictionary to flag British spellings
- Created codespell-ignore-words.txt file to ignore specific words
- include `code` and `names` for comprehensive typo checking in technical contexts.
- changed the 'lets' to 'let's'.
* fix(serializer): restore get_unique_together_constraints method signature
Extracted error message logic to a separate method.
fix: conditionally include violation_error_code for Django >= 5.0
fix(validators): use custom error message and code from model constraints
* fix: add model parents to create unique_constraint_by_fields
* fix: order of model classes in the unique_constraint_by_fields
* Condition of UniqueValidator can be read-only
We can't always expect to find the value of the condition in the serializer
if the field is read-only.
* Reproducible test
* Allow format duration as ISO-8601
* Update tests/test_fields.py
Co-authored-by: Bruno Alla <browniebroke@users.noreply.github.com>
* Update tests/test_fields.py
Co-authored-by: Bruno Alla <browniebroke@users.noreply.github.com>
* Add validation for DurationField format, add more tests for it and improve related docs
* Add more precise validation check for duration field format and adjust docs
* Adjust typo in duration field docs
---------
Co-authored-by: Asif Saif Uddin <auvipy@gmail.com>
Co-authored-by: Bruno Alla <browniebroke@users.noreply.github.com>
* Fix#9250: Prevent token overwrite and improve security
- Fix key collision issue that could overwrite existing tokens
- Use force_insert=True only for new token instances
- Replace os.urandom with secrets.token_hex for better security
- Add comprehensive test suite to verify fix and backward compatibility
- Ensure existing tokens can still be updated without breaking changes
* Fix code style: remove trailing whitespace and unused imports
* Fix#9250: Prevent token overwrite with minimal changes
- Add force_insert=True to Token.save() for new objects to prevent overwriting existing tokens
- Revert generate_key method to original implementation (os.urandom + binascii)
- Update tests to work with original setUp() approach
- Remove verbose comments and unrelated changes per reviewer feedback
* Fix flake8 violations: remove extra blank lines and trailing whitespace
* Update tests/test_authtoken.py
Co-authored-by: Bruno Alla <browniebroke@users.noreply.github.com>
* Update tests/test_authtoken.py
Co-authored-by: Bruno Alla <browniebroke@users.noreply.github.com>
* Update tests/test_authtoken.py
Co-authored-by: Bruno Alla <browniebroke@users.noreply.github.com>
* Fix token key regeneration behavior and add test
* Update tests/test_authtoken.py
Co-authored-by: Bruno Alla <browniebroke@users.noreply.github.com>
---------
Co-authored-by: Bruno Alla <browniebroke@users.noreply.github.com>
* Refactor token generation to use secrets module
* test: Add focused tests for Token.generate_key() method
- Add test for valid token format (40 hex characters)
- Add collision resistance test with 500 sample size
- Add basic randomness quality validation
- Ensure generated keys are unique and properly formatted
* Fix test with Django 5 when pytz is available
* fix formatting
* remove original condition
Co-authored-by: Ülgen Sarıkavak <ulgens@users.noreply.github.com>
* remove trailing whitespace
* further improvements
* let's not skip the pytz test - it should always be executed when testing against Django 4
* add comment to test requirements
Co-authored-by: Bruno Alla <browniebroke@users.noreply.github.com>
* simplify the pytz import as it should always be available
* make isort happy
---------
Co-authored-by: Ülgen Sarıkavak <ulgens@users.noreply.github.com>
Co-authored-by: Bruno Alla <browniebroke@users.noreply.github.com>
* Drop HTML line breaks on long headers
* Remove related test
* Fix flake8
---------
Co-authored-by: Asif Saif Uddin <auvipy@gmail.com>
Co-authored-by: Bruno Alla <alla.brunoo@gmail.com>
* Add failing test for `UniqueConstraint` validation with `source` attribute
* Fix `UniqueTogetherValidator` to handle fields with source attribute
* split inner sources logic out to tuple comprehension
* Fix typo of 'related' in tests
* Fix typo of permission_classes in coreapi test
* Fix some minor typos in docs
* Fix typos in tests
* Fix flake8 issue
* Fixed regression that tests using format still work
Error only occurred on tests which return no content and use
a renderer without charset (e.g. JSONRenderer)
* Fixed linting
* Used early return as before
* Move ret str check back to where it was
* Add test to reproduce problem with nullable fields part of a unique constraint
Ref #9378
* Simplify test case and add similar case for unique_together
* Add test for unique together in a better place
* Default nullable fields to null in unique constraints checks
* Remove redundant test and move other to more appropriate place
* Add official support for Django 5.1
Following the supported Python versions:
https://docs.djangoproject.com/en/stable/faq/install/
* Add tests to cover compat with Django's 5.1 LoginRequiredMiddleware
* First pass to create DRF's LoginRequiredMiddleware
* Attempt to fix the tests
* Revert custom middleware implementation
* Disable LoginRequiredMiddleware on DRF views
* Document how to integrate DRF with LoginRequiredMiddleware
* Move login required tests under a separate test case
* Revert redundant change
* Disable LoginRequiredMiddleware on ViewSets
* Add some integrations tests to cover various view types
* Use Decimal for min/max values of DecimalField in tests
* Update docs to mention that min/max values should be Decimal objects
* Accept integer values for DecimalField min and max values
* Update expected error messages in tests
* Update expected warning message in tests