adjust 'util.raises()'

pull/465/head
Mike Fährmann 5 years ago
parent d44f790e81
commit d5e3910270
No known key found for this signature in database
GPG Key ID: 5680CA389D365A88

@ -52,10 +52,10 @@ def advance(iterable, num):
return iterator
def raises(obj):
"""Returns a function that raises 'obj' as exception"""
def wrap():
raise obj
def raises(cls):
"""Returns a function that raises 'cls' as exception"""
def wrap(*args):
raise cls(*args)
return wrap
@ -287,21 +287,21 @@ class UniquePredicate():
class FilterPredicate():
"""Predicate; True if evaluating the given expression returns True"""
globalsdict = {
"parse_int": text.parse_int,
"urlsplit": urllib.parse.urlsplit,
"datetime": datetime.datetime,
"abort": raises(exception.StopExtraction()),
"re": re,
}
def __init__(self, filterexpr, target="image"):
name = "<{} filter>".format(target)
self.codeobj = compile(filterexpr, name, "eval")
self.globals = {
"parse_int": text.parse_int,
"urlsplit" : urllib.parse.urlsplit,
"datetime" : datetime.datetime,
"abort" : raises(exception.StopExtraction),
"re" : re,
}
def __call__(self, url, kwds):
try:
return eval(self.codeobj, self.globalsdict, kwds)
return eval(self.codeobj, self.globals, kwds)
except exception.GalleryDLException:
raise
except Exception as exc:

@ -313,17 +313,17 @@ class TestOther(unittest.TestCase):
util.advance(util.advance(items, 1), 2), range(3, 5))
def test_raises(self):
func = util.raises(Exception())
func = util.raises(Exception)
with self.assertRaises(Exception):
func()
func = util.raises(ValueError(1))
func = util.raises(ValueError)
with self.assertRaises(ValueError):
func()
func(1)
with self.assertRaises(ValueError):
func()
func(2)
with self.assertRaises(ValueError):
func()
func(3)
def test_combine_dict(self):
self.assertEqual(

Loading…
Cancel
Save