comparison mercurial/testing/storage.py @ 40387:f1a39128da95

filelog: add a hasnode() method (API) Missing in the file storage interface is the ability to query whether a specified value is a known node. This commit defines that interface member and implements it on the revlog and sqlite file stores. Storage unit tests have been added. The revlog implementation is a bit more complicated because index lookups don't consistently raise the same exception. For SQLite, we can simply look for a key in a dict. Differential Revision: https://phab.mercurial-scm.org/D5163
author Gregory Szorc <gregory.szorc@gmail.com>
date Wed, 03 Oct 2018 14:57:29 -0700
parents 2c0aa02ecd5a
children 6a917075535a
comparison
equal deleted inserted replaced
40386:4a81d82474e9 40387:f1a39128da95
43 43
44 gen = iter(f) 44 gen = iter(f)
45 with self.assertRaises(StopIteration): 45 with self.assertRaises(StopIteration):
46 next(gen) 46 next(gen)
47 47
48 self.assertFalse(f.hasnode(None))
49 self.assertFalse(f.hasnode(0))
50 self.assertFalse(f.hasnode(nullrev))
51 self.assertFalse(f.hasnode(nullid))
52 self.assertFalse(f.hasnode(b'0'))
53 self.assertFalse(f.hasnode(b'a' * 20))
54
48 # revs() should evaluate to an empty list. 55 # revs() should evaluate to an empty list.
49 self.assertEqual(list(f.revs()), []) 56 self.assertEqual(list(f.revs()), [])
50 57
51 revs = iter(f.revs()) 58 revs = iter(f.revs())
52 with self.assertRaises(StopIteration): 59 with self.assertRaises(StopIteration):
158 gen = iter(f) 165 gen = iter(f)
159 self.assertEqual(next(gen), 0) 166 self.assertEqual(next(gen), 0)
160 167
161 with self.assertRaises(StopIteration): 168 with self.assertRaises(StopIteration):
162 next(gen) 169 next(gen)
170
171 self.assertTrue(f.hasnode(node))
172 self.assertFalse(f.hasnode(hex(node)))
173 self.assertFalse(f.hasnode(nullrev))
174 self.assertFalse(f.hasnode(nullid))
175 self.assertFalse(f.hasnode(node[0:12]))
176 self.assertFalse(f.hasnode(hex(node)[0:20]))
163 177
164 self.assertEqual(list(f.revs()), [0]) 178 self.assertEqual(list(f.revs()), [0])
165 self.assertEqual(list(f.revs(start=1)), []) 179 self.assertEqual(list(f.revs(start=1)), [])
166 self.assertEqual(list(f.revs(start=0)), [0]) 180 self.assertEqual(list(f.revs(start=0)), [0])
167 self.assertEqual(list(f.revs(stop=0)), [0]) 181 self.assertEqual(list(f.revs(stop=0)), [0])