From db19990a828f78e114c47ffca22d8aaff0644741 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Sun, 2 Mar 2025 10:44:06 +0100 Subject: [PATCH] [text] allow calling 'extract_iter' with invalid arguments --- gallery_dl/text.py | 6 +++--- test/test_text.py | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/gallery_dl/text.py b/gallery_dl/text.py index 5fd5a407..f117c92d 100644 --- a/gallery_dl/text.py +++ b/gallery_dl/text.py @@ -160,10 +160,10 @@ def extract_all(txt, rules, pos=0, values=None): def extract_iter(txt, begin, end, pos=0): """Yield values that would be returned by repeated calls of extract()""" - index = txt.index - lbeg = len(begin) - lend = len(end) try: + index = txt.index + lbeg = len(begin) + lend = len(end) while True: first = index(begin, pos) + lbeg last = index(end, first) diff --git a/test/test_text.py b/test/test_text.py index 1b19c474..30feefc0 100644 --- a/test/test_text.py +++ b/test/test_text.py @@ -300,6 +300,12 @@ class TestText(unittest.TestCase): self.assertEqual( g(txt, "[", "]", 6), ["a", "d"]) + # invalid arguments + for value in INVALID: + self.assertEqual(g(value, "<" , ">") , []) + self.assertEqual(g(txt , value, ">") , []) + self.assertEqual(g(txt , "<" , value), []) + def test_extract_from(self, f=text.extract_from): txt = "[c][b][a]: xyz! [d][e"