view tests/test-outgoing-incoming.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
line wrap: on
line source

from tests import common
import hglib
from hglib.util import b

class test_outgoing_incoming(common.basetest):
    def test_no_path(self):
        self.assertRaises(hglib.error.CommandError, self.client.incoming)

    def test_empty(self):
        self.client.clone(dest=b('other'))
        self.other = hglib.open(b('other'))

        self.assertEquals(self.other.incoming(), [])
        self.assertEquals(self.other.outgoing(), [])

    def test_basic(self):
        self.append('a', 'a')
        self.client.commit(b('first'), addremove=True)
        self.append('a', 'a')
        self.client.commit(b('second'))

        self.client.clone(dest=b('other'))
        other = hglib.open(b('other'))

        self.assertEquals(self.client.log(), other.log())
        self.assertEquals(self.client.outgoing(path=b('other')),
                          other.incoming())

        self.append('a', 'a')
        rev, node = self.client.commit(b('third'))
        out = self.client.outgoing(path=b('other'))

        self.assertEquals(len(out), 1)
        self.assertEquals(out[0].node, node)

        self.assertEquals(out, other.incoming())

    def test_bookmarks(self):
        self.append('a', 'a')
        self.client.commit(b('first'), addremove=True)
        self.append('a', 'a')
        self.client.commit(b('second'))

        self.client.clone(dest=b('other'))
        other = hglib.open(b('other'))

        self.client.bookmark(b('bm1'), 1)

        self.assertEquals(other.incoming(bookmarks=True),
                          [(b('bm1'), self.client.tip().node[:12])])

        self.assertEquals(self.client.outgoing(path=b('other'), bookmarks=True),
                          [(b('bm1'), self.client.tip().node[:12])])