summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAymeric Augustin <aymeric.augustin@oscaro.com>2014-06-06 00:29:24 +0200
committerAymeric Augustin <aymeric.augustin@oscaro.com>2014-06-06 00:31:22 +0200
commitc9aedce01ae54f26d612b070ded57d2cb3eb8483 (patch)
treede7ec25573c082c9a253e93a11379fe8416988bc
parent1238f92c649ccd4ba99da0ce70be7597c90515d4 (diff)
Replaced an explicit vendor check by a feature flag.
-rw-r--r--django/db/backends/__init__.py3
-rw-r--r--django/db/backends/sqlite3/base.py1
-rw-r--r--tests/inspectdb/tests.py7
3 files changed, 7 insertions, 4 deletions
diff --git a/django/db/backends/__init__.py b/django/db/backends/__init__.py
index e3f6266574..7ce72265d2 100644
--- a/django/db/backends/__init__.py
+++ b/django/db/backends/__init__.py
@@ -683,6 +683,9 @@ class BaseDatabaseFeatures(object):
# Can the backend introspect an BooleanField, instead of an IntegerField?
can_introspect_boolean_field = True
+ # Can the backend introspect an DecimalField, instead of an FloatField?
+ can_introspect_decimal_field = True
+
# Can the backend introspect an IPAddressField, instead of an CharField?
can_introspect_ip_address_field = False
diff --git a/django/db/backends/sqlite3/base.py b/django/db/backends/sqlite3/base.py
index 419b394429..e43ea328bf 100644
--- a/django/db/backends/sqlite3/base.py
+++ b/django/db/backends/sqlite3/base.py
@@ -105,6 +105,7 @@ class DatabaseFeatures(BaseDatabaseFeatures):
supports_foreign_keys = False
supports_check_constraints = False
autocommits_when_autocommit_is_off = True
+ can_introspect_decimal_field = False
can_introspect_positive_integer_field = True
can_introspect_small_integer_field = True
supports_transactions = True
diff --git a/tests/inspectdb/tests.py b/tests/inspectdb/tests.py
index d848c137dc..c0babe390e 100644
--- a/tests/inspectdb/tests.py
+++ b/tests/inspectdb/tests.py
@@ -100,13 +100,12 @@ class InspectDBTestCase(TestCase):
else:
assertFieldType('null_bool_field', "models.IntegerField()")
- if connection.vendor == 'sqlite':
- # Guessed arguments on SQLite, see #5014
+ if connection.features.can_introspect_decimal_field:
+ assertFieldType('decimal_field', "models.DecimalField(max_digits=6, decimal_places=1)")
+ else: # Guessed arguments on SQLite, see #5014
assertFieldType('decimal_field', "models.DecimalField(max_digits=10, decimal_places=5) "
"# max_digits and decimal_places have been guessed, "
"as this database handles decimal fields as float")
- else:
- assertFieldType('decimal_field', "models.DecimalField(max_digits=6, decimal_places=1)")
assertFieldType('float_field', "models.FloatField()")