view tests/test-grep.py @ 197:6949fc164439 2.5

hgclient: look for an open server before closing it in ResponseError block At least some of the codepaths that can throw a ResponseError close the server first (the one in _readchannel does so in order to detect server startup failures, for example), so we have to verify we have a server to close before doing so, otherwise we can lose the ResponseError and the user sees an AttributeError when we try to use .close() on a NoneType.
author Augie Fackler <raf@durin42.com>
date Sun, 10 Dec 2017 12:52:37 -0500
parents c1b966866ed7
children 1a318162f06f
line wrap: on
line source

from tests import common
from hglib.util import b

class test_grep(common.basetest):
    def test_basic(self):
        self.append('a', 'a\n')
        self.append('b', 'ab\n')
        self.client.commit(b('first'), addremove=True)

        # no match
        self.assertEquals(list(self.client.grep(b('c'))), [])

        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'))])

    def test_options(self):
        self.append('a', 'a\n')
        self.append('b', 'ab\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'), b('0'))],
                          list(self.client.grep(b('a'), 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('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('1'), b('+'), b('test')),
                           (b('b'), b('0'), b('1'), b('+'), b('test'))],
                          list(self.client.grep(b('a'), all=True, user=True,
                                                line=True,
                                                fileswithmatches=True)))