Mercurial > python-hglib
changeset 213:388820908580 2.6.2
hglib: update grep to cope with behavior change in hg 5.2.
Since version 5.2, revision filed not printed without all argument.
Fixed inaccurate pasring result with lastest hg and changed test case.
author | Daehyeok Mun <daehyeok@gmail.com> |
---|---|
date | Sat, 21 Mar 2020 19:59:50 -0700 |
parents | 868a903689fd |
children | f422a5fdda79 |
files | hglib/client.py tests/test-grep.py |
diffstat | 2 files changed, 40 insertions(+), 38 deletions(-) [+] |
line wrap: on
line diff
--- a/hglib/client.py Wed Dec 11 10:25:17 2019 -0500 +++ b/hglib/client.py Sat Mar 21 19:59:50 2020 -0700 @@ -881,9 +881,11 @@ raise error.CommandError(args, ret, out, err) return b('') - out = self.rawcommand(args, eh=eh).split(b('\0')) + out = self.rawcommand(args, eh=eh).split(b('\0'))[:-1] - fieldcount = 3 + fieldcount = 1 + if all or self.version < (5, 2): + fieldcount += 1 if user: fieldcount += 1 if date: @@ -892,8 +894,8 @@ fieldcount += 1 if all: fieldcount += 1 - if fileswithmatches: - fieldcount -= 1 + if not fileswithmatches: + fieldcount += 1 return util.grouper(fieldcount, out)
--- a/tests/test-grep.py Wed Dec 11 10:25:17 2019 -0500 +++ b/tests/test-grep.py Sat Mar 21 19:59:50 2020 -0700 @@ -3,62 +3,62 @@ class test_grep(common.basetest): def test_basic(self): - self.append('a', 'a\n') - self.append('b', 'ab\n') + self.append('a', 'x\n') + self.append('b', 'xy\n') self.client.commit(b('first'), addremove=True) # no match self.assertEquals(list(self.client.grep(b('c'))), []) if self.client.version >= (5, 2): - self.assertEquals(list(self.client.grep(b('a'))), - [(b('a'), b('a'), b('b'))]) - self.assertEquals(list(self.client.grep(b('a'), b('a'))), - [(b('a'), b('a'), b(''))]) + self.assertEquals(list(self.client.grep(b('x'))), + [(b('a'), b('x')), (b('b'), b('xy'))]) + self.assertEquals(list(self.client.grep(b('x'), b('a'))), + [(b('a'), b('x'))]) - self.assertEquals(list(self.client.grep(b('b'))), - [(b('b'), b('ab'), b(''))]) + self.assertEquals(list(self.client.grep(b('y'))), + [(b('b'), b('xy'))]) else: - self.assertEquals(list(self.client.grep(b('a'))), - [(b('a'), b('0'), b('a')), (b('b'), b('0'), b('ab'))]) - self.assertEquals(list(self.client.grep(b('a'), b('a'))), - [(b('a'), b('0'), b('a'))]) - - self.assertEquals(list(self.client.grep(b('b'))), - [(b('b'), b('0'), b('ab'))]) + self.assertEquals(list(self.client.grep(b('x'))), + [(b('a'), b('0'), b('x')), (b('b'), b('0'), b('xy'))]) + self.assertEquals(list(self.client.grep(b('x'), b('a'))), + [(b('a'), b('0'), b('x'))]) + self.assertEquals(list(self.client.grep(b('y'))), + [(b('b'), b('0'), b('xy'))]) def test_options(self): - self.append('a', 'a\n') - self.append('b', 'ab\n') + self.append('a', 'x\n') + self.append('b', 'xy\n') rev, node = self.client.commit(b('first'), addremove=True) - self.assertEquals([(b('a'), b('0'), b('+'), b('a')), - (b('b'), b('0'), b('+'), b('ab'))], - list(self.client.grep(b('a'), all=True))) + self.assertEquals([(b('a'), b('0'), b('+'), b('x')), + (b('b'), b('0'), b('+'), b('xy'))], + list(self.client.grep(b('x'), all=True))) if self.client.version >= (5, 2): - self.assertEquals([(b('a'), b('b'))], - list(self.client.grep(b('a'), fileswithmatches=True))) + self.assertEquals([(b('a'),), (b('b'),)], + list(self.client.grep(b('x'), fileswithmatches=True))) - self.assertEquals([(b('a'), b('1'), b('a'), b('b'))], - list(self.client.grep(b('a'), line=True))) + self.assertEquals([(b('a'), b('1'), b('x')), (b('b'), b('1'), b('xy'))], + list(self.client.grep(b('x'), line=True))) - self.assertEquals([(b('a'), b('test'), b('a'), b('b'))], - list(self.client.grep(b('a'), user=True))) + self.assertEquals([(b('a'), b('test'), b('x')), + (b('b'), b('test'), b('xy'))], + list(self.client.grep(b('x'), user=True))) else: self.assertEquals([(b('a'), b('0')), (b('b'), b('0'))], - list(self.client.grep(b('a'), fileswithmatches=True))) + list(self.client.grep(b('x'), fileswithmatches=True))) - self.assertEquals([(b('a'), b('0'), b('1'), b('a')), - (b('b'), b('0'), b('1'), b('ab'))], - list(self.client.grep(b('a'), line=True))) + self.assertEquals([(b('a'), b('0'), b('1'), b('x')), + (b('b'), b('0'), b('1'), b('xy'))], + list(self.client.grep(b('x'), line=True))) - self.assertEquals([(b('a'), b('0'), b('test'), b('a')), - (b('b'), b('0'), b('test'), b('ab'))], - list(self.client.grep(b('a'), user=True))) + self.assertEquals([(b('a'), b('0'), b('test'), b('x')), + (b('b'), b('0'), b('test'), b('xy'))], + list(self.client.grep(b('x'), user=True))) self.assertEquals([(b('a'), b('0'), b('1'), b('+'), b('test')), (b('b'), b('0'), b('1'), b('+'), b('test'))], - list(self.client.grep(b('a'), all=True, user=True, + list(self.client.grep(b('x'), all=True, user=True, line=True, fileswithmatches=True)))