view tests/test-status.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

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

class test_status(common.basetest):
    def test_empty(self):
        self.assertEquals(self.client.status(), [])

    def test_one_of_each(self):
        self.append('.hgignore', 'ignored')
        self.append('ignored', 'a')
        self.append('clean', 'a')
        self.append('modified', 'a')
        self.append('removed', 'a')
        self.append('missing', 'a')
        self.client.commit(b('first'), addremove=True)
        self.append('modified', 'a')
        self.append('added', 'a')
        self.client.add([b('added')])
        os.remove('missing')
        self.client.remove([b('removed')])
        self.append('untracked')

        l = [(b('M'), b('modified')),
             (b('A'), b('added')),
             (b('R'), b('removed')),
             (b('C'), b('.hgignore')),
             (b('C'), b('clean')),
             (b('!'), b('missing')),
             (b('?'), b('untracked')),
             (b('I'), b('ignored'))]

        st = self.client.status(all=True)

        for i in l:
            self.assertTrue(i in st)

    def test_copy(self):
        self.append('source', 'a')
        self.client.commit(b('first'), addremove=True)
        self.client.copy(b('source'), b('dest'))
        l = [(b('A'), b('dest')), (b(' '), b('source'))]
        self.assertEquals(self.client.status(copies=True), l)

    def test_copy_origin_space(self):
        self.append('s ource', 'a')
        self.client.commit(b('first'), addremove=True)
        self.client.copy(b('s ource'), b('dest'))
        l = [(b('A'), b('dest')), (b(' '), b('s ource'))]
        self.assertEquals(self.client.status(copies=True), l)