Skip to content

Commit 0130bae

Browse files
committed
closes #188
1 parent c343f60 commit 0130bae

File tree

4 files changed

+19
-6
lines changed

4 files changed

+19
-6
lines changed

HISTORY.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@
44
## Unreleased
55

66

7+
## 2.3.1
8+
9+
### Fix
10+
11+
* fixed the paging of the `Pr0gramm` ImageCrawler in `promoted=True` mode.
12+
13+
714
## 2.3.0
815

916
### Breaking changes

nichtparasoup/imagecrawler/pr0gramm.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,10 @@ def _reset(self) -> None:
8181

8282
def _crawl(self) -> ImageCollection:
8383
images = ImageCollection()
84+
promoted = self._config['promoted']
8485
api_uri = self._get_api_uri(
8586
flags=1,
86-
promoted=self._config['promoted'],
87+
promoted=promoted,
8788
tags=self._config.get('tags', None),
8889
older=self._older)
8990
response_raw, api_uri = self._remote_fetcher.get_string(api_uri)
@@ -98,5 +99,5 @@ def _crawl(self) -> ImageCollection:
9899
if response['atEnd']:
99100
self.reset()
100101
else:
101-
self._older = response['items'][-1]['id'] or None
102+
self._older = response['items'][-1]['promoted' if promoted else 'id'] or None
102103
return images

tests/test_10_nichtparasoup/test_imagecrawler/test_pr0gramm.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@ def test_older(self, older: Optional[int], older_qs: str) -> None:
133133
'get-flags_1-promoted_1-tags_s15000-video.json',
134134
'/api/items/get?flags=1&promoted=1&tags=%21%28s%3A1000%29+-%22video%22':
135135
'get-flags_1-promoted_1-tags_s1000-video.json',
136+
'/api/items/get?flags=1&promoted=0&tags=%21%28s%3A1000%29+-%22video%22':
137+
'get-flags_1-promoted_0-tags_s1000-video.json',
136138
}, base_dir=path_join(dirname(__file__), 'testdata_pr0gramm'))
137139

138140

@@ -148,6 +150,7 @@ def test_reset_done(self) -> None:
148150
self.assertIsNone(crawler._older)
149151

150152

153+
@ddt
151154
class Pr0grammCrawlTest(unittest.TestCase):
152155

153156
def test_reset_at_end(self) -> None:
@@ -170,16 +173,17 @@ def test_no_reset_before_end(self) -> None:
170173
# assert
171174
self.assertFalse(crawler._reset_before_next_crawl)
172175

173-
def test_crawl_cursor(self) -> None:
176+
@ddt_data((True, 503528), (False, 3652675)) # type: ignore
177+
@ddt_unpack # type: ignore
178+
def test_crawl_cursor(self, promoted: bool, expected_cursor: Optional[int]) -> None:
174179
# arrange
175-
crawler = Pr0gramm(flags=1, promoted=True, tags='!s:1000')
180+
crawler = Pr0gramm(flags=1, promoted=promoted, tags='!s:1000')
176181
crawler._remote_fetcher = _FILE_FETCHER
177182
crawler._older = None
178-
expected_cursor = 3639645
179183
# act
180184
crawler._crawl()
181185
# assert
182-
self.assertEqual(crawler._older, expected_cursor)
186+
self.assertEqual(crawler._older, expected_cursor, msg='promoted={!r}'.format(promoted))
183187

184188
def test_crawl_images(self) -> None:
185189
# arrange

tests/test_10_nichtparasoup/test_imagecrawler/testdata_pr0gramm/get-flags_1-promoted_0-tags_s1000-video.json

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)