Opened 11 years ago

Last modified 22 months ago

#19884 closed Bug

Inspectdb on Oracle doesn't produce correct field types — at Version 5

Reported by: Anssi Kääriäinen Owned by: nobody
Component: Database layer (models, ORM) Version: 1.9
Severity: Normal Keywords:
Cc: felisiak.mariusz@… Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by Shai Berger)

The test inspectdb.test_field_types() has multiple errors, at least:

  • CharField lengths not correctly inspected (returns double the length of generated field)
  • FloatField not correctly inspected (returns DecimalField with max_digits=-127)
  • DateTimeField is inspected as TimeField

Getting all these to work correctly will be somewhat hard. So, the suggested short-term fix is to just mark the test as expectedFailure on Oracle. Inspectdb isn't high-priority as the output should be hand-edited in any case.

Change History (5)

comment:1 by Anssi Kääriäinen <akaariai@…>, 11 years ago

In f565c6f9994b2559a5164dc709a926eac7ebd5fe:

Marked a test as expected failure. Refs #19884

comment:2 by Shai Berger <shai@…>, 10 years ago

In ad975c64fcdf3faa67cacd51665c4f95a2c5b060:

Made Oracle introspect boolean fields

Fixed failing test schema.tests.SchemaTests.test_add_field_temp_default_boolean
Refs #19884

comment:3 by Shai Berger, 10 years ago

I just posted PR 2225 which breaks inspectdb.test_field_types() in two: a test_number_field_types() which passes (the PR includes a fix to the FloatField issue), and test_field_types() which does all the rest and is still marked expectedFailure; most of the fields tested there are CharFields under Oracle, so fixing makes little sense indeed.

I would have committed this immediately, except that the breaking of the test method includes some not-entirely-trivial factoring-out of code, and I'd like a second eye on that.

Last edited 10 years ago by Shai Berger (previous) (diff)

comment:4 by Shai Berger <shai@…>, 10 years ago

In e9d12bae1e59e51738c11c492c620f56f96106bf:

Made Oracle introspect FloatFields correctly

Broke InspectDBTestCase.test_field_types in two:

  • a test_number_field_types, which now passes on Oracle too
  • a test_field_types, for all non-numeric fields, which is still expected to fail

Also made some pep8 fixes in the tests file. Refs #19884

Thanks Tim Graham for review.

comment:5 by Shai Berger, 10 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.
Back to Top