diff tests/test_hidden.py @ 219:8341f2494b3f

hglib tests: migrate away from (unmaintained) nose
author Mathias De Mare <mathias.de_mare@nokia.com>
date Wed, 08 Mar 2023 17:04:58 +0100
parents tests/test-hidden.py@12e6aaef0f6e
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test_hidden.py	Wed Mar 08 17:04:58 2023 +0100
@@ -0,0 +1,74 @@
+from tests import common
+import hglib, datetime
+from hglib.error import CommandError
+from hglib.util import b
+
+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(b('gna1'))
+        cs = self.client.commit(b('gna1'))[1] #get id
+        self.assertRaises(CommandError,
+                          self.client.rawcommand, [b('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\n"
+                    "# 3.2 and later\n"
+                    "mercurial.obsolete.isenabled = lambda r, opt: True\n"
+                    "# Dropped in 5.1\n"
+                    "mercurial.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(b('gna1'))
+        cs = self.client.commit(b('gna1'))[1] #get id
+        self.client.rawcommand([b('debugobsolete'), cs])
+
+    def test_obsolete_in(self):
+        """test the 'hidden' keyword with the 'in' method"""
+        if self.client.version < (2, 9, 0):
+            return
+        self.append('gna1','ga')
+        self.client.add(b('gna1'))
+        cs0 = self.client.commit(b('gna1'))[1] #get id
+        self.append('gna2','gaaa')
+        self.client.add(b('gna2'))
+        cs1 = self.client.commit(b('gna2'))[1] #get id
+        self.client.rawcommand([b('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):
+        if self.client.version < (2, 9, 0):
+            return
+        self.append('gna1','ga')
+        self.client.add(b('gna1'))
+        cs0 = self.client.commit(b('gna1'))[1] #get id
+        ctx0 = self.client[cs0]
+        self.append('gna2','gaaa')
+        self.client.add(b('gna2'))
+        cs1 = self.client.commit(b('gna2'))[1] #get id
+        ctx1 = self.client[cs1]
+        self.client.rawcommand([b('debugobsolete'), cs1])
+        self.client.update(cs0)
+        self.assertTrue(ctx1.hidden())
+        self.assertFalse(ctx0.hidden())