Skip to content

Commit c3cae43

Browse files
committed
add test skips for queries tests
1 parent 5830c5a commit c3cae43

File tree

3 files changed

+132
-1
lines changed

3 files changed

+132
-1
lines changed

.github/workflows/test-python.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ jobs:
9696
one_to_one
9797
ordering
9898
or_lookups
99-
queries.tests.Ticket12807Tests.test_ticket_12807
99+
queries
100100
select_related
101101
select_related_onetoone
102102
select_related_regress

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ Migrations for 'admin':
110110

111111
- The following `QuerySet` methods aren't supported:
112112
- `aggregate()`
113+
- `bulk_update()`
113114
- `dates()`
114115
- `datetimes()`
115116
- `delete()`, if the query uses multiple collections.

django_mongodb/features.py

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44

55
class DatabaseFeatures(BaseDatabaseFeatures):
6+
allow_sliced_subqueries_with_in = False
67
greatest_least_ignores_nulls = True
78
has_json_object_function = False
89
has_native_json_field = True
@@ -12,6 +13,10 @@ class DatabaseFeatures(BaseDatabaseFeatures):
1213
supports_json_field_contains = False
1314
# BSON Date type doesn't support microsecond precision.
1415
supports_microsecond_precision = False
16+
supports_select_difference = False
17+
supports_select_intersection = False
18+
# Not implemented: https://github.com/mongodb-labs/django-mongodb/issues/72
19+
supports_select_union = False
1520
supports_temporal_subtraction = True
1621
# MongoDB stores datetimes in UTC.
1722
supports_timezones = False
@@ -60,6 +65,7 @@ class DatabaseFeatures(BaseDatabaseFeatures):
6065
"update.tests.AdvancedTests.test_update_ordered_by_m2m_annotation_desc",
6166
# 'ManyToOneRel' object has no attribute 'column'
6267
"m2m_through.tests.M2mThroughTests.test_order_by_relational_field_through_model",
68+
"queries.tests.Queries4Tests.test_order_by_reverse_fk",
6369
# pymongo: ValueError: update cannot be empty
6470
"update.tests.SimpleTest.test_empty_update_with_inheritance",
6571
"update.tests.SimpleTest.test_nonempty_update_with_inheritance",
@@ -99,6 +105,25 @@ class DatabaseFeatures(BaseDatabaseFeatures):
99105
"ordering.tests.OrderingTests.test_order_by_grandparent_fk_with_expression_in_default_ordering",
100106
"ordering.tests.OrderingTests.test_order_by_parent_fk_with_expression_in_default_ordering",
101107
"ordering.tests.OrderingTests.test_order_by_ptr_field_with_default_ordering_by_expression",
108+
"queries.tests.NullJoinPromotionOrTest.test_isnull_filter_promotion",
109+
"queries.tests.NullJoinPromotionOrTest.test_ticket_21366",
110+
"queries.tests.NullJoinPromotionOrTest.test_ticket_21748",
111+
"queries.tests.Queries1Tests.test_order_by_tables",
112+
"queries.tests.Queries1Tests.test_ticket1050",
113+
"queries.tests.Queries1Tests.test_ticket2400",
114+
"queries.tests.Queries1Tests.test_ticket4358",
115+
"queries.tests.Queries1Tests.test_ticket_10790_1",
116+
"queries.tests.Queries1Tests.test_ticket_10790_4",
117+
"queries.tests.Queries1Tests.test_ticket_10790_6",
118+
"queries.tests.Queries1Tests.test_ticket_10790_7",
119+
"queries.tests.Queries4Tests.test_filter_reverse_non_integer_pk",
120+
"queries.tests.Queries4Tests.test_ticket15316_exclude_false",
121+
"queries.tests.Queries4Tests.test_ticket15316_filter_true",
122+
"queries.tests.Queries4Tests.test_ticket15316_one2one_exclude_false",
123+
"queries.tests.Queries4Tests.test_ticket15316_one2one_filter_true",
124+
"queries.tests.Queries4Tests.test_ticket7095",
125+
"queries.tests.TestTicket24605.test_ticket_24605",
126+
"queries.tests.TestInvalidValuesRelation.test_invalid_values",
102127
# alias().order_by() doesn't work.
103128
"annotations.tests.AliasTests.test_order_by_alias",
104129
"annotations.tests.AliasTests.test_order_by_alias_aggregate",
@@ -107,6 +132,11 @@ class DatabaseFeatures(BaseDatabaseFeatures):
107132
# Querying the reverse side of a foreign key for None returns no
108133
# results: https://github.com/mongodb-labs/django-mongodb/issues/76
109134
"one_to_one.tests.OneToOneTests.test_filter_one_to_one_relations",
135+
# pymongo.errors.OperationFailure: the limit must be positive
136+
"queries.tests.WeirdQuerysetSlicingTests.test_tickets_7698_10202",
137+
# QuerySet.explain() not implemented:
138+
# https://github.com/mongodb-labs/django-mongodb/issues/28
139+
"queries.test_explain.ExplainUnsupportedTests.test_message",
110140
}
111141
# $bitAnd, #bitOr, and $bitXor are new in MongoDB 6.3.
112142
_django_test_expected_failures_bitwise = {
@@ -204,6 +234,8 @@ def django_test_expected_failures(self):
204234
"expressions_case.tests.CaseExpressionTests.test_update_with_expression_as_value",
205235
"expressions_case.tests.CaseExpressionTests.test_update_without_default",
206236
"model_fields.test_integerfield.PositiveIntegerFieldTests.test_negative_values",
237+
"queries.test_bulk_update.BulkUpdateNoteTests",
238+
"queries.test_bulk_update.BulkUpdateTests",
207239
"timezones.tests.NewDatabaseTests.test_update_with_timedelta",
208240
"update.tests.AdvancedTests.test_update_annotated_queryset",
209241
"update.tests.AdvancedTests.test_update_negated_f",
@@ -269,6 +301,7 @@ def django_test_expected_failures(self):
269301
"lookup.test_decimalfield.DecimalFieldLookupTests",
270302
"lookup.tests.LookupQueryingTests.test_aggregate_combined_lookup",
271303
"from_db_value.tests.FromDBValueTest.test_aggregation",
304+
"queries.tests.Queries6Tests.test_col_alias_quoted",
272305
"timezones.tests.LegacyDatabaseTests.test_query_aggregation",
273306
"timezones.tests.LegacyDatabaseTests.test_query_annotation",
274307
"timezones.tests.NewDatabaseTests.test_query_aggregation",
@@ -291,6 +324,31 @@ def django_test_expected_failures(self):
291324
"lookup.tests.LookupTests.test_exact_exists",
292325
"lookup.tests.LookupTests.test_nested_outerref_lhs",
293326
"lookup.tests.LookupQueryingTests.test_filter_exists_lhs",
327+
"queries.tests.ExcludeTest17600.test_exclude_plain",
328+
"queries.tests.ExcludeTest17600.test_exclude_with_q_is_equal_to_plain_exclude_variation",
329+
"queries.tests.ExcludeTest17600.test_exclude_with_q_object_no_distinct",
330+
"queries.tests.ExcludeTests.test_exclude_multivalued_exists",
331+
"queries.tests.ExcludeTests.test_exclude_reverse_fk_field_ref",
332+
"queries.tests.ExcludeTests.test_exclude_with_circular_fk_relation",
333+
"queries.tests.ExcludeTests.test_subquery_exclude_outerref",
334+
"queries.tests.ExcludeTests.test_to_field",
335+
"queries.tests.ForeignKeyToBaseExcludeTests.test_ticket_21787",
336+
"queries.tests.JoinReuseTest.test_inverted_q_across_relations",
337+
"queries.tests.ManyToManyExcludeTest.test_exclude_many_to_many",
338+
"queries.tests.ManyToManyExcludeTest.test_ticket_12823",
339+
"queries.tests.Queries1Tests.test_double_exclude",
340+
"queries.tests.Queries1Tests.test_exclude",
341+
"queries.tests.Queries1Tests.test_exclude_in",
342+
"queries.tests.Queries1Tests.test_excluded_intermediary_m2m_table_joined",
343+
"queries.tests.Queries1Tests.test_nested_exclude",
344+
"queries.tests.Queries4Tests.test_join_reuse_order",
345+
"queries.tests.Queries4Tests.test_ticket24525",
346+
"queries.tests.Queries6Tests.test_tickets_8921_9188",
347+
"queries.tests.Queries6Tests.test_xor_subquery",
348+
"queries.tests.QuerySetBitwiseOperationTests.test_subquery_aliases",
349+
"queries.tests.Ticket20101Tests.test_ticket_20101",
350+
"queries.tests.Ticket20788Tests.test_ticket_20788",
351+
"queries.tests.Ticket22429Tests.test_ticket_22429",
294352
},
295353
"Subquery is not supported on MongoDB.": {
296354
"annotations.tests.NonAggregateAnnotationTestCase.test_annotation_filter_with_subquery",
@@ -335,6 +393,23 @@ def django_test_expected_failures(self):
335393
"model_fields.test_jsonfield.TestQuerying.test_usage_in_subquery",
336394
"one_to_one.tests.OneToOneTests.test_get_prefetch_queryset_warning",
337395
"one_to_one.tests.OneToOneTests.test_rel_pk_subquery",
396+
"queries.tests.CloneTests.test_evaluated_queryset_as_argument",
397+
"queries.tests.DoubleInSubqueryTests.test_double_subquery_in",
398+
"queries.tests.ExcludeTests.test_exclude_subquery",
399+
"queries.tests.NullInExcludeTest.test_null_in_exclude_qs",
400+
"queries.tests.Queries1Tests.test_ticket9985",
401+
"queries.tests.Queries1Tests.test_ticket9997",
402+
"queries.tests.Queries1Tests.test_ticket10742",
403+
"queries.tests.Queries4Tests.test_ticket10181",
404+
"queries.tests.Queries5Tests.test_queryset_reuse",
405+
"queries.tests.QuerySetBitwiseOperationTests.test_conflicting_aliases_during_combine",
406+
"queries.tests.RelabelCloneTest.test_ticket_19964",
407+
"queries.tests.RelatedLookupTypeTests.test_correct_lookup",
408+
"queries.tests.RelatedLookupTypeTests.test_values_queryset_lookup",
409+
"queries.tests.Ticket23605Tests.test_ticket_23605",
410+
"queries.tests.ToFieldTests.test_in_subquery",
411+
"queries.tests.ToFieldTests.test_nested_in_subquery",
412+
"queries.tests.ValuesSubqueryTests.test_values_in_subquery",
338413
},
339414
# Invalid $project :: caused by :: Unknown expression $count
340415
# https://github.com/mongodb-labs/django-mongodb/issues/79
@@ -356,6 +431,11 @@ def django_test_expected_failures(self):
356431
"expressions.tests.FieldTransformTests.test_month_aggregation",
357432
"expressions_case.tests.CaseDocumentationExamples.test_conditional_aggregation_example",
358433
"model_fields.test_jsonfield.TestQuerying.test_ordering_grouping_by_count",
434+
"queries.tests.EmptyQuerySetTests.test_values_subquery",
435+
"queries.tests.Queries1Tests.test_ticket_20250",
436+
"queries.tests.ValuesQuerysetTests.test_named_values_list_expression_with_default_alias",
437+
"queries.tests.WeirdQuerysetSlicingTests.test_empty_sliced_subquery",
438+
"queries.tests.WeirdQuerysetSlicingTests.test_empty_sliced_subquery_exclude",
359439
},
360440
"Cannot use QuerySet.delete() when querying across multiple collections on MongoDB.": {
361441
"delete.tests.FastDeleteTests.test_fast_delete_aggregation",
@@ -379,12 +459,29 @@ def django_test_expected_failures(self):
379459
"datetimes.tests.DateTimesTests.test_datetimes_has_lazy_iterator",
380460
"datetimes.tests.DateTimesTests.test_datetimes_returns_available_dates_for_given_scope_and_given_field",
381461
"datetimes.tests.DateTimesTests.test_related_model_traverse",
462+
"queries.tests.Queries1Tests.test_ticket7155",
463+
"queries.tests.Queries1Tests.test_tickets_7087_12242",
382464
"timezones.tests.LegacyDatabaseTests.test_query_datetimes",
383465
"timezones.tests.NewDatabaseTests.test_query_datetimes",
384466
"timezones.tests.NewDatabaseTests.test_query_datetimes_in_other_timezone",
385467
},
386468
"QuerySet.distinct() is not supported.": {
387469
"lookup.tests.LookupTests.test_lookup_collision_distinct",
470+
"queries.tests.ExcludeTest17600.test_exclude_plain_distinct",
471+
"queries.tests.ExcludeTest17600.test_exclude_with_q_is_equal_to_plain_exclude",
472+
"queries.tests.ExcludeTest17600.test_exclude_with_q_object_distinct",
473+
"queries.tests.ExcludeTests.test_exclude_m2m_through",
474+
"queries.tests.ExistsSql.test_distinct_exists",
475+
"queries.tests.ExistsSql.test_sliced_distinct_exists",
476+
"queries.tests.ExistsSql.test_ticket_18414",
477+
"queries.tests.Queries1Tests.test_ticket4464",
478+
"queries.tests.Queries1Tests.test_ticket7096",
479+
"queries.tests.Queries1Tests.test_ticket7791",
480+
"queries.tests.Queries1Tests.test_tickets_1878_2939",
481+
"queries.tests.Queries1Tests.test_tickets_5321_7070",
482+
"queries.tests.Queries1Tests.test_tickets_5324_6704",
483+
"queries.tests.Queries1Tests.test_tickets_6180_6203",
484+
"queries.tests.Queries6Tests.test_distinct_ordered_sliced_subquery_aggregation",
388485
"update.tests.AdvancedTests.test_update_all",
389486
},
390487
"QuerySet.extra() is not supported.": {
@@ -399,6 +496,18 @@ def django_test_expected_failures(self):
399496
"ordering.tests.OrderingTests.test_extra_ordering",
400497
"ordering.tests.OrderingTests.test_extra_ordering_quoting",
401498
"ordering.tests.OrderingTests.test_extra_ordering_with_table_name",
499+
"queries.tests.EscapingTests.test_ticket_7302",
500+
"queries.tests.Queries5Tests.test_extra_select_literal_percent_s",
501+
"queries.tests.Queries5Tests.test_ticket7256",
502+
"queries.tests.ValuesQuerysetTests.test_extra_multiple_select_params_values_order_by",
503+
"queries.tests.ValuesQuerysetTests.test_extra_select_params_values_order_in_extra",
504+
"queries.tests.ValuesQuerysetTests.test_extra_values",
505+
"queries.tests.ValuesQuerysetTests.test_extra_values_list",
506+
"queries.tests.ValuesQuerysetTests.test_extra_values_order_multiple",
507+
"queries.tests.ValuesQuerysetTests.test_extra_values_order_twice",
508+
"queries.tests.ValuesQuerysetTests.test_flat_extra_values_list",
509+
"queries.tests.ValuesQuerysetTests.test_named_values_list_with_fields",
510+
"queries.tests.ValuesQuerysetTests.test_named_values_list_without_fields",
402511
"select_related.tests.SelectRelatedTests.test_select_related_with_extra",
403512
},
404513
"QuerySet.update() crash: Unrecognized expression '$count'": {
@@ -408,6 +517,7 @@ def django_test_expected_failures(self):
408517
"delete.tests.DeletionTests.test_only_referenced_fields_selected",
409518
"lookup.tests.LookupTests.test_in_ignore_none",
410519
"lookup.tests.LookupTests.test_textfield_exact_null",
520+
"queries.tests.ExistsSql.test_exists",
411521
},
412522
"Test executes raw SQL.": {
413523
"annotations.tests.NonAggregateAnnotationTestCase.test_raw_sql_with_inherited_field",
@@ -417,6 +527,7 @@ def django_test_expected_failures(self):
417527
"model_fields.test_jsonfield.TestQuerying.test_key_sql_injection_escape",
418528
"model_fields.test_jsonfield.TestQuerying.test_key_transform_raw_expression",
419529
"model_fields.test_jsonfield.TestQuerying.test_nested_key_transform_raw_expression",
530+
"queries.tests.Queries1Tests.test_order_by_rawsql",
420531
"timezones.tests.LegacyDatabaseTests.test_cursor_execute_accepts_naive_datetime",
421532
"timezones.tests.LegacyDatabaseTests.test_cursor_execute_returns_naive_datetime",
422533
"timezones.tests.LegacyDatabaseTests.test_raw_sql",
@@ -501,6 +612,25 @@ def django_test_expected_failures(self):
501612
"Randomized ordering isn't supported by MongoDB.": {
502613
"ordering.tests.OrderingTests.test_random_ordering",
503614
},
615+
# https://github.com/mongodb-labs/django-mongodb/issues/34
616+
"Ordering can't span tables on MongoDB": {
617+
"queries.tests.ConditionalTests.test_infinite_loop",
618+
"queries.tests.NullableRelOrderingTests.test_join_already_in_query",
619+
"queries.tests.Queries1Tests.test_order_by_related_field_transform",
620+
"queries.tests.Queries1Tests.test_ticket7181",
621+
"queries.tests.Queries1Tests.test_tickets_2076_7256",
622+
"queries.tests.Queries1Tests.test_tickets_2874_3002",
623+
"queries.tests.Queries5Tests.test_ordering",
624+
"queries.tests.Queries5Tests.test_ticket9848",
625+
"queries.tests.Ticket14056Tests.test_ticket_14056",
626+
},
627+
"Queries without a collection aren't supported on MongoDB.": {
628+
"queries.test_q.QCheckTests",
629+
"queries.test_query.TestQueryNoModel",
630+
},
631+
"Test not applicable for custom SQL compiler.": {
632+
"queries.test_iterator.QuerySetIteratorTests",
633+
},
504634
}
505635

506636
@cached_property

0 commit comments

Comments
 (0)