@@ -7,6 +7,8 @@ class DatabaseFeatures(BaseDatabaseFeatures):
7
7
supports_ignore_conflicts = False
8
8
# Not implemented: https://github.com/mongodb-labs/django-mongodb/issues/8
9
9
supports_json_field = False
10
+ # BSON Date type doesn't support microsecond precision
11
+ supports_microsecond_precision = False
10
12
# MongoDB stores datetimes in UTC.
11
13
supports_timezones = False
12
14
# Not implemented: https://github.com/mongodb-labs/django-mongodb/issues/7
@@ -17,19 +19,10 @@ class DatabaseFeatures(BaseDatabaseFeatures):
17
19
# Database defaults not supported: bson.errors.InvalidDocument:
18
20
# cannot encode object: <django.db.models.expressions.DatabaseDefault
19
21
"basic.tests.ModelInstanceCreationTests.test_save_primary_with_db_default" ,
20
- # Date lookups aren't implemented: https://github.com/mongodb-labs/django-mongodb/issues/9
21
- # (e.g. ExtractWeekDay is not supported.)
22
- "basic.tests.ModelLookupTest.test_does_not_exist" ,
23
- "basic.tests.ModelLookupTest.test_equal_lookup" ,
24
- "basic.tests.ModelLookupTest.test_rich_lookup" ,
25
- "lookup.tests.LookupTests.test_chain_date_time_lookups" ,
26
- "lookup.test_timefield.TimeFieldLookupTests.test_hour_lookups" ,
27
- "lookup.test_timefield.TimeFieldLookupTests.test_minute_lookups" ,
28
- "lookup.test_timefield.TimeFieldLookupTests.test_second_lookups" ,
29
- "timezones.tests.LegacyDatabaseTests.test_query_datetime_lookups" ,
22
+ # TruncDate isn't implemented.
30
23
"timezones.tests.NewDatabaseTests.test_query_convert_timezones" ,
31
- "timezones.tests.NewDatabaseTests.test_query_datetime_lookups" ,
32
- "timezones .tests.NewDatabaseTests.test_query_datetime_lookups_in_other_timezone " ,
24
+ # Query for chained looksup not generated correctly.
25
+ "lookup .tests.LookupTests.test_chain_date_time_lookups " ,
33
26
# 'NulledTransform' object has no attribute 'as_mql'.
34
27
"lookup.tests.LookupTests.test_exact_none_transform" ,
35
28
# "Save with update_fields did not affect any rows."
@@ -60,6 +53,8 @@ class DatabaseFeatures(BaseDatabaseFeatures):
60
53
"db_functions.math.test_log.LogTests.test_decimal" ,
61
54
# MongoDB gives ROUND(365, -1)=360 instead of 370 like other databases.
62
55
"db_functions.math.test_round.RoundTests.test_integer_with_negative_precision" ,
56
+ # Wrong result truncating in other time zone.
57
+ "db_functions.datetime.test_extract_trunc.DateFunctionWithTimeZoneTests.test_trunc_timezone_applied_before_truncation" ,
63
58
}
64
59
65
60
django_test_skips = {
@@ -169,6 +164,8 @@ class DatabaseFeatures(BaseDatabaseFeatures):
169
164
"lookup.tests.LookupQueryingTests.test_filter_lookup_lhs" ,
170
165
# Subquery not supported.
171
166
"annotations.tests.NonAggregateAnnotationTestCase.test_empty_queryset_annotation" ,
167
+ "db_functions.datetime.test_extract_trunc.DateFunctionTests.test_extract_outerref" ,
168
+ "db_functions.datetime.test_extract_trunc.DateFunctionTests.test_trunc_subquery_with_parameters" ,
172
169
"lookup.tests.LookupQueryingTests.test_filter_subquery_lhs" ,
173
170
# ExpressionWrapper not supported.
174
171
"annotations.tests.NonAggregateAnnotationTestCase.test_combined_expression_annotation_with_aggregation" ,
@@ -204,6 +201,11 @@ class DatabaseFeatures(BaseDatabaseFeatures):
204
201
"annotations.tests.AliasTests.test_order_by_alias" ,
205
202
"annotations.tests.NonAggregateAnnotationTestCase.test_order_by_aggregate" ,
206
203
"annotations.tests.NonAggregateAnnotationTestCase.test_order_by_annotation" ,
204
+ # annotate().filter().count() gives incorrect results.
205
+ "db_functions.datetime.test_extract_trunc.DateFunctionTests.test_extract_year_exact_lookup" ,
206
+ # Year lookup + lt/gt crashes: 'dict' object has no attribute 'startswith'
207
+ "db_functions.datetime.test_extract_trunc.DateFunctionTests.test_extract_year_greaterthan_lookup" ,
208
+ "db_functions.datetime.test_extract_trunc.DateFunctionTests.test_extract_year_lessthan_lookup" ,
207
209
},
208
210
"Count doesn't work in QuerySet.annotate()" : {
209
211
"annotations.tests.AliasTests.test_alias_annotate_with_aggregation" ,
@@ -292,14 +294,22 @@ class DatabaseFeatures(BaseDatabaseFeatures):
292
294
"timezones.tests.NewDatabaseTests.test_cursor_explicit_time_zone" ,
293
295
"timezones.tests.NewDatabaseTests.test_raw_sql" ,
294
296
},
295
- "BSON Date type doesn't support microsecond precision." : {
296
- "basic.tests.ModelRefreshTests.test_refresh_unsaved" ,
297
- "basic.tests.ModelTest.test_microsecond_precision" ,
298
- "timezones.tests.LegacyDatabaseTests.test_auto_now_and_auto_now_add" ,
299
- "timezones.tests.LegacyDatabaseTests.test_aware_datetime_in_local_timezone_with_microsecond" ,
300
- "timezones.tests.LegacyDatabaseTests.test_naive_datetime_with_microsecond" ,
301
- "timezones.tests.NewDatabaseTests.test_aware_datetime_in_local_timezone_with_microsecond" ,
302
- "timezones.tests.NewDatabaseTests.test_naive_datetime_with_microsecond" ,
297
+ "ExtractQuarter not supported." : {
298
+ "db_functions.datetime.test_extract_trunc.DateFunctionTests.test_extract_quarter_func" ,
299
+ "db_functions.datetime.test_extract_trunc.DateFunctionTests.test_extract_quarter_func_boundaries" ,
300
+ },
301
+ "TruncDate (datetime to date) not supported." : {
302
+ "db_functions.datetime.test_extract_trunc.DateFunctionTests.test_trunc_date_func" ,
303
+ "db_functions.datetime.test_extract_trunc.DateFunctionTests.test_trunc_date_none" ,
304
+ "db_functions.datetime.test_extract_trunc.DateFunctionTests.test_trunc_lookup_name_sql_injection" ,
305
+ },
306
+ "TruncTime (datetime to time) not supported." : {
307
+ "db_functions.datetime.test_extract_trunc.DateFunctionTests.test_trunc_time_comparison" ,
308
+ "db_functions.datetime.test_extract_trunc.DateFunctionTests.test_trunc_time_func" ,
309
+ "db_functions.datetime.test_extract_trunc.DateFunctionTests.test_trunc_time_none" ,
310
+ },
311
+ "No Now() database function in MongoDB." : {
312
+ "db_functions.datetime.test_now.NowTests" ,
303
313
},
304
314
"Transform not supported." : {
305
315
"db_functions.math.test_abs.AbsTests.test_transform" ,
0 commit comments