view tests/test_log.py @ 226:7b6ea46ea111

setup.py: clean up use of os.popen
author Mathias De Mare <mathias.de_mare@nokia.com>
date Tue, 14 Mar 2023 10:23:08 +0100
parents fba806958dba
children
line wrap: on
line source

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

class test_log(common.basetest):
    def test_basic(self):
        self.append('a', 'a')
        rev0, node0 = self.client.commit(b('first'), addremove=True)
        self.append('a', 'a')
        rev1, node1 = self.client.commit(b('second'))

        revs = self.client.log()
        revs.reverse()

        self.assertTrue(len(revs) == 2)
        self.assertEqual(revs[1].node, node1)

        self.assertEqual(revs[0], self.client.log(b('0'))[0])
        self.assertEqual(self.client.log(), self.client.log(files=[b('a')]))

        self.assertEqual(self.client.log(), self.client.log(hidden=True))

    def test_dash_in_filename(self):
        self.append('-a', '-a')
        self.client.commit(b('first'), addremove=True)
        revs = self.client.log(files=[b('-a')])
        self.assertTrue(len(revs) == 1)
        self.assertEqual(revs[0].rev, b('0'))

    def test_empty_short_option(self):
        self.append('foobar', 'foobar')
        self.client.commit(b('first'), addremove=True)
        revs = self.client.log(keyword=b(''), files=[b('foobar')])
        self.assertTrue(len(revs) == 1)
        self.assertEqual(revs[0].rev, b('0'))

    def test_null_byte(self):
        self.append('a', 'a')
        with open('commitmessagenullbyte', 'w') as f:
            f.write('some message\0more stuff')
        # use 'hg' directly here as hglib doesn't allow
        # committing null byte descriptions
        subprocess.check_call(["hg", "commit",
            "-l", "commitmessagenullbyte", "--addremove", "-q"])
        revs = self.client.log(revrange=b('.'))
        self.assertEqual(revs[0].desc, b('some message\0more stuff'))

    # def test_errors(self):
    #     self.assertRaisesRegexp(CommandError, 'abort: unknown revision',
    #                             self.client.log, 'foo')
    #     self.append('a', 'a')
    #     self.client.commit('first', addremove=True)
    #     self.assertRaisesRegexp(CommandError,
    #                             'abort: unknown revision',
    #                             self.client.log, 'bar')