Mercurial > python-hglib
changeset 11:0549d00a617d
client: add missing options to branch()
and add some more tests
author | Idan Kamara <idankk86@gmail.com> |
---|---|
date | Wed, 10 Aug 2011 00:21:05 +0300 |
parents | fce3102c19e5 |
children | c2a9b716cd80 |
files | hglib/client.py tests/test-branch.py |
diffstat | 2 files changed, 45 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/hglib/client.py Tue Aug 09 23:24:40 2011 +0300 +++ b/hglib/client.py Wed Aug 10 00:21:05 2011 +0300 @@ -141,9 +141,20 @@ self.server = None return ret - def branch(self, name=None): - if not name: - return self.rawcommand(['branch']).rstrip() + def branch(self, name=None, clean=False, force=False): + if name and clean: + raise ValueError('cannot use both name and clean') + + args = cmdbuilder('branch', name, f=force, C=clean) + out = self.rawcommand(args).rstrip() + + if name: + return name + elif not clean: + return out + else: + # len('reset working directory to branch ') == 34 + return out[34:] def branches(self): out = self.rawcommand(['branches'])
--- a/tests/test-branch.py Tue Aug 09 23:24:40 2011 +0300 +++ b/tests/test-branch.py Wed Aug 10 00:21:05 2011 +0300 @@ -2,10 +2,38 @@ import hglib class test_branch(common.basetest): + def test_empty(self): + self.assertEquals(self.client.branch(), 'default') + def test_basic(self): - self.assertEquals(self.client.branch(), 'default') + self.assertEquals(self.client.branch('foo'), 'foo') self.append('a', 'a') rev = self.client.commit('first', addremove=True) - branches = self.client.branches() + + self.assertEquals(rev.branch, 'foo') + self.assertEquals(self.client.branches()[rev.branch], rev) + + def test_reset_with_name(self): + self.assertRaises(ValueError, self.client.branch, 'foo', clean=True) + + def test_reset(self): + self.client.branch('foo') + self.assertEquals(self.client.branch(clean=True), 'default') - self.assertEquals(rev, branches[rev.branch]) + def test_exists(self): + self.append('a', 'a') + self.client.commit('first', addremove=True) + self.client.branch('foo') + self.append('a', 'a') + self.client.commit('second') + self.assertRaises(hglib.error.CommandError, self.client.branch, 'default') + + def test_force(self): + self.append('a', 'a') + self.client.commit('first', addremove=True) + self.client.branch('foo') + self.append('a', 'a') + self.client.commit('second') + + self.assertRaises(hglib.error.CommandError, self.client.branch, 'default') + self.assertEquals(self.client.branch('default', force=True), 'default')