Commit Graph

3486 Commits

Author SHA1 Message Date
Anssi Kääriäinen 01b9c3d519 Fixed #16715 -- Fixed join promotion logic for nested nullable FKs
The joins for nested nullable foreign keys were often created as INNER
when they should have been OUTER joins. The reason was that only the
first join in the chain was promoted correctly. There were also issues
with select_related etc.

The basic structure for this problem was:
  A -[nullable]-> B -[nonnull]-> C

And the basic problem was that the A->B join was correctly LOUTER,
the B->C join not.

The major change taken in this patch is that now if we promote a join
A->B, we will automatically promote joins B->X for all X in the query.
Also, we now make sure there aren't ever join chains like:
   a LOUTER b INNER c
If the a -> b needs to be LOUTER, then the INNER at the end of the
chain will cancel the LOUTER join and we have a broken query.

Sebastian reported this problem and did also major portions of the
patch.
2012-08-25 14:14:45 +03:00
Claude Paroz f5ea730dac Fixed #18843 -- Replaced more special chars in column names (inspectdb)
Thanks airstrike for the report.
2012-08-23 22:59:45 +02:00
Claude Paroz 395c6083af Fixed #12460 -- Improved inspectdb handling of special field names
Thanks mihail lukin for the report and elijahr and kgibula for their
work on the patch.
2012-08-23 21:46:57 +02:00
Alexey Boriskin 10d32072af Fixed #18798 -- Renamed conflicting test methods in i18n tests 2012-08-23 11:27:56 +02:00
Claude Paroz 44c09de555 Fixed #18678 -- HttpResponse init arguments allowed for subclasses
Thanks hp1337@gmail.com for the report.
2012-08-23 10:59:22 +02:00
Claude Paroz 7cfe8e8fce Fixed #11340 -- Prevented HttpResponseNotModified to have content/content-type
The HTTP 1.1 spec tells that the 304 response MUST NOT contain a
message body.
Thanks aparajita for the report.
2012-08-22 20:55:24 +02:00
Simon Meers dfe63a52ef Revert "Fixed #18063 -- Avoid unicode in Model.__repr__ in python 2"
This reverts commit 3fce0d2a91.
2012-08-22 11:48:47 +10:00
Claude Paroz 4353a6163c Fixed #18196 -- Improved loaddata error messages. 2012-08-21 21:52:25 +02:00
Anssi Kääriäinen a193372753 Fixed #17886 -- Fixed join promotion in ORed nullable queries
The ORM generated a query with INNER JOIN instead of LEFT OUTER JOIN
in a somewhat complicated case. The main issue was that there was a
chain of nullable FK -> non-nullble FK, and the join promotion logic
didn't see the need to promote the non-nullable FK even if the
previous nullable FK was already promoted to LOUTER JOIN. This resulted
in a query like a LOUTER b INNER c, which incorrectly prunes results.
2012-08-21 21:23:57 +03:00
Aymeric Augustin e89bc39935 Reverted type check added in 62954ba04c.
Refs #17040.
2012-08-21 09:00:55 +02:00
Aymeric Augustin 62954ba04c [py3] Fixed #17040 -- ported django.utils.crypto.constant_time_compare.
This is a private API; adding a type check is acceptable.
2012-08-20 22:50:49 +02:00
Simon Meers 3fce0d2a91 Fixed #18063 -- Avoid unicode in Model.__repr__ in python 2
Thanks guettli and mrmachine.
2012-08-20 16:47:30 +10:00
Aymeric Augustin 9729f77326 Reordered import statements for clarity. 2012-08-19 21:50:07 +02:00
Aymeric Augustin 2f59e94a41 Fixed #18728 -- Made colon optional in tzinfo
Made two-digit hours and minutes mandatory in tzinfo (the code used
to crash if a one-digit representation was provided).

Added standalone tests for django.utils.dateparse.
2012-08-19 21:47:41 +02:00
Aymeric Augustin 536b030363 [py3] Supported integers in HttpResponse
Fixed #18764.
2012-08-19 16:38:21 +02:00
Karen Tracey e945842042 Merge pull request #291 from uruz/ticket18793
Fixed #18793: Removed duplicate test_head_no_get in generic_views.base

