tests/test-dirs.py
author Pierre-Yves David <pierre-yves.david@octobus.net>
Thu, 03 Feb 2022 18:14:11 +0100
changeset 48716 f1eb77dceb36
parent 48021 627cd8f33db0
child 48875 6000f5b25c9b
permissions -rw-r--r--
narrow: allow merging non-conflicting change outside of the narrow spec We use the mergestate to carry information about these merge action and reprocess them at commit time to apply the necessary update. The dirstate itself is never affected and remains "pure", with content only in the narrow-spec. This file involved in such merge are therefor not listed in `hg status`. The current testing is based on a modification of the previous testing, that refused to do such merges. As a result it is a bit simple and more extensive code and testing testing will have to be introduced later. I am planning to do this extra testing, soon. In addition, this only works for flat manifest. Support for tree manifest will need more work. I am not currently planning to do this work. Differential Revision: https://phab.mercurial-scm.org/D12119
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
43494
5d40317d42b7 dirs: reject consecutive slashes in paths
Augie Fackler <augie@google.com>
parents:
diff changeset
     1
from __future__ import absolute_import
5d40317d42b7 dirs: reject consecutive slashes in paths
Augie Fackler <augie@google.com>
parents:
diff changeset
     2
5d40317d42b7 dirs: reject consecutive slashes in paths
Augie Fackler <augie@google.com>
parents:
diff changeset
     3
import unittest
5d40317d42b7 dirs: reject consecutive slashes in paths
Augie Fackler <augie@google.com>
parents:
diff changeset
     4
5d40317d42b7 dirs: reject consecutive slashes in paths
Augie Fackler <augie@google.com>
parents:
diff changeset
     5
import silenttestrunner
5d40317d42b7 dirs: reject consecutive slashes in paths
Augie Fackler <augie@google.com>
parents:
diff changeset
     6
43523
c21aca51b392 utils: move the `dirs` definition in pathutil (API)
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 43494
diff changeset
     7
from mercurial import pathutil
43494
5d40317d42b7 dirs: reject consecutive slashes in paths
Augie Fackler <augie@google.com>
parents:
diff changeset
     8
5d40317d42b7 dirs: reject consecutive slashes in paths
Augie Fackler <augie@google.com>
parents:
diff changeset
     9
5d40317d42b7 dirs: reject consecutive slashes in paths
Augie Fackler <augie@google.com>
parents:
diff changeset
    10
class dirstests(unittest.TestCase):
5d40317d42b7 dirs: reject consecutive slashes in paths
Augie Fackler <augie@google.com>
parents:
diff changeset
    11
    def testdirs(self):
5d40317d42b7 dirs: reject consecutive slashes in paths
Augie Fackler <augie@google.com>
parents:
diff changeset
    12
        for case, want in [
5d40317d42b7 dirs: reject consecutive slashes in paths
Augie Fackler <augie@google.com>
parents:
diff changeset
    13
            (b'a/a/a', [b'a', b'a/a', b'']),
5d40317d42b7 dirs: reject consecutive slashes in paths
Augie Fackler <augie@google.com>
parents:
diff changeset
    14
            (b'alpha/beta/gamma', [b'', b'alpha', b'alpha/beta']),
5d40317d42b7 dirs: reject consecutive slashes in paths
Augie Fackler <augie@google.com>
parents:
diff changeset
    15
        ]:
48021
627cd8f33db0 rust: Remove support for passing a dict to the Rust pathutil.dirs()
Simon Sapin <simon.sapin@octobus.net>
parents: 43523
diff changeset
    16
            d = pathutil.dirs([])
43494
5d40317d42b7 dirs: reject consecutive slashes in paths
Augie Fackler <augie@google.com>
parents:
diff changeset
    17
            d.addpath(case)
5d40317d42b7 dirs: reject consecutive slashes in paths
Augie Fackler <augie@google.com>
parents:
diff changeset
    18
            self.assertEqual(sorted(d), sorted(want))
5d40317d42b7 dirs: reject consecutive slashes in paths
Augie Fackler <augie@google.com>
parents:
diff changeset
    19
5d40317d42b7 dirs: reject consecutive slashes in paths
Augie Fackler <augie@google.com>
parents:
diff changeset
    20
    def testinvalid(self):
5d40317d42b7 dirs: reject consecutive slashes in paths
Augie Fackler <augie@google.com>
parents:
diff changeset
    21
        with self.assertRaises(ValueError):
48021
627cd8f33db0 rust: Remove support for passing a dict to the Rust pathutil.dirs()
Simon Sapin <simon.sapin@octobus.net>
parents: 43523
diff changeset
    22
            d = pathutil.dirs([])
43494
5d40317d42b7 dirs: reject consecutive slashes in paths
Augie Fackler <augie@google.com>
parents:
diff changeset
    23
            d.addpath(b'a//b')
5d40317d42b7 dirs: reject consecutive slashes in paths
Augie Fackler <augie@google.com>
parents:
diff changeset
    24
5d40317d42b7 dirs: reject consecutive slashes in paths
Augie Fackler <augie@google.com>
parents:
diff changeset
    25
5d40317d42b7 dirs: reject consecutive slashes in paths
Augie Fackler <augie@google.com>
parents:
diff changeset
    26
if __name__ == '__main__':
5d40317d42b7 dirs: reject consecutive slashes in paths
Augie Fackler <augie@google.com>
parents:
diff changeset
    27
    silenttestrunner.main(__name__)