tests/test-dirs.py
author Arseniy Alekseyev <aalekseyev@janestreet.com>
Fri, 12 Apr 2024 13:48:38 +0100
branchstable
changeset 51565 95c083d21ac6
parent 48875 6000f5b25c9b
permissions -rw-r--r--
tests: add an end-to-end test to show a bug in `visit_children_set` Concretely, `rootfilesin` is completely broken with respect to `visit_children_set` optimization.

import unittest

import silenttestrunner

from mercurial import pathutil


class dirstests(unittest.TestCase):
    def testdirs(self):
        for case, want in [
            (b'a/a/a', [b'a', b'a/a', b'']),
            (b'alpha/beta/gamma', [b'', b'alpha', b'alpha/beta']),
        ]:
            d = pathutil.dirs([])
            d.addpath(case)
            self.assertEqual(sorted(d), sorted(want))

    def testinvalid(self):
        with self.assertRaises(ValueError):
            d = pathutil.dirs([])
            d.addpath(b'a//b')


if __name__ == '__main__':
    silenttestrunner.main(__name__)