tests/test-mdiff.py
author Simon Sapin <simon.sapin@octobus.net>
Tue, 06 Apr 2021 21:07:12 +0200
changeset 47100 caa3031c9ed5
parent 43076 2372284d9457
child 48875 6000f5b25c9b
permissions -rw-r--r--
dirstate-tree: Add tree traversal/iteration Like Python’s, Rust’s iterators are "external" in that they are driven by a caller who calls a `next` method. This is as opposed to "internal" iterators who drive themselves and call a callback for each item. Writing an internal iterator traversing a tree is easy with recursion, but internal iterators cannot rely on the call stack in that way, they must save in an explicit object all state that they need to be preserved across two `next` calls. This algorithm uses a `Vec` as a stack that contains what would be local variables on the call stack if we could use recursion. Differential Revision: https://phab.mercurial-scm.org/D10370
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
35862
1ab7b16c9437 tests: start a set of unit tests for mdiff.py, starting with splitnewlines
Augie Fackler <augie@google.com>
parents:
diff changeset
     1
from __future__ import absolute_import
1ab7b16c9437 tests: start a set of unit tests for mdiff.py, starting with splitnewlines
Augie Fackler <augie@google.com>
parents:
diff changeset
     2
from __future__ import print_function
1ab7b16c9437 tests: start a set of unit tests for mdiff.py, starting with splitnewlines
Augie Fackler <augie@google.com>
parents:
diff changeset
     3
1ab7b16c9437 tests: start a set of unit tests for mdiff.py, starting with splitnewlines
Augie Fackler <augie@google.com>
parents:
diff changeset
     4
import unittest
1ab7b16c9437 tests: start a set of unit tests for mdiff.py, starting with splitnewlines
Augie Fackler <augie@google.com>
parents:
diff changeset
     5
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36328
diff changeset
     6
from mercurial import mdiff
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36328
diff changeset
     7
35862
1ab7b16c9437 tests: start a set of unit tests for mdiff.py, starting with splitnewlines
Augie Fackler <augie@google.com>
parents:
diff changeset
     8
1ab7b16c9437 tests: start a set of unit tests for mdiff.py, starting with splitnewlines
Augie Fackler <augie@google.com>
parents:
diff changeset
     9
class splitnewlinesTests(unittest.TestCase):
1ab7b16c9437 tests: start a set of unit tests for mdiff.py, starting with splitnewlines
Augie Fackler <augie@google.com>
parents:
diff changeset
    10
    def test_splitnewlines(self):
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36328
diff changeset
    11
        cases = {
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36328
diff changeset
    12
            b'a\nb\nc\n': [b'a\n', b'b\n', b'c\n'],
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36328
diff changeset
    13
            b'a\nb\nc': [b'a\n', b'b\n', b'c'],
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36328
diff changeset
    14
            b'a\nb\nc\n\n': [b'a\n', b'b\n', b'c\n', b'\n'],
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36328
diff changeset
    15
            b'': [],
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36328
diff changeset
    16
            b'abcabc': [b'abcabc'],
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36328
diff changeset
    17
        }
36327
58c1368ab629 py3: use dict.items() instead of dict.iteritems() in tests
Pulkit Goyal <7895pulkit@gmail.com>
parents: 35862
diff changeset
    18
        for inp, want in cases.items():
35862
1ab7b16c9437 tests: start a set of unit tests for mdiff.py, starting with splitnewlines
Augie Fackler <augie@google.com>
parents:
diff changeset
    19
            self.assertEqual(mdiff.splitnewlines(inp), want)
1ab7b16c9437 tests: start a set of unit tests for mdiff.py, starting with splitnewlines
Augie Fackler <augie@google.com>
parents:
diff changeset
    20
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36328
diff changeset
    21
35862
1ab7b16c9437 tests: start a set of unit tests for mdiff.py, starting with splitnewlines
Augie Fackler <augie@google.com>
parents:
diff changeset
    22
if __name__ == '__main__':
1ab7b16c9437 tests: start a set of unit tests for mdiff.py, starting with splitnewlines
Augie Fackler <augie@google.com>
parents:
diff changeset
    23
    import silenttestrunner
43076
2372284d9457 formatting: blacken the codebase
Augie Fackler <augie@google.com>
parents: 36328
diff changeset
    24
35862
1ab7b16c9437 tests: start a set of unit tests for mdiff.py, starting with splitnewlines
Augie Fackler <augie@google.com>
parents:
diff changeset
    25
    silenttestrunner.main(__name__)