Skip to content

Commit fe44bb5

Browse files
committed
add test skips for queries tests
1 parent 7338793 commit fe44bb5

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
@@ -98,7 +98,7 @@ jobs:
9898
one_to_one
9999
ordering
100100
or_lookups
101-
queries.tests.Ticket12807Tests.test_ticket_12807
101+
queries
102102
select_related
103103
select_related_onetoone
104104
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 = {
@@ -208,6 +238,8 @@ def django_test_expected_failures(self):
208238
"expressions_case.tests.CaseExpressionTests.test_update_with_expression_as_value",
209239
"expressions_case.tests.CaseExpressionTests.test_update_without_default",
210240
"model_fields.test_integerfield.PositiveIntegerFieldTests.test_negative_values",
241+
"queries.test_bulk_update.BulkUpdateNoteTests",
242+
"queries.test_bulk_update.BulkUpdateTests",
211243
"timezones.tests.NewDatabaseTests.test_update_with_timedelta",
212244
"update.tests.AdvancedTests.test_update_annotated_queryset",
213245
"update.tests.AdvancedTests.test_update_negated_f",
@@ -296,6 +328,31 @@ def django_test_expected_failures(self):
296328
"lookup.tests.LookupTests.test_exact_exists",
297329
"lookup.tests.LookupTests.test_nested_outerref_lhs",
298330
"lookup.tests.LookupQueryingTests.test_filter_exists_lhs",
331+
"queries.tests.ExcludeTest17600.test_exclude_plain",
332+
"queries.tests.ExcludeTest17600.test_exclude_with_q_is_equal_to_plain_exclude_variation",
333+
"queries.tests.ExcludeTest17600.test_exclude_with_q_object_no_distinct",
334+
"queries.tests.ExcludeTests.test_exclude_multivalued_exists",
335+
"queries.tests.ExcludeTests.test_exclude_reverse_fk_field_ref",
336+
"queries.tests.ExcludeTests.test_exclude_with_circular_fk_relation",
337+
"queries.tests.ExcludeTests.test_subquery_exclude_outerref",
338+
"queries.tests.ExcludeTests.test_to_field",
339+
"queries.tests.ForeignKeyToBaseExcludeTests.test_ticket_21787",
340+
"queries.tests.JoinReuseTest.test_inverted_q_across_relations",
341+
"queries.tests.ManyToManyExcludeTest.test_exclude_many_to_many",
342+
"queries.tests.ManyToManyExcludeTest.test_ticket_12823",
343+
"queries.tests.Queries1Tests.test_double_exclude",
344+
"queries.tests.Queries1Tests.test_exclude",
345+
"queries.tests.Queries1Tests.test_exclude_in",
346+
"queries.tests.Queries1Tests.test_excluded_intermediary_m2m_table_joined",
347+
"queries.tests.Queries1Tests.test_nested_exclude",
348+
"queries.tests.Queries4Tests.test_join_reuse_order",
349+
"queries.tests.Queries4Tests.test_ticket24525",
350+
"queries.tests.Queries6Tests.test_tickets_8921_9188",
351+
"queries.tests.Queries6Tests.test_xor_subquery",
352+
"queries.tests.QuerySetBitwiseOperationTests.test_subquery_aliases",
353+
"queries.tests.Ticket20101Tests.test_ticket_20101",
354+
"queries.tests.Ticket20788Tests.test_ticket_20788",
355+
"queries.tests.Ticket22429Tests.test_ticket_22429",
299356
},
300357
"Subquery is not supported on MongoDB.": {
301358
"annotations.tests.NonAggregateAnnotationTestCase.test_annotation_filter_with_subquery",
@@ -340,6 +397,26 @@ def django_test_expected_failures(self):
340397
"model_fields.test_jsonfield.TestQuerying.test_usage_in_subquery",
341398
"one_to_one.tests.OneToOneTests.test_get_prefetch_queryset_warning",
342399
"one_to_one.tests.OneToOneTests.test_rel_pk_subquery",
400+
"queries.tests.CloneTests.test_evaluated_queryset_as_argument",
401+
"queries.tests.DoubleInSubqueryTests.test_double_subquery_in",
402+
"queries.tests.EmptyQuerySetTests.test_values_subquery",
403+
"queries.tests.ExcludeTests.test_exclude_subquery",
404+
"queries.tests.NullInExcludeTest.test_null_in_exclude_qs",
405+
"queries.tests.Queries1Tests.test_ticket9985",
406+
"queries.tests.Queries1Tests.test_ticket9997",
407+
"queries.tests.Queries1Tests.test_ticket10742",
408+
"queries.tests.Queries4Tests.test_ticket10181",
409+
"queries.tests.Queries5Tests.test_queryset_reuse",
410+
"queries.tests.QuerySetBitwiseOperationTests.test_conflicting_aliases_during_combine",
411+
"queries.tests.RelabelCloneTest.test_ticket_19964",
412+
"queries.tests.RelatedLookupTypeTests.test_correct_lookup",
413+
"queries.tests.RelatedLookupTypeTests.test_values_queryset_lookup",
414+
"queries.tests.Ticket23605Tests.test_ticket_23605",
415+
"queries.tests.ToFieldTests.test_in_subquery",
416+
"queries.tests.ToFieldTests.test_nested_in_subquery",
417+
"queries.tests.ValuesSubqueryTests.test_values_in_subquery",
418+
"queries.tests.WeirdQuerysetSlicingTests.test_empty_sliced_subquery",
419+
"queries.tests.WeirdQuerysetSlicingTests.test_empty_sliced_subquery_exclude",
343420
},
344421
# Invalid $project :: caused by :: Unknown expression $count
345422
# https://github.com/mongodb-labs/django-mongodb/issues/79
@@ -361,6 +438,8 @@ def django_test_expected_failures(self):
361438
"expressions.tests.FieldTransformTests.test_month_aggregation",
362439
"expressions_case.tests.CaseDocumentationExamples.test_conditional_aggregation_example",
363440
"model_fields.test_jsonfield.TestQuerying.test_ordering_grouping_by_count",
441+
"queries.tests.Queries1Tests.test_ticket_20250",
442+
"queries.tests.ValuesQuerysetTests.test_named_values_list_expression_with_default_alias",
364443
},
365444
"Cannot use QuerySet.delete() when querying across multiple collections on MongoDB.": {
366445
"delete.tests.FastDeleteTests.test_fast_delete_aggregation",
@@ -384,12 +463,29 @@ def django_test_expected_failures(self):
384463
"datetimes.tests.DateTimesTests.test_datetimes_has_lazy_iterator",
385464
"datetimes.tests.DateTimesTests.test_datetimes_returns_available_dates_for_given_scope_and_given_field",
386465
"datetimes.tests.DateTimesTests.test_related_model_traverse",
466+
"queries.tests.Queries1Tests.test_ticket7155",
467+
"queries.tests.Queries1Tests.test_tickets_7087_12242",
387468
"timezones.tests.LegacyDatabaseTests.test_query_datetimes",
388469
"timezones.tests.NewDatabaseTests.test_query_datetimes",
389470
"timezones.tests.NewDatabaseTests.test_query_datetimes_in_other_timezone",
390471
},
391472
"QuerySet.distinct() is not supported.": {
392473
"lookup.tests.LookupTests.test_lookup_collision_distinct",
474+
"queries.tests.ExcludeTest17600.test_exclude_plain_distinct",
475+
"queries.tests.ExcludeTest17600.test_exclude_with_q_is_equal_to_plain_exclude",
476+
"queries.tests.ExcludeTest17600.test_exclude_with_q_object_distinct",
477+
"queries.tests.ExcludeTests.test_exclude_m2m_through",
478+
"queries.tests.ExistsSql.test_distinct_exists",
479+
"queries.tests.ExistsSql.test_sliced_distinct_exists",
480+
"queries.tests.ExistsSql.test_ticket_18414",
481+
"queries.tests.Queries1Tests.test_ticket4464",
482+
"queries.tests.Queries1Tests.test_ticket7096",
483+
"queries.tests.Queries1Tests.test_ticket7791",
484+
"queries.tests.Queries1Tests.test_tickets_1878_2939",
485+
"queries.tests.Queries1Tests.test_tickets_5321_7070",
486+
"queries.tests.Queries1Tests.test_tickets_5324_6704",
487+
"queries.tests.Queries1Tests.test_tickets_6180_6203",
488+
"queries.tests.Queries6Tests.test_distinct_ordered_sliced_subquery_aggregation",
393489
"update.tests.AdvancedTests.test_update_all",
394490
},
395491
"QuerySet.extra() is not supported.": {
@@ -404,6 +500,18 @@ def django_test_expected_failures(self):
404500
"ordering.tests.OrderingTests.test_extra_ordering",
405501
"ordering.tests.OrderingTests.test_extra_ordering_quoting",
406502
"ordering.tests.OrderingTests.test_extra_ordering_with_table_name",
503+
"queries.tests.EscapingTests.test_ticket_7302",
504+
"queries.tests.Queries5Tests.test_extra_select_literal_percent_s",
505+
"queries.tests.Queries5Tests.test_ticket7256",
506+
"queries.tests.ValuesQuerysetTests.test_extra_multiple_select_params_values_order_by",
507+
"queries.tests.ValuesQuerysetTests.test_extra_select_params_values_order_in_extra",
508+
"queries.tests.ValuesQuerysetTests.test_extra_values",
509+
"queries.tests.ValuesQuerysetTests.test_extra_values_list",
510+
"queries.tests.ValuesQuerysetTests.test_extra_values_order_multiple",
511+
"queries.tests.ValuesQuerysetTests.test_extra_values_order_twice",
512+
"queries.tests.ValuesQuerysetTests.test_flat_extra_values_list",
513+
"queries.tests.ValuesQuerysetTests.test_named_values_list_with_fields",
514+
"queries.tests.ValuesQuerysetTests.test_named_values_list_without_fields",
407515
"select_related.tests.SelectRelatedTests.test_select_related_with_extra",
408516
},
409517
"QuerySet.update() crash: Unrecognized expression '$count'": {
@@ -413,6 +521,8 @@ def django_test_expected_failures(self):
413521
"delete.tests.DeletionTests.test_only_referenced_fields_selected",
414522
"lookup.tests.LookupTests.test_in_ignore_none",
415523
"lookup.tests.LookupTests.test_textfield_exact_null",
524+
"queries.tests.ExistsSql.test_exists",
525+
"queries.tests.Queries6Tests.test_col_alias_quoted",
416526
},
417527
"Test executes raw SQL.": {
418528
"annotations.tests.NonAggregateAnnotationTestCase.test_raw_sql_with_inherited_field",
@@ -422,6 +532,7 @@ def django_test_expected_failures(self):
422532
"model_fields.test_jsonfield.TestQuerying.test_key_sql_injection_escape",
423533
"model_fields.test_jsonfield.TestQuerying.test_key_transform_raw_expression",
424534
"model_fields.test_jsonfield.TestQuerying.test_nested_key_transform_raw_expression",
535+
"queries.tests.Queries1Tests.test_order_by_rawsql",
425536
"timezones.tests.LegacyDatabaseTests.test_cursor_execute_accepts_naive_datetime",
426537
"timezones.tests.LegacyDatabaseTests.test_cursor_execute_returns_naive_datetime",
427538
"timezones.tests.LegacyDatabaseTests.test_raw_sql",
@@ -506,6 +617,25 @@ def django_test_expected_failures(self):
506617
"Randomized ordering isn't supported by MongoDB.": {
507618
"ordering.tests.OrderingTests.test_random_ordering",
508619
},
620+
# https://github.com/mongodb-labs/django-mongodb/issues/34
621+
"Ordering can't span tables on MongoDB": {
622+
"queries.tests.ConditionalTests.test_infinite_loop",
623+
"queries.tests.NullableRelOrderingTests.test_join_already_in_query",
624+
"queries.tests.Queries1Tests.test_order_by_related_field_transform",
625+
"queries.tests.Queries1Tests.test_ticket7181",
626+
"queries.tests.Queries1Tests.test_tickets_2076_7256",
627+
"queries.tests.Queries1Tests.test_tickets_2874_3002",
628+
"queries.tests.Queries5Tests.test_ordering",
629+
"queries.tests.Queries5Tests.test_ticket9848",
630+
"queries.tests.Ticket14056Tests.test_ticket_14056",
631+
},
632+
"Queries without a collection aren't supported on MongoDB.": {
633+
"queries.test_q.QCheckTests",
634+
"queries.test_query.TestQueryNoModel",
635+
},
636+
"Test not applicable for MongoDB's SQLCompiler.": {
637+
"queries.test_iterator.QuerySetIteratorTests",
638+
},
509639
}
510640

511641
@cached_property

0 commit comments

Comments
 (0)