diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/test_utils.py | 22 | 
1 files changed, 22 insertions, 0 deletions
| diff --git a/test/test_utils.py b/test/test_utils.py index bee355ee0..349c1107f 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -18,6 +18,7 @@ from youtube_dl.utils import (      find_xpath_attr,      get_meta_content,      orderedSet, +    PagedList,      parse_duration,      sanitize_filename,      shell_quote, @@ -200,5 +201,26 @@ class TestUtil(unittest.TestCase):          self.assertEqual(parse_duration('9:12:43'), 33163)          self.assertEqual(parse_duration('x:y'), None) +    def test_paged_list(self): +        def testPL(size, pagesize, sliceargs, expected): +            def get_page(pagenum): +                firstid = pagenum * pagesize +                upto = min(size, pagenum * pagesize + pagesize) +                for i in range(firstid, upto): +                    yield i + +            pl = PagedList(get_page, pagesize) +            got = pl.getslice(*sliceargs) +            self.assertEqual(got, expected) + +        testPL(5, 2, (), [0, 1, 2, 3, 4]) +        testPL(5, 2, (1,), [1, 2, 3, 4]) +        testPL(5, 2, (2,), [2, 3, 4]) +        testPL(5, 2, (4,), [4]) +        testPL(5, 2, (0, 3), [0, 1, 2]) +        testPL(5, 2, (1, 4), [1, 2, 3]) +        testPL(5, 2, (2, 99), [2, 3, 4]) +        testPL(5, 2, (20, 99), []) +  if __name__ == '__main__':      unittest.main() | 
