Mercurial > public > mercurial-scm > python-hglib
view tests/test-status.py @ 216:68588c652ac6
client: handle commit messages with \0 characters
Mercurial allows commit messages containing \0 characters,
but hglib does not properly handle them.
By using the json template, these characters are correctly escaped.
Note: initial change only modifies this for the 'log' command,
I'll follow-up for other commands if this is ok.
author | Mathias De Mare <mathias.de_mare@nokia.com> |
---|---|
date | Wed, 08 Mar 2023 16:22:21 +0100 |
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)