|
|
|
|
@ -69,6 +69,7 @@ from youtube_dl.utils import (
|
|
|
|
|
parse_iso8601,
|
|
|
|
|
parse_resolution,
|
|
|
|
|
parse_qs,
|
|
|
|
|
partial_application,
|
|
|
|
|
pkcs1pad,
|
|
|
|
|
prepend_extension,
|
|
|
|
|
read_batch_urls,
|
|
|
|
|
@ -1723,6 +1724,21 @@ Line 1
|
|
|
|
|
'a', 'b', 'c', 'd',
|
|
|
|
|
from_dict={'a': 'c', 'c': [], 'b': 'd', 'd': None}), 'c-d')
|
|
|
|
|
|
|
|
|
|
def test_partial_application(self):
|
|
|
|
|
test_fn = partial_application(lambda x, kwarg=None: '{0}, kwarg={1!r}'.format(x, kwarg))
|
|
|
|
|
self.assertTrue(
|
|
|
|
|
callable(test_fn(kwarg=10)),
|
|
|
|
|
'missing positional parameter should apply partially')
|
|
|
|
|
self.assertEqual(
|
|
|
|
|
test_fn(10, kwarg=0.1), '10, kwarg=0.1',
|
|
|
|
|
'positionally passed argument should call function')
|
|
|
|
|
self.assertEqual(
|
|
|
|
|
test_fn(x=10), '10, kwarg=None',
|
|
|
|
|
'keyword passed positional should call function')
|
|
|
|
|
self.assertEqual(
|
|
|
|
|
test_fn(kwarg=0.1)(10), '10, kwarg=0.1',
|
|
|
|
|
'call after partial application should call the function')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
|
unittest.main()
|
|
|
|
|
|