Mercurial > public > mercurial-scm > python-hglib
view tests/test-hidden.py @ 127:53387d1e620b
client: connect to repo if necessary when using "with" statement
While the '__exit__' closes the connection to the server, the __enter__ method
does not open it. Without this patch, a disconnected repo cannot be used with a
context managed unless you explicitely call the "open" method.
author | Paul Tonelli <paul.tonelli@logilab.fr> |
---|---|
date | Mon, 16 Jun 2014 18:29:06 +0200 |
parents | cc7569bffb26 |
children | bcc8390d7819 |
line wrap: on
line source
import common, hglib, datetime from hglib.error import CommandError class test_obsolete_reference(common.basetest): """make sure obsolete changesets are disabled""" def test_debugobsolete_failure(self): f = open('gna1','w') f.write('g') f.close() self.client.add('gna1') cs = self.client.commit('gna1')[1] #get id with self.assertRaises(CommandError): self.client.rawcommand(['debugobsolete', cs]) class test_obsolete_baselib(common.basetest): """base test class with obsolete changesets enabled""" def setUp(self): #create an extension which only activates obsolete super(test_obsolete_baselib, self).setUp() self.append('.hg/obs.py',"""import mercurial.obsolete\nmercurial.obsolete._enabled = True""") self.append('.hg/hgrc','\n[extensions]\nobs=.hg/obs.py') class test_obsolete_client(test_obsolete_baselib): """check client methods with obsolete changesets enabled""" def test_debugobsolete_success(self): """check the obsolete extension is available""" self.append('gna1','ga') self.client.add('gna1') cs = self.client.commit('gna1')[1] #get id self.client.rawcommand(['debugobsolete', cs]) def test_obsolete_in(self): """test the 'hidden' keyword with the 'in' method""" self.append('gna1','ga') self.client.add('gna1') cs0 = self.client.commit('gna1')[1] #get id self.append('gna2','gaaa') self.client.add('gna2') cs1 = self.client.commit('gna2')[1] #get id self.client.rawcommand(['debugobsolete', cs1]) self.client.update(cs0) self.assertFalse(cs1 in self.client) self.assertTrue(cs0 in self.client) self.client.hidden = True self.assertTrue(cs1 in self.client) class test_hidden_context(test_obsolete_baselib): """test the "hidden" context method with obsolete changesets enabled on hidden and visible changesets""" def test_hidden(self): self.append('gna1','ga') self.client.add('gna1') cs0 = self.client.commit('gna1')[1] #get id ctx0 = self.client[cs0] self.append('gna2','gaaa') self.client.add('gna2') cs1 = self.client.commit('gna2')[1] #get id ctx1 = self.client[cs1] self.client.rawcommand(['debugobsolete', cs1]) self.client.update(cs0) self.assertTrue(ctx1.hidden()) self.assertFalse(ctx0.hidden())