Skip to content

Commit 73d9d47

Browse files
committed
add schema tests to CI
1 parent 4398f98 commit 73d9d47

File tree

2 files changed

+92
-2
lines changed

2 files changed

+92
-2
lines changed

.github/workflows/test-python.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,7 @@ jobs:
111111
ordering
112112
or_lookups
113113
queries
114-
schema.tests.SchemaTests.test_creation_deletion
115-
schema.tests.SchemaTests.test_db_table
114+
schema
116115
select_related
117116
select_related_onetoone
118117
select_related_regress

django_mongodb/features.py

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,16 @@
44

55
class DatabaseFeatures(BaseDatabaseFeatures):
66
allow_sliced_subqueries_with_in = False
7+
can_create_inline_fk = False
78
can_introspect_foreign_keys = False
89
greatest_least_ignores_nulls = True
910
has_json_object_function = False
1011
has_native_json_field = True
12+
supports_collation_on_charfield = False
13+
supports_column_check_constraints = False
1114
supports_date_lookup_using_string = False
1215
supports_explaining_query_execution = True
16+
supports_expression_indexes = False
1317
supports_foreign_keys = False
1418
supports_ignore_conflicts = False
1519
supports_json_field_contains = False
@@ -19,6 +23,7 @@ class DatabaseFeatures(BaseDatabaseFeatures):
1923
supports_select_intersection = False
2024
# Not implemented: https://github.com/mongodb-labs/django-mongodb/issues/72
2125
supports_select_union = False
26+
supports_table_check_constraints = False
2227
supports_temporal_subtraction = True
2328
# MongoDB stores datetimes in UTC.
2429
supports_timezones = False
@@ -73,6 +78,83 @@ class DatabaseFeatures(BaseDatabaseFeatures):
7378
"many_to_one.tests.ManyToOneTests.test_selects",
7479
# Incorrect JOIN with GenericRelation gives incorrect results.
7580
"aggregation_regress.tests.AggregationTests.test_aggregation_with_generic_reverse_relation",
81+
# AddField
82+
"schema.tests.SchemaTests.test_add_datefield_and_datetimefield_use_effective_default",
83+
"schema.tests.SchemaTests.test_add_field",
84+
"schema.tests.SchemaTests.test_add_field_binary",
85+
"schema.tests.SchemaTests.test_add_field_both_defaults_preserves_db_default",
86+
"schema.tests.SchemaTests.test_add_field_default_dropped",
87+
"schema.tests.SchemaTests.test_add_field_default_nullable",
88+
"schema.tests.SchemaTests.test_add_field_default_transform",
89+
"schema.tests.SchemaTests.test_add_field_durationfield_with_default",
90+
"schema.tests.SchemaTests.test_add_field_o2o_nullable",
91+
"schema.tests.SchemaTests.test_add_field_temp_default",
92+
"schema.tests.SchemaTests.test_add_field_temp_default_boolean",
93+
"schema.tests.SchemaTests.test_add_field_use_effective_default",
94+
"schema.tests.SchemaTests.test_add_text_field_with_db_default",
95+
"schema.tests.SchemaTests.test_add_textfield_default_nullable",
96+
# RemoveField
97+
"schema.tests.SchemaTests.test_remove_field",
98+
"schema.tests.SchemaTests.test_remove_indexed_field",
99+
# Add/RemoveIndex
100+
"schema.tests.SchemaTests.test_add_remove_index",
101+
"schema.tests.SchemaTests.test_composed_desc_index_with_fk",
102+
"schema.tests.SchemaTests.test_composed_index_with_fk",
103+
"schema.tests.SchemaTests.test_create_index_together",
104+
"schema.tests.SchemaTests.test_order_index",
105+
"schema.tests.SchemaTests.test_text_field_with_db_index",
106+
# AlterField
107+
"schema.tests.SchemaTests.test_alter",
108+
"schema.tests.SchemaTests.test_alter_auto_field_to_integer_field",
109+
"schema.tests.SchemaTests.test_alter_field_add_index_to_integerfield",
110+
"schema.tests.SchemaTests.test_alter_field_default_dropped",
111+
"schema.tests.SchemaTests.test_alter_field_fk_keeps_index",
112+
"schema.tests.SchemaTests.test_alter_field_fk_to_o2o",
113+
"schema.tests.SchemaTests.test_alter_field_o2o_keeps_unique",
114+
"schema.tests.SchemaTests.test_alter_field_o2o_to_fk",
115+
"schema.tests.SchemaTests.test_alter_int_pk_to_int_unique",
116+
"schema.tests.SchemaTests.test_alter_not_unique_field_to_primary_key",
117+
"schema.tests.SchemaTests.test_alter_null_to_not_null",
118+
"schema.tests.SchemaTests.test_alter_null_to_not_null_keeping_default",
119+
"schema.tests.SchemaTests.test_alter_primary_key_the_same_name",
120+
"schema.tests.SchemaTests.test_autofield_to_o2o",
121+
# AlterField (rename)
122+
"schema.tests.SchemaTests.test_rename",
123+
"schema.tests.SchemaTests.test_rename_keep_db_default",
124+
"schema.tests.SchemaTests.test_rename_keep_null_status",
125+
# AlterField (db_index)
126+
"schema.tests.SchemaTests.test_indexes",
127+
"schema.tests.SchemaTests.test_remove_constraints_capital_letters",
128+
"schema.tests.SchemaTests.test_remove_db_index_doesnt_remove_custom_indexes",
129+
# AlterField (unique)
130+
"schema.tests.SchemaTests.test_remove_field_unique_does_not_remove_meta_constraints",
131+
"schema.tests.SchemaTests.test_unique",
132+
"schema.tests.SchemaTests.test_unique_and_reverse_m2m",
133+
# alter_index_together
134+
"schema.tests.SchemaTests.test_index_together",
135+
"schema.tests.SchemaTests.test_remove_index_together_does_not_remove_meta_indexes",
136+
# alter_unique_together
137+
"schema.tests.SchemaTests.test_remove_unique_together_does_not_remove_meta_constraints",
138+
"schema.tests.SchemaTests.test_unique_together",
139+
# ManyToManyField
140+
"schema.tests.SchemaTests.test_m2m",
141+
"schema.tests.SchemaTests.test_m2m_create",
142+
"schema.tests.SchemaTests.test_m2m_create_custom",
143+
"schema.tests.SchemaTests.test_m2m_create_inherited",
144+
"schema.tests.SchemaTests.test_m2m_custom",
145+
"schema.tests.SchemaTests.test_m2m_inherited",
146+
"schema.tests.SchemaTests.test_m2m_rename_field_in_target_model",
147+
"schema.tests.SchemaTests.test_m2m_repoint",
148+
"schema.tests.SchemaTests.test_m2m_repoint_custom",
149+
"schema.tests.SchemaTests.test_m2m_repoint_inherited",
150+
"schema.tests.SchemaTests.test_m2m_through_alter",
151+
"schema.tests.SchemaTests.test_m2m_through_alter_custom",
152+
"schema.tests.SchemaTests.test_m2m_through_alter_inherited",
153+
"schema.tests.SchemaTests.test_m2m_through_remove",
154+
# add/remove_constraint
155+
"schema.tests.SchemaTests.test_composed_constraint_with_fk",
156+
"schema.tests.SchemaTests.test_remove_ignored_unique_constraint_not_create_fk_index",
157+
"schema.tests.SchemaTests.test_unique_constraint",
76158
}
77159
# $bitAnd, #bitOr, and $bitXor are new in MongoDB 6.3.
78160
_django_test_expected_failures_bitwise = {
@@ -93,6 +175,9 @@ def django_test_expected_failures(self):
93175
return expected_failures
94176

95177
django_test_skips = {
178+
"Database defaults aren't supported by MongoDB.": {
179+
"schema.tests.SchemaTests.test_db_default_output_field_resolving",
180+
},
96181
"Insert expressions aren't supported.": {
97182
"bulk_create.tests.BulkCreateTests.test_bulk_insert_now",
98183
"bulk_create.tests.BulkCreateTests.test_bulk_insert_expressions",
@@ -419,6 +504,8 @@ def django_test_expected_failures(self):
419504
"lookup.tests.LookupTests.test_textfield_exact_null",
420505
"queries.tests.ExistsSql.test_exists",
421506
"queries.tests.Queries6Tests.test_col_alias_quoted",
507+
"schema.tests.SchemaTests.test_rename_column_renames_deferred_sql_references",
508+
"schema.tests.SchemaTests.test_rename_table_renames_deferred_sql_references",
422509
},
423510
"Test executes raw SQL.": {
424511
"aggregation.tests.AggregateTestCase.test_coalesced_empty_result_set",
@@ -431,6 +518,7 @@ def django_test_expected_failures(self):
431518
"model_fields.test_jsonfield.TestQuerying.test_key_transform_raw_expression",
432519
"model_fields.test_jsonfield.TestQuerying.test_nested_key_transform_raw_expression",
433520
"queries.tests.Queries1Tests.test_order_by_rawsql",
521+
"schema.test_logging.SchemaLoggerTests.test_extra_args",
434522
"timezones.tests.LegacyDatabaseTests.test_cursor_execute_accepts_naive_datetime",
435523
"timezones.tests.LegacyDatabaseTests.test_cursor_execute_returns_naive_datetime",
436524
"timezones.tests.LegacyDatabaseTests.test_raw_sql",
@@ -514,6 +602,9 @@ def django_test_expected_failures(self):
514602
"introspection.tests.IntrospectionTests.test_get_constraints_unique_indexes_orders",
515603
"introspection.tests.IntrospectionTests.test_get_primary_key_column",
516604
},
605+
"MongoDB can't introspect primary key.": {
606+
"schema.tests.SchemaTests.test_primary_key",
607+
},
517608
"Known issue querying JSONField.": {
518609
# An ExpressionWrapper annotation with KeyTransform followed by
519610
# .filter(expr__isnull=False) doesn't use KeyTransformIsNull as it

0 commit comments

Comments
 (0)