Thanks uruz.
2012-08-18 17:12:54 -07:00
Alexey Boriskin f29032eac6 Fixed #18793: Duplicate test test_head_no_get in generic_views.base 2012-08-19 01:04:08 +04:00
Andrew Godwin 5b09fc8ad2 Merge pull request #288 from mjtamlyn/date-list-period
Fixed #3542 -- Add support for changing granularity on ArchiveView.
2012-08-18 09:10:52 -07:00
Marc Tamlyn 8d5c11caad Fixed #3542 -- Add support for changing granularity on ArchiveView.
Resolving the concept from a very old ticket in a more class-based-view
manner.
2012-08-18 17:03:57 +01:00
Aymeric Augustin afc1bd7ab8 [py3] Made 212b9826bd Python 3-friendly 2012-08-18 17:51:16 +02:00
Marc Tamlyn f04bb6d798 Fixed #17228 -- params context variable is inconsistent
Remove the params variable from the context and just put the variables
in directly.

This had not been committed previously as the original pattern was used
in the functional generic views and we wanted consistency between them,
but django.views.generic.simple.direct_to_template is now gone so we can
do it 'right'.
2012-08-18 15:07:21 +01:00
Marc Tamlyn 212b9826bd Fixed #14516 -- Extract methods from removetags and slugify template filters
Patch by @jphalip updated to apply, documentation and release notes
added.

