Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/main'
Browse files Browse the repository at this point in the history
  • Loading branch information
dan-mm committed Dec 3, 2023
2 parents b3b78fe + 94d495f commit 693143b
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 7 deletions.
5 changes: 0 additions & 5 deletions django/contrib/admin/static/admin/css/responsive_rtl.css
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,6 @@
background-position: calc(100% - 8px) 9px;
}

[dir="rtl"] .related-widget-wrapper-link + .selector {
margin-right: 0;
margin-left: 15px;
}

[dir="rtl"] .selector .selector-filter label {
margin-right: 0;
margin-left: 8px;
Expand Down
2 changes: 1 addition & 1 deletion django/db/backends/base/schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ class BaseDatabaseSchemaEditor:

sql_create_unique = (
"ALTER TABLE %(table)s ADD CONSTRAINT %(name)s "
"UNIQUE (%(columns)s)%(deferrable)s"
"UNIQUE%(nulls_distinct)s (%(columns)s)%(deferrable)s"
)
sql_delete_unique = sql_delete_constraint

Expand Down
25 changes: 24 additions & 1 deletion tests/schema/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -3468,7 +3468,7 @@ def test_func_unique_constraint_nondeterministic(self):
editor.add_constraint(Author, constraint)

@skipUnlessDBFeature("supports_nulls_distinct_unique_constraints")
def test_unique_constraint_nulls_distinct(self):
def test_unique_constraint_index_nulls_distinct(self):
with connection.schema_editor() as editor:
editor.create_model(Author)
nulls_distinct = UniqueConstraint(
Expand All @@ -3491,6 +3491,29 @@ def test_unique_constraint_nulls_distinct(self):
self.assertNotIn(nulls_distinct.name, constraints)
self.assertNotIn(nulls_not_distinct.name, constraints)

@skipUnlessDBFeature("supports_nulls_distinct_unique_constraints")
def test_unique_constraint_nulls_distinct(self):
with connection.schema_editor() as editor:
editor.create_model(Author)
constraint = UniqueConstraint(
fields=["height", "weight"], name="constraint", nulls_distinct=False
)
with connection.schema_editor() as editor:
editor.add_constraint(Author, constraint)
Author.objects.create(name="", height=None, weight=None)
Author.objects.create(name="", height=1, weight=None)
Author.objects.create(name="", height=None, weight=1)
with self.assertRaises(IntegrityError):
Author.objects.create(name="", height=None, weight=None)
with self.assertRaises(IntegrityError):
Author.objects.create(name="", height=1, weight=None)
with self.assertRaises(IntegrityError):
Author.objects.create(name="", height=None, weight=1)
with connection.schema_editor() as editor:
editor.remove_constraint(Author, constraint)
constraints = self.get_constraints(Author._meta.db_table)
self.assertNotIn(constraint.name, constraints)

@skipIfDBFeature("supports_nulls_distinct_unique_constraints")
def test_unique_constraint_nulls_distinct_unsupported(self):
# UniqueConstraint is ignored on databases that don't support
Expand Down

0 comments on commit 693143b

Please sign in to comment.