view tests/test-hidden.py @ 124:cc7569bffb26

context: add 'hidden' method to check if the changeset is hidden This method should not be a static property obtained at creation as the hidden status may change.
author Paul Tonelli <paul.tonelli@logilab.fr>
date Thu, 15 May 2014 15:12:13 +0200
parents cdde1656346f
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())