fix: implement review feedback and misc fixes

This commit is contained in:
Travis Abendshien
2026-05-09 10:51:06 -07:00
parent 8c5495dc57
commit be08cabc4f
5 changed files with 153 additions and 188 deletions

View File

@@ -4,7 +4,7 @@
from pathlib import Path
from tagstudio.core.library.alchemy.fields import TextField
from tagstudio.core.library.alchemy.fields import BaseField, TextField
from tagstudio.core.library.alchemy.library import Library
from tagstudio.core.library.alchemy.models import Entry
from tagstudio.core.library.alchemy.registries.dupe_files_registry import DupeFilesRegistry
@@ -17,16 +17,18 @@ def test_refresh_dupe_files(library: Library):
library.library_dir = Path("/tmp/")
folder = unwrap(library.folder)
fields: list[BaseField] = [TextField(name="Title", value="I'm a Test Title")]
entry = Entry(
folder=folder,
path=Path("bar/foo.txt"),
fields=[TextField(name="Title", value="I'm a Test Title")],
fields=fields,
)
entry2 = Entry(
folder=folder,
path=Path("foo/foo.txt"),
fields=[TextField(name="Title", value="I'm a Test Title")],
fields=fields,
)
library.add_entries([entry, entry2])

View File

@@ -207,18 +207,13 @@ def test_remove_entry_field(library: Library, entry_full: Entry):
assert not entry.text_fields
def test_remove_text_field_entry_with_multiple_field(library: Library, entry_full: Entry):
def test_remove_text_field_entry_with_multiple_fields(library: Library, entry_full: Entry):
# Given
title_field = entry_full.text_fields[0]
# When
# add identical field
assert library.add_text_field_to_entry(
entry_full.id,
name=title_field.name,
value=title_field.value,
is_multiline=title_field.is_multiline,
)
assert library.add_field_to_entry(entry_full.id, field=title_field)
# remove entry field
library.remove_entry_field(title_field, [entry_full.id])
@@ -243,7 +238,8 @@ def test_update_entry_with_multiple_identical_text_fields(library: Library, entr
# When
# add identical field
library.add_text_field_to_entry(entry_full.id, name="Title", value="")
empty_title = TextField(name="Title", value="")
library.add_field_to_entry(entry_full.id, field=empty_title)
# update one of the fields
library.update_text_field(entry_full.id, title_field, "new value", title_field.is_multiline)
@@ -268,7 +264,8 @@ def test_mirror_entry_fields(library: Library):
folder=unwrap(library.folder),
path=Path("notes.txt"),
fields=[
TextField(name="Notes", value="These are my notes.\nNo peeking!", is_multiline=True)
TextField(name="Notes", value="These are my notes.\nNo peeking!", is_multiline=True),
TextField(name="Title", value="I'm a Test Title"),
],
)
entry_c = Entry(
@@ -291,7 +288,7 @@ def test_mirror_entry_fields(library: Library):
assert entry_b_.fields[0].name == "Notes"
assert entry_c_.fields[0].name == "Date Published"
assert len(entry_a_.fields) == 2
assert len(entry_b_.fields) == 1
assert len(entry_b_.fields) == 2
assert len(entry_c_.fields) == 1
# Mirror fields between entries
@@ -302,6 +299,11 @@ def test_mirror_entry_fields(library: Library):
entry_b_mirrored = unwrap(library.get_entry_full(entry_b_id))
entry_c_mirrored = unwrap(library.get_entry_full(entry_c_id))
for entry in [entry_a_mirrored, entry_b_mirrored, entry_c_mirrored]:
logger.info(
"[Library][mirror_fields]", entry_id=entry.id, field_count_after=len(entry.fields)
)
# Assert presence of all fields on all entries
assert len(entry_a_mirrored.fields) == 4
assert len(entry_b_mirrored.fields) == 4