#22683: Schema tests and .extra queryset method
-------------------------------------+-------------------------------------
     Reporter:  maxi                 |                    Owner:  nobody
         Type:                       |                   Status:  new
  Cleanup/optimization               |                  Version:
    Component:  Migrations           |  1.7-beta-2
     Severity:  Normal               |               Resolution:
     Keywords:                       |             Triage Stage:  Accepted
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Changes (by shai):

 * needs_better_patch:   => 0
 * needs_tests:   => 0
 * version:  1.6 => 1.7-beta-2
 * needs_docs:   => 0
 * type:  Uncategorized => Cleanup/optimization
 * stage:  Unreviewed => Accepted


Old description:

> Running schema tests I caught an issue, more precisely, in
> test_add_field_default_transform.
> At the end, this test method is doing:
>
> self.assertEqual(Author.objects.extra(where=["thing = 1"]).count(), 2)
>
> The problem here is what in this where clause, the "thing" field must be
> quoted.
>
> In firebird :
>
>     SELECT * FROM AUTHOR WHERE thing = 1   <-- Here thing (in lowercase)
> and THING (in uppercase) are equivalent, are the same object
>
> is different of:
>
>     SELECT * FROM AUTHOR WHERE "thing" = 1   <--  field is quoted
>
> For a more generic test I think we need to avoid use .extra method or
> another raw sql statement.
>
> For a more complete discussion about it, see at
> https://groups.google.com/forum/?hl=es#!topic/django-
> developers/KRHD77KlZ28

New description:

 Running schema tests I caught an issue, more precisely, in
 `test_add_field_default_transform`.
 At the end, this test method is doing:
 {{{#!python
 self.assertEqual(Author.objects.extra(where=["thing = 1"]).count(), 2)
 }}}
 The problem here is what in this where clause, the "thing" field must be
 quoted.

 In firebird :
 {{{#!sql
     SELECT * FROM AUTHOR WHERE thing = 1   -- Here thing (in lowercase)
 and THING (in uppercase) are equivalent, are the same object
 }}}
 is different of:
 {{{#!sql
     SELECT * FROM AUTHOR WHERE "thing" = 1   --  field is quoted
 }}}
 For a more generic test I think we need to avoid use .extra method or
 another raw sql statement.

 For a more complete discussion about it, see at
 https://groups.google.com/forum/?hl=es#!topic/django-
 developers/KRHD77KlZ28

--

Comment:

 Added some formatting to description.

 We should be able to get rid of the raw sql there, since the model has the
 added column.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/22683#comment:1>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/062.939ace25f91930c89ea8a42178cf8593%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to