Mariusz Felisiak
6c0539ed7c
Refs #32446 -- Removed SERIALIZE test database setting per deprecation timeline.
2023-01-17 11:49:15 +01:00
Mariusz Felisiak
0e2649fdf4
Fixed #34255 -- Made PostgreSQL backend use client-side parameters binding with psycopg version 3.
...
Thanks Guillaume Andreu Sabater for the report.
Co-authored-by: Florian Apolloner <apollo13@users.noreply.github.com>
2023-01-17 08:24:08 +01:00
Mariusz Felisiak
c8a76059ff
Refs #34255 -- Bumped required psycopg version to 3.1.8.
2023-01-17 08:24:08 +01:00
sarahboyce
05bcd5baaf
Refs #30129 -- Added test for create() with F() expression in Subquery.
...
Fixed in 3543129822
.
2023-01-16 08:26:34 +01:00
Leo
5da5f3773e
Fixed #34234 -- Dropped support for PROJ 4.
2023-01-13 12:31:41 +01:00
Mariusz Felisiak
c2118d72d6
Fixed #34240 -- Preserved headers of requests made with django.test.Client in assertRedirects().
...
Bug in 67da22f08e
.
2023-01-13 11:30:27 +01:00
Jarosław Wygoda
32940d390a
Refs #26029 -- Deprecated DEFAULT_FILE_STORAGE and STATICFILES_STORAGE settings.
2023-01-12 09:58:36 +01:00
Jarosław Wygoda
1ec3f0961f
Fixed #26029 -- Allowed configuring custom file storage backends.
2023-01-12 06:20:57 +01:00
Mariusz Felisiak
d02a9f0cee
Fixed thread termination in servers.tests.LiveServerPort on Python 3.10.9+, 3.11.1+, and 3.12+.
...
Class cleanups registered in TestCase subclasses are no longer called
as TestCase.doClassCleanups() only cleans up the particular class, see
c2102136be
2023-01-12 06:04:10 +01:00
Mariusz Felisiak
829f4d1448
Refs #31546 , Refs #34118 -- Corrected CommandTests.test_requires_system_checks_specific().
...
System checks are never called without skip_checks=False. Moreover,
called_once_with() is not a proper assertion and raise AttributeError
on Python 3.12.
2023-01-11 05:36:40 +01:00
Mariusz Felisiak
552384fa97
Refs #31014 -- Added FromWKB and FromWKT GIS database functions.
...
Co-authored-by: Ondřej Böhm <ondrej.bohm@firma.seznam.cz>
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
Co-authored-by: Sergey Fedoseev <fedoseev.sergey@gmail.com>
2023-01-10 11:51:09 +01:00
Francesco Panico
72efd840a8
Fixed #34110 -- Added in-memory file storage.
...
Thanks Paolo Melchiorre, Carlton Gibson, and Mariusz Felisiak for
reviews.
2023-01-10 10:56:59 +01:00
Simon Charette
dd68af62b2
Fixed #34176 -- Fixed grouping by ambiguous aliases.
...
Regression in b7b28c7c18
.
Refs #31377 .
Thanks Shai Berger for the report and reviews.
test_aggregation_subquery_annotation_values_collision() has been
updated as queries that are explicitly grouped by a subquery should
always be grouped by it and not its outer columns even if its alias
collides with referenced table columns. This was not possible to
accomplish at the time 10866a10
landed because we didn't have compiler
level handling of colliding aliases.
2023-01-09 10:52:51 +01:00
Tim Graham
016bead6a2
Renamed 'requests' test package.
...
This avoids a collision when third-party database backends depend on the
Requests HTTP library.
2023-01-07 11:41:40 +01:00
Nick Pope
b47f2f5b90
Fixed #33865 -- Optimized LimitedStream wrapper.
...
The current implementation of LimitedStream is slow because .read()
performs an extra copy into a buffer and .readline() performs two
extra copies. The stream being wrapped is already typically a BytesIO
object so this is unnecessary.
This implementation has largely been untouched for 12 years and,
inspired by a simpler implementation in werkzeug, it was possible to
achieve the following performance improvement:
LimitedStream.read() (single line):
Mean +- std dev: [bench_limitedstream-main] 286 ns +- 6 ns
-> [bench_limitedstream-patch] 227 ns +- 6 ns: 1.26x faster
LimitedStream.readline() (single line):
Mean +- std dev: [bench_limitedstream-main] 507 ns +- 11 ns
-> [bench_limitedstream-patch] 232 ns +- 8 ns: 2.18x faster
LimitedStream.read(8192) (single line):
Mean +- std dev: [bench_limitedstream-main] 360 ns +- 8 ns
-> [bench_limitedstream-patch] 297 ns +- 6 ns: 1.21x faster
LimitedStream.readline(8192) (single line):
Mean +- std dev: [bench_limitedstream-main] 602 ns +- 10 ns
-> [bench_limitedstream-patch] 305 ns +- 10 ns: 1.98x faster
LimitedStream.read() (multiple lines):
Mean +- std dev: [bench_limitedstream-main] 290 ns +- 5 ns
-> [bench_limitedstream-patch] 236 ns +- 6 ns: 1.23x faster
LimitedStream.readline() (multiple lines):
Mean +- std dev: [bench_limitedstream-main] 517 ns +- 19 ns
-> [bench_limitedstream-patch] 239 ns +- 7 ns: 2.16x faster
LimitedStream.read(8192) (multiple lines):
Mean +- std dev: [bench_limitedstream-main] 363 ns +- 8 ns
-> [bench_limitedstream-patch] 311 ns +- 11 ns: 1.17x faster
LimitedStream.readline(8192) (multiple lines):
Mean +- std dev: [bench_limitedstream-main] 601 ns +- 12 ns
-> [bench_limitedstream-patch] 308 ns +- 7 ns: 1.95x faster
Geometric mean: 1.59x faster
2023-01-05 19:26:56 +01:00
Nick Pope
57f5669d23
Refs #33865 -- Improved implementation of FakePayload.
...
FakePayload is a wrapper around io.BytesIO and is expected to
masquerade as though it is a file-like object. For that reason it makes
sense that it should inherit the correct signatures from io.BytesIO
methods.
Crucially an implementation of .readline() is added which will be
necessary for this to behave more like the expected file-like objects as
LimitedStream will be changed to defer to the wrapped stream object
rather than rolling its own implementation for improved performance.
It should be safe to adjust these signatures because FakePayload is
only used internally within test client helpers, is undocumented, and
thus private.
2023-01-05 19:25:25 +01:00
Nick Pope
95182a8593
Refs #33865 -- Corrected signature of ExplodingBytesIO.read().
...
These subclasses of io.BytesIO should inherit the correct signature.
2023-01-05 19:17:56 +01:00
Nick Pope
7a1543d9f6
Refs #33865 -- Made RequestsTests.test_set_encoding_clears_GET use FakePayload.
...
The input stream, wsgi.input, must be a file-like object. The existing
implementation of LimitedStream was lax and allowed an empty string to
be passed incorrectly.
See https://wsgi.readthedocs.io/en/latest/definitions.html#envvar-wsgi.input
2023-01-05 19:16:49 +01:00
Mariusz Felisiak
63d1cb0092
Refs #32355 -- Bumped minimum supported versions of 3rd-party packages.
...
This bumps minimum supported versions of 3rd-party packages to the first
releases to support Python 3.8.
2023-01-05 18:09:33 +01:00
sage
8cf3831822
Fixed #34243 -- Fixed timesince() crash with timezone-aware dates and interval longer than 1 month.
...
Regression in 8d67e16493
.
2023-01-05 16:38:19 +01:00
Mariusz Felisiak
7d9329935a
Refs #32355 -- Bumped mysqlclient requirement to >= 1.4.3.
...
mysqlclient 1.4.3 is the first release to support Python 3.8.
2023-01-05 16:34:14 +01:00
Nick Pope
65477fd7da
Added support for datetime.date to DateFormat.r().
2023-01-05 12:51:55 +01:00
Nick Pope
0fdc5d79b6
Simplified django.utils.formats.date_format()/time_format() calls.
...
This removes redundant get_format() calls and passing a default value
for the format argument.
2023-01-04 11:47:14 +01:00
GianpaoloBranca
8d67e16493
Fixed #33879 -- Improved timesince handling of long intervals.
2023-01-04 11:14:06 +01:00
David Wobrock
99bd5fb4c2
Refs #34074 -- Used headers argument for RequestFactory and Client in docs and tests.
2023-01-04 09:11:36 +01:00
Mike Crute
0b78ac3fc7
Fixed #34200 -- Made the session role configurable on PostgreSQL.
2023-01-03 09:30:53 +01:00
Claude Paroz
2a14b8df39
Fixed #33783 -- Added IsEmpty GIS database function and __isempty lookup on PostGIS.
2023-01-03 05:47:44 +01:00
Mariusz Felisiak
6774e9359c
Fixed #23842 -- Fixed flaky GeoQuerySetTest.test_make_line() test.
2023-01-03 05:46:40 +01:00
Florian Apolloner
afa2e28205
Fixed #34235 -- Added ManifestFilesMixin.manifest_hash attribute.
...
This adds ManifestFilesMixin.manifest_hash attribute exposing a "hash"
of the full manifest. This allows applications to determine when their
static files have changed.
2023-01-02 09:53:52 +01:00
Francesco Panico
c179ad9fe7
Refs #34100 -- Made file upload tests use Storage.exists() where appropriate.
2022-12-30 13:28:47 +01:00
Mariusz Felisiak
6e9e7ec472
Fixed random delete.tests.DeletionTests.test_deletion_order failures.
2022-12-30 12:22:30 +01:00
Paul Schilling
298d02a77a
Fixed #25617 -- Added case-insensitive unique username validation in UserCreationForm.
...
Co-Authored-By: Neven Mundar <nmundar@gmail.com>
2022-12-29 09:42:22 +01:00
Adrian Torres
7eee1dca42
Fixed #14094 -- Added support for unlimited CharField on PostgreSQL.
...
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
2022-12-28 12:31:04 +01:00
kimsoungryoul
78f163a4fb
Fixed #18468 -- Added support for comments on columns and tables.
...
Thanks Jared Chung, Tom Carrick, David Smith, Nick Pope, and Mariusz
Felisiak for reviews.
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
Co-authored-by: Nick Pope <nick@nickpope.me.uk>
2022-12-28 06:28:07 +01:00
DevilsAutumn
68ef274bc5
Fixed #34217 -- Fixed migration crash when removing check constraints on MySQL < 8.0.16.
2022-12-27 07:11:13 +01:00
朱穆穆
bbeeb45161
Fixed #34226 -- Fixed QuerySet.select_related() with multiple FilteredRelations to the OneToOneField.
2022-12-27 06:39:38 +01:00
David Wobrock
5aaad5f39c
Fixed #34165 -- Made permissions creation respect the "using" parameter.
2022-12-24 11:58:33 +01:00
Carlton Gibson
0bd2c0c901
Fixed #33735 -- Added async support to StreamingHttpResponse.
...
Thanks to Florian Vazelle for initial exploratory work, and to Nick
Pope and Mariusz Felisiak for review.
2022-12-22 10:41:12 +01:00
Mariusz Felisiak
ae0899be0d
Fixed #34219 -- Preserved Char/TextField.db_collation when altering column type.
...
This moves setting a database collation to the column type alteration
as both must be set at the same time.
This should also avoid another layer of the column type alteration when
adding database comments support (#18468 ).
2022-12-22 07:12:17 +01:00
Mariusz Felisiak
3b24a3fa33
Removed unnecessary commas in tests.
2022-12-21 11:41:29 +01:00
Carlton Gibson
32d70b2f55
Refs #34118 -- Adopted asgiref coroutine detection shims.
...
Thanks to Mariusz Felisiak for review.
2022-12-20 11:10:48 +01:00
Roxane
289e9a75af
Fixed #33662 -- Allowed Sitemap to customize languages for each item.
2022-12-19 12:51:52 +01:00
Andreas Pelme
ab7a85ac29
Fixed #34170 -- Implemented Heal The Breach (HTB) in GzipMiddleware.
2022-12-17 08:46:37 +01:00
Leo
a1bcdc94da
Fixed #34212 -- Made RedisCacheClient.incr() use write connection.
...
Co-authored-by: Sin-Woo Bang <sinwoobang@gmail.com>
2022-12-16 19:13:03 +01:00
Mariusz Felisiak
1e4da43955
Fixed lookup.tests.LookupTests.test_exact_none_transform() test on Oracle.
...
NulledTransform doesn't return TextField anymore so it cannot be
wrapped with DBMS_LOB.SUBSTR().
Test regression in 09ffc5c121
.
2022-12-16 12:24:49 +01:00
Daniele Varrazzo
09ffc5c121
Fixed #33308 -- Added support for psycopg version 3.
...
Thanks Simon Charette, Tim Graham, and Adam Johnson for reviews.
Co-authored-by: Florian Apolloner <florian@apolloner.eu>
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
2022-12-15 06:17:57 +01:00
Marti Raudsepp
32268456d6
Fixed #34209 -- Prevented FileBasedCache.has_key() crash caused by a race condition.
2022-12-13 19:29:15 +01:00
Florian Apolloner
db7bb3b64e
Refs #33308 -- Added DatabaseOperations.compose_sql() on PostgreSQL.
2022-12-12 10:36:45 +01:00
Florian Apolloner
1d90c9b113
Refs #33308 -- Added psycopg_any.IsolationLevel.
2022-12-12 10:36:42 +01:00
Florian Apolloner
2ebfbd894e
Refs #33308 -- Moved psycopg2 imports to the psycopg_any module.
2022-12-12 08:36:17 +01:00