I've documented strip_tags as well as remove_tags as the difference
between the two wouldn't be immediately obvious.
2012-08-18 15:07:21 +01:00
Marc Tamlyn 58683e9c82 Fixed #16744 -- Class based view should have the view object in the context
Updated the most recent patch from @claudep to apply again and updated
the documentation location.
2012-08-18 15:07:21 +01:00
Aymeric Augustin 547b181046 [py3] Ported django.utils.safestring.
Backwards compatibility aliases were created under Python 2.
2012-08-18 16:04:06 +02:00
Andrew Godwin d3d1e59921 Add a SQlite backend. One test passes! 2012-08-18 14:16:52 +01:00
Andrew Godwin 0b01395108 Test that unique constraints get ported with column rename 2012-08-18 14:00:42 +01:00
Andrew Godwin f7955c703d All tests passing on MySQL 2012-08-18 13:48:54 +01:00
Andrew Godwin cab044c66c First stab at MySQL support 2012-08-18 12:29:31 +01:00
Marc Tamlyn bfa9fc69bf Fixed #18779 -- URLValidator can't validate url with ipv6.
Validation is reasonably 'soft', as for the ipv4. False positives don't
matter too much here.
2012-08-18 12:08:44 +01:00
Aymeric Augustin 85e7a5e140 [py3] Stopped attempting to translate bytes.
That goes actively against the goal of cleaning string handling.
2012-08-18 11:36:09 +02:00
Aymeric Augustin c03cf0b096 Cleaned up a test slightly.
We should catch all exceptions in the thread to ensure it doesn't die
with an unhandled exception. The type of the exception is already
checked further in the test.
2012-08-18 11:02:28 +02:00
Aymeric Augustin 6cb76cb140 [py3] Fixed templates tests. 2012-08-18 10:18:24 +02:00
Aymeric Augustin ad11dbf670 [py3] Fixed __unicode__ methods missed in d4a0b278
due to non-standard syntax (a stray comma). Thanks dmishe for the report.
2012-08-17 14:11:23 +02:00
Alex Gaynor 37a894b48c [py3k] Fixed pagination_regress tests. 2012-08-16 10:54:45 -04:00
Aymeric Augustin fcc8de0598 [py3] Ported django.core.servers. 2012-08-16 13:01:16 +02:00
Aymeric Augustin 8c356acf2e [py3] Fixed test_utils tests of doctests. 2012-08-16 10:26:18 +02:00
Aymeric Augustin e98cb05edf [py3] Fixed the str tests.
These tests don't look very meaningful. They were ported from
doctests...
2012-08-16 09:44:42 +02:00
Alex Gaynor befa1dd7a5 Fixed the generic_inline_admin tests for python3. 2012-08-15 23:12:08 -04:00
Alex Gaynor 0c257f5a23 Fixed the admin_changelist tests for python3. 2012-08-15 23:09:01 -04:00
Claude Paroz 24de85c419 [py3] Fixed more encoding issues in cache tests 2012-08-15 22:48:09 +02:00
Claude Paroz 37e05357cd Used settings config for memcached tests.
By using settings config, we take advantage of custom settings like
KEY_PREFIX which allows for example to run tests in parallel.
2012-08-15 22:48:09 +02:00
Aymeric Augustin f7c2e82d76 [py3] Fixed middleware tests.
Removed several inappropriate .encode('utf-8') calls in the process.
2012-08-15 22:42:18 +02:00
Claude Paroz 60f5e10230 [py3] Fixed dispatch tests 2012-08-15 18:19:21 +02:00
Claude Paroz 27192564c3 Run memcache tests if any cache is configured 2012-08-15 18:07:03 +02:00
Claude Paroz a9facb455f [py3] Fix some more encoding issues in tests 2012-08-15 17:41:38 +02:00
Claude Paroz 607665a396 [py3] Fixed bad unicode test 2012-08-15 16:40:12 +02:00
Florian Apolloner 0ab570217a [py3] Fixed paginator tests. 2012-08-15 14:58:43 +02:00
Florian Apolloner c1584890b1 [py3] Properly encode hashlib.md5 and zip.compress args in the tests. 2012-08-15 14:29:40 +02:00
Anssi Kääriäinen 5d01f3caea [py3] Removed map() calls used for side-effects only 2012-08-15 13:23:41 +03:00
Alex Gaynor 814fde32d9 Made the validation tests python3 friendly. 2012-08-15 03:02:32 -07:00
Alex Gaynor ea1e8b38b3 Ensured that the archive module consistantly explicitly closed all files. 2012-08-15 02:53:40 -07:00
Alex Gaynor ca6015ca71 Close files in the module_loading tests always. 2012-08-15 02:47:02 -07:00
Alex Gaynor fc99f127d8 Explicitly close a file during the email tests. 2012-08-15 02:16:28 -07:00
Alex Gaynor dfbcbf2124 Always close files in the file_storage tests. 2012-08-15 02:05:03 -07:00
Claude Paroz e0d67f3440 [py3] Fixed test_client_regress tests 2012-08-15 10:58:26 +02:00
Alex Gaynor cca01c96d1 Converted the modeladmin tests to run on python 2 and 3. 2012-08-15 01:46:31 -07:00
Alex Gaynor 54afdbf378 Fixed usage of several deprecated aliases in unittest. 2012-08-15 01:38:04 -07:00
Alex Gaynor 2048bbee8c Explicitly close files in the staticfiles tests. 2012-08-15 01:25:01 -07:00
Alex Gaynor c7734491f8 Use a name that exists in both python2 and 3, 2012-08-15 01:13:09 -07:00
Aymeric Augustin e0ec7507ac [py3] Fixed jsi18n test.
Also refactored said test to avoid leaking state (ie. active
translation) when an error occurs.
2012-08-15 09:45:28 +02:00
Aymeric Augustin 478a69314e [py3] Fixed uses of __metaclass__ in tests. 2012-08-15 00:31:29 +02:00
Chris Lawlor 450c0df653 [py3] Fixed modeltests.model_forms tests. 2012-08-14 23:46:23 +02:00
Claude Paroz 928baee747 [py3] Fixed conditional_processing tests 2012-08-14 23:35:12 +02:00
Claude Paroz 0120985095 [py3] Fixed file_uploads tests 2012-08-14 23:35:12 +02:00
Florian Apolloner 367bfaa522 Don't swallow AttributeError in core.urlresolvers.get_callable. 2012-08-14 21:23:25 +02:00
Claude Paroz f2fe7a3e36 [py3] Fixed serializers tests 2012-08-14 19:54:53 +02:00
Claude Paroz 7d48e077b5 [py3] Fixed staticfiles tests 2012-08-14 17:24:31 +02:00
Claude Paroz c2d59e5564 [py3] Fixed admin_views tests
Also changed several occurrences of 'request' to 'response'.
2012-08-14 14:45:28 +02:00
Aymeric Augustin d6b8b125fb [py3] Fixed admin_custom_urls tests. 2012-08-14 14:38:23 +02:00
Anssi Kääriäinen 5b27e6f64b [py3] Fixed comparison of list and range()
A test compared list directly against a range(). This is py3
incompatible. Fixed by using list(range()).
2012-08-14 15:28:55 +03:00
Anssi Kääriäinen 8fe03865f7 [py3] Fixed invalid use of dict.items()
An ordering test had two problems related to dict.items() usage:
  - It assumed the order of the dict was non-randomized
  - It indexed to the dict.items() which is py3 incompatible.

