Mercurial > public > mercurial-scm > hg-stable
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]) |