From 2f2f763a29a99c4cf8d484e13e2d1e73c2b7a602 Mon Sep 17 00:00:00 2001 From: Tyrannicodin <86689800+Tyrannicodin@users.noreply.github.com> Date: Thu, 12 Sep 2024 23:02:56 +0100 Subject: [PATCH] fix(search): remove wildcard requirement for tags (#481) * Fix tag search to not require wildcards * Add partial tag check to test_tag_search * chore: format with ruff --------- Co-authored-by: Tyrannicodin Co-authored-by: Travis Abendshien --- tagstudio/src/core/library/alchemy/library.py | 4 ++-- tagstudio/tests/test_library.py | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/tagstudio/src/core/library/alchemy/library.py b/tagstudio/src/core/library/alchemy/library.py index 263bcb5c..0a54f049 100644 --- a/tagstudio/src/core/library/alchemy/library.py +++ b/tagstudio/src/core/library/alchemy/library.py @@ -423,8 +423,8 @@ class Library: if search.tag: query = query.where( or_( - Tag.name.ilike(search.tag), - Tag.shorthand.ilike(search.tag), + Tag.name.icontains(search.tag), + Tag.shorthand.icontains(search.tag), ) ) diff --git a/tagstudio/tests/test_library.py b/tagstudio/tests/test_library.py index 4bd8bc64..2232626c 100644 --- a/tagstudio/tests/test_library.py +++ b/tagstudio/tests/test_library.py @@ -85,6 +85,8 @@ def test_tag_search(library): FilterState(tag=tag.name.upper()), ) + assert library.search_tags(FilterState(tag=tag.name[2:-2])) + assert not library.search_tags( FilterState(tag=tag.name * 2), )