view tests/test-config.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 os, hglib
from hglib.util import b

class test_config(common.basetest):
    def setUp(self):
        common.basetest.setUp(self)
        f = open('.hg/hgrc', 'a')
        f.write('[section]\nkey=value\n')
        f.close()
        self.client = hglib.open()

    def test_basic(self):
        config = self.client.config()

        self.assertTrue(
                (b('section'), b('key'), b('value')) in self.client.config())

        self.assertTrue([(b('section'), b('key'), b('value'))],
                        self.client.config(b('section')))
        self.assertTrue([(b('section'), b('key'), b('value'))],
                        self.client.config([b('section'), b('foo')]))
        self.assertRaises(hglib.error.CommandError,
                          self.client.config, [b('a.b'), b('foo')])

    def test_show_source(self):
        config = self.client.config(showsource=True)

        self.assertTrue((os.path.abspath(b('.hg/hgrc')) + b(':2'),
                         b('section'), b('key'), b('value')) in config)

class test_config_arguments(common.basetest):
    def test_basic(self):
        client = hglib.open(configs=[b('diff.unified=5'), b('a.b=foo')])
        self.assertEqual(client.config(b('a')), [(b('a'), b('b'), b('foo'))])
        self.assertEqual(client.config(b('diff')),
                         [(b('diff'), b('unified'), b('5'))])