Skip to content

Commit 13195d8

Browse files
committed
Test demonstrating fix for #335
1 parent e8d9581 commit 13195d8

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

tests/test_create.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -475,6 +475,18 @@ def test_index_foreign_keys(fresh_db):
475475
assert [["breed_id"]] == [i.columns for i in fresh_db["dogs"].indexes]
476476

477477

478+
def test_index_foreign_keys_if_index_name_is_already_used(fresh_db):
479+
# https://github.com/simonw/sqlite-utils/issues/335
480+
test_add_foreign_key_guess_table(fresh_db)
481+
# Add index with a name that will conflict with index_foreign_keys()
482+
fresh_db["dogs"].create_index(["name"], index_name="idx_dogs_breed_id")
483+
fresh_db.index_foreign_keys()
484+
assert {(idx.name, tuple(idx.columns)) for idx in fresh_db["dogs"].indexes} == {
485+
("idx_dogs_breed_id_2", ("breed_id",)),
486+
("idx_dogs_breed_id", ("name",)),
487+
}
488+
489+
478490
@pytest.mark.parametrize(
479491
"extra_data,expected_new_columns",
480492
[
@@ -753,9 +765,8 @@ def test_create_index_desc(fresh_db):
753765
)
754766

755767

756-
def test_create_index_find_unique_name():
757-
db = Database(memory=True)
758-
table = db["t"]
768+
def test_create_index_find_unique_name(fresh_db):
769+
table = fresh_db["t"]
759770
table.insert({"id": 1})
760771
table.create_index(["id"])
761772
# Without find_unique_name should error

0 commit comments

Comments
 (0)