Changeset 988 for vendor/current/lib/tdb/python
- Timestamp:
- Nov 24, 2016, 1:14:11 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
vendor/current/lib/tdb/python/tests/simple.py
r986 r988 7 7 # Published under the GNU LGPLv3 or later 8 8 9 import sys 10 import os 11 import tempfile 12 from unittest import TestCase 13 9 14 import tdb 10 from unittest import TestCase11 import os, tempfile12 15 13 16 14 17 class OpenTdbTests(TestCase): 15 18 16 def test_nonexist ant_read(self):17 self.assertRaises(IOError, tdb.Tdb, "/some/nonexist ant/file", 0,19 def test_nonexistent_read(self): 20 self.assertRaises(IOError, tdb.Tdb, "/some/nonexistent/file", 0, 18 21 tdb.DEFAULT, os.O_RDWR) 19 22 … … 22 25 def test_double_close(self): 23 26 self.tdb = tdb.Tdb(tempfile.mkstemp()[1], 0, tdb.DEFAULT, 24 os.O_CREAT|os.O_RDWR)27 os.O_CREAT|os.O_RDWR) 25 28 self.assertNotEqual(None, self.tdb) 26 29 … … 29 32 self.tdb.close() 30 33 34 # Check that further operations do not crash python 35 self.assertRaises(RuntimeError, lambda: self.tdb.transaction_start()) 36 37 self.assertRaises(RuntimeError, lambda: self.tdb["bar"]) 38 31 39 32 40 class InternalTdbTests(TestCase): … … 37 45 # repr used to crash on internal db 38 46 self.assertEquals(repr(self.tdb), "Tdb(<internal>)") 47 48 49 class CommonTdbTests(TestCase): 50 """Tests common to both the text & bytes interfaces""" 51 52 use_text = False 53 54 def setUp(self): 55 super(CommonTdbTests, self).setUp() 56 self.tdb = tdb.Tdb(tempfile.mkstemp()[1], 0, tdb.DEFAULT, 57 os.O_CREAT|os.O_RDWR) 58 self.assertNotEqual(None, self.tdb) 59 if self.use_text: 60 self.tdb = self.tdb.text 61 62 def test_lockall(self): 63 self.tdb.lock_all() 64 65 def test_max_dead(self): 66 self.tdb.max_dead = 20 67 68 def test_unlockall(self): 69 self.tdb.lock_all() 70 self.tdb.unlock_all() 71 72 def test_lockall_read(self): 73 self.tdb.read_lock_all() 74 self.tdb.read_unlock_all() 75 76 def test_reopen(self): 77 self.tdb.reopen() 78 79 def test_hash_size(self): 80 self.tdb.hash_size 81 82 def test_map_size(self): 83 self.tdb.map_size 84 85 def test_freelist_size(self): 86 self.tdb.freelist_size 87 88 def test_name(self): 89 self.tdb.filename 90 91 def test_add_flags(self): 92 self.tdb.add_flags(tdb.NOMMAP) 93 self.tdb.remove_flags(tdb.NOMMAP) 94 95 96 class TextCommonTdbTests(CommonTdbTests): 97 98 use_text = True 39 99 40 100 … … 44 104 super(SimpleTdbTests, self).setUp() 45 105 self.tdb = tdb.Tdb(tempfile.mkstemp()[1], 0, tdb.DEFAULT, 46 os.O_CREAT|os.O_RDWR)106 os.O_CREAT|os.O_RDWR) 47 107 self.assertNotEqual(None, self.tdb) 48 49 def tearDown(self):50 del self.tdb51 108 52 109 def test_repr(self): 53 110 self.assertTrue(repr(self.tdb).startswith("Tdb('")) 54 111 55 def test_lockall(self): 56 self.tdb.lock_all() 57 58 def test_max_dead(self): 59 self.tdb.max_dead = 20 60 61 def test_unlockall(self): 62 self.tdb.lock_all() 63 self.tdb.unlock_all() 64 65 def test_lockall_read(self): 66 self.tdb.read_lock_all() 67 self.tdb.read_unlock_all() 68 69 def test_reopen(self): 112 def test_store(self): 113 self.tdb.store(b"bar", b"bla") 114 self.assertEquals(b"bla", self.tdb.get(b"bar")) 115 116 def test_getitem(self): 117 self.tdb[b"bar"] = b"foo" 70 118 self.tdb.reopen() 71 72 def test_store(self): 73 self.tdb.store("bar", "bla") 74 self.assertEquals("bla", self.tdb.get("bar")) 75 76 def test_getitem(self): 77 self.tdb["bar"] = "foo" 78 self.tdb.reopen() 79 self.assertEquals("foo", self.tdb["bar"]) 119 self.assertEquals(b"foo", self.tdb[b"bar"]) 80 120 81 121 def test_delete(self): 82 self.tdb[ "bar"] ="foo"83 del self.tdb[ "bar"]84 self.assertRaises(KeyError, lambda: self.tdb[ "bar"])85 122 self.tdb[b"bar"] = b"foo" 123 del self.tdb[b"bar"] 124 self.assertRaises(KeyError, lambda: self.tdb[b"bar"]) 125 86 126 def test_contains(self): 87 self.tdb["bla"] = "bloe" 88 self.assertTrue("bla" in self.tdb) 127 self.tdb[b"bla"] = b"bloe" 128 self.assertTrue(b"bla" in self.tdb) 129 self.assertFalse(b"qwertyuiop" in self.tdb) 130 if sys.version_info < (3, 0): 131 self.assertTrue(self.tdb.has_key(b"bla")) 132 self.assertFalse(self.tdb.has_key(b"qwertyuiop")) 89 133 90 134 def test_keyerror(self): 91 self.assertRaises(KeyError, lambda: self.tdb["bla"]) 92 93 def test_hash_size(self): 94 self.tdb.hash_size 95 96 def test_map_size(self): 97 self.tdb.map_size 98 99 def test_freelist_size(self): 100 self.tdb.freelist_size 101 102 def test_name(self): 103 self.tdb.filename 135 self.assertRaises(KeyError, lambda: self.tdb[b"bla"]) 104 136 105 137 def test_iterator(self): 106 self.tdb["bla"] = "1" 107 self.tdb["brainslug"] = "2" 108 self.assertEquals(["bla", "brainslug"], list(self.tdb)) 138 self.tdb[b"bla"] = b"1" 139 self.tdb[b"brainslug"] = b"2" 140 l = list(self.tdb) 141 l.sort() 142 self.assertEquals([b"bla", b"brainslug"], l) 109 143 110 144 def test_transaction_cancel(self): 111 self.tdb[ "bloe"] ="2"112 self.tdb.transaction_start() 113 self.tdb[ "bloe"] ="1"145 self.tdb[b"bloe"] = b"2" 146 self.tdb.transaction_start() 147 self.tdb[b"bloe"] = b"1" 114 148 self.tdb.transaction_cancel() 115 self.assertEquals( "2", self.tdb["bloe"])149 self.assertEquals(b"2", self.tdb[b"bloe"]) 116 150 117 151 def test_transaction_commit(self): 118 self.tdb[ "bloe"] ="2"119 self.tdb.transaction_start() 120 self.tdb[ "bloe"] ="1"152 self.tdb[b"bloe"] = b"2" 153 self.tdb.transaction_start() 154 self.tdb[b"bloe"] = b"1" 121 155 self.tdb.transaction_commit() 122 self.assertEquals( "1", self.tdb["bloe"])156 self.assertEquals(b"1", self.tdb[b"bloe"]) 123 157 124 158 def test_transaction_prepare_commit(self): 125 self.tdb[ "bloe"] ="2"126 self.tdb.transaction_start() 127 self.tdb[ "bloe"] ="1"159 self.tdb[b"bloe"] = b"2" 160 self.tdb.transaction_start() 161 self.tdb[b"bloe"] = b"1" 128 162 self.tdb.transaction_prepare_commit() 129 163 self.tdb.transaction_commit() 130 self.assertEquals( "1", self.tdb["bloe"])164 self.assertEquals(b"1", self.tdb[b"bloe"]) 131 165 132 166 def test_iterkeys(self): 133 self.tdb["bloe"] = "2" 134 self.tdb["bla"] = "25" 135 i = self.tdb.iterkeys() 136 self.assertEquals(set(["bloe", "bla"]), set([i.next(), i.next()])) 167 self.tdb[b"bloe"] = b"2" 168 self.tdb[b"bla"] = b"25" 169 if sys.version_info >= (3, 0): 170 i = self.tdb.keys() 171 else: 172 i = self.tdb.iterkeys() 173 self.assertEquals(set([b"bloe", b"bla"]), set([next(i), next(i)])) 137 174 138 175 def test_clear(self): 139 self.tdb[ "bloe"] ="2"140 self.tdb[ "bla"] ="25"176 self.tdb[b"bloe"] = b"2" 177 self.tdb[b"bla"] = b"25" 141 178 self.assertEquals(2, len(list(self.tdb))) 142 179 self.tdb.clear() … … 144 181 145 182 def test_repack(self): 146 self.tdb[ "foo"] ="abc"147 self.tdb[ "bar"] ="def"148 del self.tdb[ "foo"]183 self.tdb[b"foo"] = b"abc" 184 self.tdb[b"bar"] = b"def" 185 del self.tdb[b"foo"] 149 186 self.tdb.repack() 150 187 … … 158 195 def test_len(self): 159 196 self.assertEquals(0, len(list(self.tdb))) 160 self.tdb[ "entry"] ="value"197 self.tdb[b"entry"] = b"value" 161 198 self.assertEquals(1, len(list(self.tdb))) 162 199 163 def test_add_flags(self): 164 self.tdb.add_flags(tdb.NOMMAP) 165 self.tdb.remove_flags(tdb.NOMMAP) 200 201 class TdbTextTests(TestCase): 202 203 def setUp(self): 204 super(TdbTextTests, self).setUp() 205 self.tdb = tdb.Tdb(tempfile.mkstemp()[1], 0, tdb.DEFAULT, 206 os.O_CREAT|os.O_RDWR) 207 self.assertNotEqual(None, self.tdb) 208 209 def test_repr(self): 210 self.assertTrue(repr(self.tdb).startswith("Tdb('")) 211 212 def test_store(self): 213 self.tdb.text.store("bar", "bla") 214 self.assertEquals("bla", self.tdb.text.get("bar")) 215 216 def test_getitem(self): 217 self.tdb.text["bar"] = "foo" 218 self.tdb.reopen() 219 self.assertEquals("foo", self.tdb.text["bar"]) 220 221 def test_delete(self): 222 self.tdb.text["bar"] = "foo" 223 del self.tdb.text["bar"] 224 self.assertRaises(KeyError, lambda: self.tdb.text["bar"]) 225 226 def test_contains(self): 227 self.tdb.text["bla"] = "bloe" 228 self.assertTrue("bla" in self.tdb.text) 229 self.assertFalse("qwertyuiop" in self.tdb.text) 230 if sys.version_info < (3, 0): 231 self.assertTrue(self.tdb.text.has_key("bla")) 232 self.assertFalse(self.tdb.text.has_key("qwertyuiop")) 233 234 def test_keyerror(self): 235 self.assertRaises(KeyError, lambda: self.tdb.text["bla"]) 236 237 def test_iterator(self): 238 self.tdb.text["bla"] = "1" 239 self.tdb.text["brainslug"] = "2" 240 l = list(self.tdb.text) 241 l.sort() 242 self.assertEquals(["bla", "brainslug"], l) 243 244 def test_transaction_cancel(self): 245 self.tdb.text["bloe"] = "2" 246 self.tdb.transaction_start() 247 self.tdb.text["bloe"] = "1" 248 self.tdb.transaction_cancel() 249 self.assertEquals("2", self.tdb.text["bloe"]) 250 251 def test_transaction_commit(self): 252 self.tdb.text["bloe"] = "2" 253 self.tdb.transaction_start() 254 self.tdb.text["bloe"] = "1" 255 self.tdb.transaction_commit() 256 self.assertEquals("1", self.tdb.text["bloe"]) 257 258 def test_transaction_prepare_commit(self): 259 self.tdb.text["bloe"] = "2" 260 self.tdb.transaction_start() 261 self.tdb.text["bloe"] = "1" 262 self.tdb.transaction_prepare_commit() 263 self.tdb.transaction_commit() 264 self.assertEquals("1", self.tdb.text["bloe"]) 265 266 def test_iterkeys(self): 267 self.tdb.text["bloe"] = "2" 268 self.tdb.text["bla"] = "25" 269 if sys.version_info >= (3, 0): 270 i = self.tdb.text.keys() 271 else: 272 i = self.tdb.text.iterkeys() 273 self.assertEquals(set(["bloe", "bla"]), set([next(i), next(i)])) 274 275 def test_clear(self): 276 self.tdb.text["bloe"] = "2" 277 self.tdb.text["bla"] = "25" 278 self.assertEquals(2, len(list(self.tdb))) 279 self.tdb.clear() 280 self.assertEquals(0, len(list(self.tdb))) 281 282 def test_repack(self): 283 self.tdb.text["foo"] = "abc" 284 self.tdb.text["bar"] = "def" 285 del self.tdb.text["foo"] 286 self.tdb.repack() 287 288 def test_len(self): 289 self.assertEquals(0, len(list(self.tdb.text))) 290 self.tdb.text["entry"] = "value" 291 self.assertEquals(1, len(list(self.tdb.text))) 292 293 def test_text_and_binary(self): 294 text = u'\xfa\u0148\xef\xe7\xf8\xf0\xea' 295 bytestr = text.encode('utf-8') 296 self.tdb[b"entry"] = bytestr 297 self.tdb.text[u"entry2"] = text 298 self.assertEquals(self.tdb.text["entry"], text) 299 self.assertEquals(self.tdb[b"entry2"], bytestr) 300 assert self.tdb.text.raw == self.tdb 166 301 167 302
Note:
See TracChangeset
for help on using the changeset viewer.