I fixed the test by using dict['rank'] directly, where rank is the
column tested on the values queryset.
2012-08-14 15:24:43 +03:00
Aymeric Augustin dcf72835e3 [py3] Ensured the template tests run. 2012-08-14 12:29:53 +02:00
Aymeric Augustin faf570df18 [py3] Compared response.content with bytes. 2012-08-14 12:29:53 +02:00
Aymeric Augustin e04230e2e4 [py3] Ported django.http according to PEP 3333.
Perfomed some style cleanup while I was in the area.
2012-08-14 10:32:16 +02:00
Claude Paroz 45baaabafb [py3] Fixed encoding issues in cache key generation 2012-08-13 12:56:59 +02:00
Claude Paroz d774ad752d [py3] Made csrf context processor return Unicode 2012-08-13 11:54:21 +02:00
Claude Paroz 73f0f18c8f [py3] Fixed admin_scripts tests 2012-08-13 10:58:21 +02:00
Claude Paroz 6d68022a27 [py3] Removed filename encoding in file_uploads test 2012-08-13 09:56:14 +02:00
Andrei Antoukh 99321e30ce Fixed #18306 -- Made deferred models issue update_fields on save
Deferred models now automatically update only the fields which are
loaded from the db (with .only() or .defer()). In addition, any field
set manually after the load is updated on save.
2012-08-12 22:39:27 +03:00
Anssi Kääriäinen 59a655988e Fixed #13844 -- Avoid converting unknown db values to float
This patch removes an unconditional float(value) conversion from db
backend default convert_values() method. This can cause problems when
aggregating over character fields for example. In addition, Oracle
and SQLite already return the bare value from their convert_values().

In the long term the converting should be done by fields, and the
fields should then call database backend specific converters when
needed. The current setup is inflexible for 3rd party fields.

Thanks to Merlijn van Deen for the original patch.
2012-08-12 21:52:52 +03:00
Karen Tracey 49bb72c403 [py3] Made exception examination py3-compatible. 2012-08-12 12:08:58 -04:00
Aymeric Augustin d4a0b27838 [py3] Refactored __unicode__ to __str__.
* Renamed the __unicode__ methods
* Applied the python_2_unicode_compatible decorator
* Removed the StrAndUnicode mix-in that is superseded by
  python_2_unicode_compatible
* Kept the __unicode__ methods in classes that specifically
  test it under Python 2
2012-08-12 14:44:40 +02:00
Aymeric Augustin e7e08fd48b [py3] Replaced some __str__ methods by __unicode__
These methods actually return unicode.
2012-08-12 14:44:40 +02:00
Aymeric Augustin 2bb2eecb63 [py3] Removed redundant __str__ methods.
These classes already have an identical __unicode__ method, which
will be used after an upcoming refactoring.
2012-08-12 14:44:40 +02:00
Karen Tracey 759ae3c2da Fixed #18739 -- witdthratio behavior on None args
Made behavior given None consistent with how non-numerics were handled.
Thanks to ja.geb@me.com for the report.
2012-08-11 19:24:18 -04:00
Karen Tracey be7f1099c6 Decorated some tests that require tz support.
This allows the test suite to run without errors on Windows.
2012-08-11 17:32:24 -04:00
Claude Paroz 6602103338 [py3] Various minor syntax fixes in the test suite 2012-08-11 23:23:31 +02:00
Claude Paroz 3eb28d0119 [py3] Used six.StringIO to simulate stdout buffer in tests 2012-08-11 18:56:14 +02:00
Claude Paroz 97fe70d30b [py3] Used BytesIO to test request streams 2012-08-11 11:11:20 +02:00
Claude Paroz 92b2dec918 [py3] Made signing infrastructure pass tests with Python 3 2012-08-10 18:07:46 +02:00
Andrew Godwin 60873ea2ad Add db_table and db_tablespace handling 2012-08-10 15:03:18 +01:00
Andrew Godwin 184cf9ab79 Merge branch 'master' into schema-alteration 2012-08-10 12:40:37 +01:00
Andrew Godwin c4b2a3262c Add support for unique_together 2012-08-10 12:38:18 +01:00
Claude Paroz 751774c29f [py3] Fixed mail tests with Python 3 2012-08-09 20:13:29 +02:00
Claude Paroz 96a6912ec5 [py3] Fixed compilemessages tests 2012-08-08 23:40:20 +02:00
Alex Gaynor 0955d16a16 Switched to using the standard method for comparing querysets in teh templates. 2012-08-08 07:50:59 -07:00
Aymeric Augustin 396357741b [py3] Used compatible imports of StringIO. 2012-08-08 14:50:01 +02:00
Alex Gaynor 46cc530fad Fix a test that relied on an exception outliving the `except` block, which doesn't happen on py3k. 2012-08-07 07:22:25 -07:00
Aymeric Augustin fe8484efda [py3] Ported django.utils.functional. 2012-08-07 12:00:23 +02:00
Aymeric Augustin 02e6b6409b [py3] Ported django.utils.decorators. 2012-08-07 12:00:23 +02:00