Skip to content

Commit b407269

Browse files
committed
add skips for expressions tests
1 parent 1f5ffa0 commit b407269

File tree

2 files changed

+81
-8
lines changed

2 files changed

+81
-8
lines changed

.github/workflows/test-python.yml

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -76,14 +76,7 @@ jobs:
7676
datetimes
7777
db_functions
7878
empty
79-
expressions.tests.BasicExpressionsTests.test_ticket_11722_iexact_lookup
80-
expressions.tests.BasicExpressionsTests.test_ticket_16731_startswith_lookup
81-
expressions.tests.ExpressionOperatorTests
82-
expressions.tests.ExpressionsTests.test_insensitive_patterns_escape
83-
expressions.tests.ExpressionsTests.test_patterns_escape
84-
expressions.tests.FieldTransformTests.test_transform_in_values
85-
expressions.tests.FTimeDeltaTests.test_date_minus_duration
86-
expressions.tests.NegatedExpressionTests
79+
expressions
8780
expressions_case
8881
defer
8982
defer_regress

django_mongodb/features.py

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ class DatabaseFeatures(BaseDatabaseFeatures):
1212
supports_json_field_contains = False
1313
# BSON Date type doesn't support microsecond precision.
1414
supports_microsecond_precision = False
15+
supports_temporal_subtraction = True
1516
# MongoDB stores datetimes in UTC.
1617
supports_timezones = False
1718
# Not implemented: https://github.com/mongodb-labs/django-mongodb/issues/7
@@ -34,6 +35,8 @@ class DatabaseFeatures(BaseDatabaseFeatures):
3435
"db_functions.tests.FunctionTests.test_nested_function_ordering",
3536
"db_functions.text.test_length.LengthTests.test_ordering",
3637
"db_functions.text.test_strindex.StrIndexTests.test_order_by",
38+
"expressions.tests.BasicExpressionsTests.test_order_by_exists",
39+
"expressions.tests.BasicExpressionsTests.test_order_by_multiline_sql",
3740
"expressions_case.tests.CaseExpressionTests.test_order_by_conditional_explicit",
3841
"lookup.tests.LookupQueryingTests.test_lookup_in_order_by",
3942
"ordering.tests.OrderingTests.test_default_ordering_by_f_expression",
@@ -62,6 +65,9 @@ class DatabaseFeatures(BaseDatabaseFeatures):
6265
# pk__in=queryset doesn't work because subqueries aren't a thing in
6366
# MongoDB.
6467
"annotations.tests.NonAggregateAnnotationTestCase.test_annotation_and_alias_filter_in_subquery",
68+
"expressions.tests.BasicExpressionsTests.test_in_subquery",
69+
"expressions.tests.BasicExpressionsTests.test_subquery_group_by_outerref_in_filter",
70+
"expressions.tests.BasicExpressionsTests.test_uuid_pk_subquery",
6571
"model_fields.test_jsonfield.TestQuerying.test_usage_in_subquery",
6672
# Length of null considered zero rather than null.
6773
"db_functions.text.test_length.LengthTests.test_basic",
@@ -70,7 +76,20 @@ class DatabaseFeatures(BaseDatabaseFeatures):
7076
"model_fields.test_jsonfield.TestQuerying.test_order_grouping_custom_decoder",
7177
"model_fields.test_jsonfield.TestQuerying.test_ordering_by_transform",
7278
"model_fields.test_jsonfield.TestQuerying.test_ordering_grouping_by_key_transform",
79+
# DatabaseOperations.convert_decimalfield_value() crash:
80+
# 'int' object has no attribute 'to_decimal'.
81+
"expressions.tests.ExpressionsNumericTests.test_filter_decimal_expression",
82+
"expressions.tests.ValueTests.test_output_field_decimalfield",
83+
# pymongo.errors.OperationFailure: $multiply only supports numeric
84+
# types, not date. (should be wrapped in DatabaseError).
85+
"expressions.tests.FTimeDeltaTests.test_invalid_operator",
86+
# InvalidDocument: cannot encode object of type: <class 'datetime.time'>
87+
"expressions.tests.FTimeDeltaTests.test_time_subtraction",
88+
# crash in DatabaseOperations.convert_durationfield_value():
89+
# unsupported type for timedelta milliseconds component: Decimal128
90+
"expressions.tests.FTimeDeltaTests.test_durationfield_multiply_divide",
7391
}
92+
7493
# $bitAnd, #bitOr, and $bitXor are new in MongoDB 6.3.
7594
_django_test_expected_failures_bitwise = {
7695
"expressions.tests.ExpressionOperatorTests.test_lefthand_bitwise_and",
@@ -93,6 +112,10 @@ def django_test_expected_failures(self):
93112
"Insert expressions aren't supported.": {
94113
"bulk_create.tests.BulkCreateTests.test_bulk_insert_now",
95114
"bulk_create.tests.BulkCreateTests.test_bulk_insert_expressions",
115+
"expressions.tests.BasicExpressionsTests.test_new_object_create",
116+
"expressions.tests.BasicExpressionsTests.test_new_object_save",
117+
"expressions.tests.BasicExpressionsTests.test_object_create_with_aggregate",
118+
"expressions.tests.BasicExpressionsTests.test_object_create_with_f_expression_in_subquery",
96119
# PI()
97120
"db_functions.math.test_round.RoundTests.test_decimal_with_precision",
98121
"db_functions.math.test_round.RoundTests.test_float_with_precision",
@@ -117,6 +140,21 @@ def django_test_expected_failures(self):
117140
"db_functions.text.test_replace.ReplaceTests.test_update",
118141
"db_functions.text.test_substr.SubstrTests.test_basic",
119142
"db_functions.text.test_upper.UpperTests.test_basic",
143+
"expressions.tests.BasicExpressionsTests.test_arithmetic",
144+
"expressions.tests.BasicExpressionsTests.test_filter_with_join",
145+
"expressions.tests.BasicExpressionsTests.test_object_update",
146+
"expressions.tests.BasicExpressionsTests.test_object_update_unsaved_objects",
147+
"expressions.tests.BasicExpressionsTests.test_order_of_operations",
148+
"expressions.tests.BasicExpressionsTests.test_parenthesis_priority",
149+
"expressions.tests.BasicExpressionsTests.test_update",
150+
"expressions.tests.BasicExpressionsTests.test_update_with_fk",
151+
"expressions.tests.BasicExpressionsTests.test_update_with_none",
152+
"expressions.tests.ExpressionsNumericTests.test_decimal_expression",
153+
"expressions.tests.ExpressionsNumericTests.test_increment_value",
154+
"expressions.tests.FTimeDeltaTests.test_delta_update",
155+
"expressions.tests.FTimeDeltaTests.test_negative_timedelta_update",
156+
"expressions.tests.ValueTests.test_update_TimeField_using_Value",
157+
"expressions.tests.ValueTests.test_update_UUIDField_using_Value",
120158
"expressions_case.tests.CaseDocumentationExamples.test_conditional_update_example",
121159
"expressions_case.tests.CaseExpressionTests.test_update",
122160
"expressions_case.tests.CaseExpressionTests.test_update_big_integer",
@@ -215,13 +253,25 @@ def django_test_expected_failures(self):
215253
"expressions_case.tests.CaseExpressionTests.test_aggregate_with_expression_as_value",
216254
"expressions_case.tests.CaseExpressionTests.test_aggregation_empty_cases",
217255
"lookup.tests.LookupQueryingTests.test_aggregate_combined_lookup",
256+
"expressions.test_queryset_values.ValuesExpressionsTests.test_chained_values_with_expression",
257+
"expressions.test_queryset_values.ValuesExpressionsTests.test_values_expression_group_by",
218258
"from_db_value.tests.FromDBValueTest.test_aggregation",
219259
"timezones.tests.LegacyDatabaseTests.test_query_aggregation",
220260
"timezones.tests.NewDatabaseTests.test_query_aggregation",
221261
},
222262
"QuerySet.annotate() has some limitations.": {
223263
# Exists not supported.
224264
"annotations.tests.NonAggregateAnnotationTestCase.test_annotation_exists_none_query",
265+
"expressions.tests.BasicExpressionsTests.test_annotation_with_deeply_nested_outerref",
266+
"expressions.tests.BasicExpressionsTests.test_boolean_expression_combined",
267+
"expressions.tests.BasicExpressionsTests.test_boolean_expression_combined_with_empty_Q",
268+
"expressions.tests.BasicExpressionsTests.test_boolean_expression_in_Q",
269+
"expressions.tests.BasicExpressionsTests.test_case_in_filter_if_boolean_output_field",
270+
"expressions.tests.BasicExpressionsTests.test_exists_in_filter",
271+
"expressions.tests.ExistsTests.test_filter_by_empty_exists",
272+
"expressions.tests.ExistsTests.test_negated_empty_exists",
273+
"expressions.tests.ExistsTests.test_optimizations",
274+
"expressions.tests.ExistsTests.test_select_negated_empty_exists",
225275
"lookup.tests.LookupTests.test_exact_exists",
226276
"lookup.tests.LookupTests.test_nested_outerref_lhs",
227277
"lookup.tests.LookupQueryingTests.test_filter_exists_lhs",
@@ -235,16 +285,35 @@ def django_test_expected_failures(self):
235285
"db_functions.comparison.test_coalesce.CoalesceTests.test_empty_queryset",
236286
"db_functions.datetime.test_extract_trunc.DateFunctionTests.test_extract_outerref",
237287
"db_functions.datetime.test_extract_trunc.DateFunctionTests.test_trunc_subquery_with_parameters",
288+
"expressions.tests.BasicExpressionsTests.test_aggregate_subquery_annotation",
289+
"expressions.tests.BasicExpressionsTests.test_annotation_with_nested_outerref",
290+
"expressions.tests.BasicExpressionsTests.test_annotation_with_outerref",
291+
"expressions.tests.BasicExpressionsTests.test_annotations_within_subquery",
292+
"expressions.tests.BasicExpressionsTests.test_nested_subquery",
293+
"expressions.tests.BasicExpressionsTests.test_nested_subquery_join_outer_ref",
294+
"expressions.tests.BasicExpressionsTests.test_nested_subquery_outer_ref_2",
295+
"expressions.tests.BasicExpressionsTests.test_nested_subquery_outer_ref_with_autofield",
296+
"expressions.tests.BasicExpressionsTests.test_nested_outerref_with_function",
297+
"expressions.tests.BasicExpressionsTests.test_subquery",
298+
"expressions.tests.BasicExpressionsTests.test_subquery_filter_by_aggregate",
299+
"expressions.tests.BasicExpressionsTests.test_subquery_filter_by_lazy",
300+
"expressions.tests.BasicExpressionsTests.test_subquery_in_filter",
301+
"expressions.tests.BasicExpressionsTests.test_subquery_references_joined_table_twice",
238302
"expressions_case.tests.CaseExpressionTests.test_in_subquery",
239303
"lookup.tests.LookupQueryingTests.test_filter_subquery_lhs",
240304
"model_fields.test_jsonfield.TestQuerying.test_nested_key_transform_on_subquery",
241305
"model_fields.test_jsonfield.TestQuerying.test_obj_subquery_lookup",
306+
# 'Query' object has no attribute 'as_mql'
307+
"expressions.tests.FTimeDeltaTests.test_date_subquery_subtraction",
308+
"expressions.tests.FTimeDeltaTests.test_datetime_subquery_subtraction",
309+
"expressions.tests.FTimeDeltaTests.test_time_subquery_subtraction",
242310
# Invalid $project :: caused by :: Unknown expression $count,
243311
"annotations.tests.NonAggregateAnnotationTestCase.test_combined_expression_annotation_with_aggregation",
244312
"annotations.tests.NonAggregateAnnotationTestCase.test_combined_f_expression_annotation_with_aggregation",
245313
"annotations.tests.NonAggregateAnnotationTestCase.test_full_expression_annotation_with_aggregation",
246314
"annotations.tests.NonAggregateAnnotationTestCase.test_grouping_by_q_expression_annotation",
247315
"annotations.tests.NonAggregateAnnotationTestCase.test_q_expression_annotation_with_aggregation",
316+
"expressions.tests.FieldTransformTests.test_month_aggregation",
248317
"expressions_case.tests.CaseDocumentationExamples.test_conditional_aggregation_example",
249318
# Func not implemented.
250319
"annotations.tests.NonAggregateAnnotationTestCase.test_custom_functions",
@@ -322,6 +391,14 @@ def django_test_expected_failures(self):
322391
"defer.tests.DeferTests.test_only_baseclass_when_subclass_has_no_added_fields",
323392
"defer.tests.TestDefer2.test_defer_inheritance_pk_chaining",
324393
"defer_regress.tests.DeferRegressionTest.test_ticket_16409",
394+
"expressions.test_queryset_values.ValuesExpressionsTests.test_values_expression",
395+
"expressions.test_queryset_values.ValuesExpressionsTests.test_values_list_expression",
396+
"expressions.test_queryset_values.ValuesExpressionsTests.test_values_list_expression_flat",
397+
"expressions.tests.BasicExpressionsTests.test_annotate_values_aggregate",
398+
"expressions.tests.BasicExpressionsTests.test_outerref_mixed_case_table_name",
399+
"expressions.tests.BasicExpressionsTests.test_outerref_with_operator",
400+
"expressions.tests.IterableLookupInnerExpressionsTests.test_expressions_in_lookups_join_choice",
401+
"expressions.tests.IterableLookupInnerExpressionsTests.test_in_lookup_allows_F_expressions_and_expressions_for_datetimes",
325402
"expressions_case.tests.CaseExpressionTests.test_annotate_with_aggregation_in_condition",
326403
"expressions_case.tests.CaseExpressionTests.test_annotate_with_aggregation_in_predicate",
327404
"expressions_case.tests.CaseExpressionTests.test_annotate_with_aggregation_in_value",
@@ -378,6 +455,8 @@ def django_test_expected_failures(self):
378455
},
379456
"Test executes raw SQL.": {
380457
"annotations.tests.NonAggregateAnnotationTestCase.test_raw_sql_with_inherited_field",
458+
"expressions.tests.BasicExpressionsTests.test_annotate_values_filter",
459+
"expressions.tests.BasicExpressionsTests.test_filtering_on_rawsql_that_is_boolean",
381460
"model_fields.test_jsonfield.TestQuerying.test_key_sql_injection_escape",
382461
"model_fields.test_jsonfield.TestQuerying.test_key_transform_raw_expression",
383462
"model_fields.test_jsonfield.TestQuerying.test_nested_key_transform_raw_expression",
@@ -417,6 +496,7 @@ def django_test_expected_failures(self):
417496
"db_functions.datetime.test_extract_trunc.DateFunctionTests.test_trunc_date_func",
418497
"db_functions.datetime.test_extract_trunc.DateFunctionTests.test_trunc_date_none",
419498
"db_functions.datetime.test_extract_trunc.DateFunctionTests.test_trunc_lookup_name_sql_injection",
499+
"expressions.tests.FieldTransformTests.test_multiple_transforms_in_values",
420500
"model_fields.test_datetimefield.DateTimeFieldTests.test_lookup_date_with_use_tz",
421501
"model_fields.test_datetimefield.DateTimeFieldTests.test_lookup_date_without_use_tz",
422502
"timezones.tests.NewDatabaseTests.test_query_convert_timezones",

0 commit comments

Comments
 (0)