Skip to content

Commit 3bacf9a

Browse files
committed
Fix get_feeds(feed='') and get_entries(entry=('', '')) bug.
Fixes #392.
1 parent 8dc098d commit 3bacf9a

4 files changed

Lines changed: 32 additions & 4 deletions

File tree

CHANGES.rst

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,11 @@ Unreleased
1515

1616
* Add support for import / export in the web app; :ref:`screenshots <screenshots-import>`.
1717

18-
1918
* Deprecate the :func:`~reader.utils.archive_entries` ``feed_user_title`` argument.
19+
* Fix :meth:`get_feeds(feed='') <Reader.get_feeds>` and
20+
:meth:`get_entries(entry=('', '')) <Reader.get_entries>`
21+
returning wrong entries.
22+
(:issue:`392`)
2023

2124

2225
Version 3.22

src/reader/_storage/_entries.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -523,10 +523,10 @@ def entry_filter(
523523

524524
context = {}
525525

526-
if feed_url:
526+
if feed_url is not None:
527527
add("entries.feed = :feed_url")
528528
context['feed_url'] = feed_url
529-
if entry_id:
529+
if entry_id is not None:
530530
add("entries.id = :entry_id")
531531
context['entry_id'] = entry_id
532532

src/reader/_storage/_feeds.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,7 @@ def feed_filter(query: Query, filter: FeedFilter) -> dict[str, Any]:
346346

347347
context: dict[str, object] = {}
348348

349-
if url:
349+
if url is not None:
350350
query.WHERE("url = :url")
351351
context.update(url=url)
352352

tests/test_reader_filter.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
from fakeparser import Parser
44
from reader import Enclosure
55
from reader import Entry
6+
from reader import EntryNotFoundError
67
from reader import EntrySource
78
from reader import Feed
9+
from reader import FeedNotFoundError
810
from reader import make_reader
911
from reader_methods import get_feeds
1012
from reader_methods import get_feeds_via_update
@@ -244,6 +246,20 @@ def test_entries_error(reader, get_entries, kwargs):
244246
get_entries(reader, **kwargs)
245247

246248

249+
def test_entries_empty_string(reader, parser):
250+
"""https://github.com/lemon24/reader/issues/392"""
251+
252+
reader.add_feed(parser.feed(1))
253+
parser.entry(1, 1)
254+
reader.update_feeds()
255+
256+
with pytest.raises(EntryNotFoundError):
257+
reader.get_entry(('', ''))
258+
259+
with pytest.raises(EntryNotFoundError):
260+
reader.get_entry(('1', ''))
261+
262+
247263
# TODO: ideally, systematize all filtering tests?
248264

249265
# END entry filtering tests
@@ -326,4 +342,13 @@ def test_feeds_error(reader, kwargs):
326342
reader.get_feeds(**kwargs)
327343

328344

345+
def test_feeds_empty_string(reader, parser):
346+
"""https://github.com/lemon24/reader/issues/392"""
347+
348+
reader.add_feed(parser.feed(1))
349+
350+
with pytest.raises(FeedNotFoundError):
351+
reader.get_feed('')
352+
353+
329354
# END feed filtering tests

0 commit comments

Comments
 (0)