Lines Matching refs:self

38     def setUp(self):  argument
39 self.TMP_DIR = tempfile.mkdtemp(prefix="ldb_test_")
40 self.DB_NAME = "testdb"
42 def tearDown(self): argument
43 assert(self.TMP_DIR.strip() != "/"
44 and self.TMP_DIR.strip() != "/tmp"
45 and self.TMP_DIR.strip() != "/tmp/") #Just some paranoia
47 shutil.rmtree(self.TMP_DIR)
49 def dbParam(self, dbName): argument
50 return "--db=%s" % os.path.join(self.TMP_DIR, dbName)
52 def assertRunOKFull(self, params, expectedOutput, unexpected=False, argument
62 self.assertNotEqual(expectedOutput.search(output.strip()),
65 self.assertEqual(output.strip(), expectedOutput.strip())
68 self.assertEqual(expectedOutput.search(output.strip()), None)
70 self.assertNotEqual(output.strip(), expectedOutput.strip())
72 def assertRunFAILFull(self, params): argument
83 self.fail(
87 def assertRunOK(self, params, expectedOutput, unexpected=False): argument
91 self.assertRunOKFull("%s %s" % (self.dbParam(self.DB_NAME), params),
94 def assertRunFAIL(self, params): argument
98 self.assertRunFAILFull("%s %s" % (self.dbParam(self.DB_NAME), params))
100 def testSimpleStringPutGet(self): argument
102 self.assertRunFAIL("put x1 y1")
103 self.assertRunOK("put --create_if_missing x1 y1", "OK")
104 self.assertRunOK("get x1", "y1")
105 self.assertRunFAIL("get x2")
107 self.assertRunOK("put x2 y2", "OK")
108 self.assertRunOK("get x1", "y1")
109 self.assertRunOK("get x2", "y2")
110 self.assertRunFAIL("get x3")
112 self.assertRunOK("scan --from=x1 --to=z", "x1 : y1\nx2 : y2")
113 self.assertRunOK("put x3 y3", "OK")
115 self.assertRunOK("scan --from=x1 --to=z", "x1 : y1\nx2 : y2\nx3 : y3")
116 self.assertRunOK("scan", "x1 : y1\nx2 : y2\nx3 : y3")
117 self.assertRunOK("scan --from=x", "x1 : y1\nx2 : y2\nx3 : y3")
119 self.assertRunOK("scan --to=x2", "x1 : y1")
120 self.assertRunOK("scan --from=x1 --to=z --max_keys=1", "x1 : y1")
121 self.assertRunOK("scan --from=x1 --to=z --max_keys=2",
124 self.assertRunOK("scan --from=x1 --to=z --max_keys=3",
126 self.assertRunOK("scan --from=x1 --to=z --max_keys=4",
128 self.assertRunOK("scan --from=x1 --to=x2", "x1 : y1")
129 self.assertRunOK("scan --from=x2 --to=x4", "x2 : y2\nx3 : y3")
130 self.assertRunFAIL("scan --from=x4 --to=z") # No results => FAIL
131 self.assertRunFAIL("scan --from=x1 --to=z --max_keys=foo")
133 self.assertRunOK("scan", "x1 : y1\nx2 : y2\nx3 : y3")
135 self.assertRunOK("delete x1", "OK")
136 self.assertRunOK("scan", "x2 : y2\nx3 : y3")
138 self.assertRunOK("delete NonExistentKey", "OK")
142 self.assertRunOK("checkconsistency", "OK")
144 def dumpDb(self, params, dumpFile): argument
147 def loadDb(self, params, dumpFile): argument
150 def writeExternSst(self, params, inputDumpFile, outputSst): argument
154 def ingestExternSst(self, params, inputSst): argument
158 def testStringBatchPut(self): argument
160 self.assertRunOK("batchput x1 y1 --create_if_missing", "OK")
161 self.assertRunOK("scan", "x1 : y1")
162 self.assertRunOK("batchput x2 y2 x3 y3 \"x4 abc\" \"y4 xyz\"", "OK")
163 self.assertRunOK("scan", "x1 : y1\nx2 : y2\nx3 : y3\nx4 abc : y4 xyz")
164 self.assertRunFAIL("batchput")
165 self.assertRunFAIL("batchput k1")
166 self.assertRunFAIL("batchput k1 v1 k2")
168 def testCountDelimDump(self): argument
170 self.assertRunOK("batchput x.1 x1 --create_if_missing", "OK")
171 self.assertRunOK("batchput y.abc abc y.2 2 z.13c pqr", "OK")
172self.assertRunOK("dump --count_delim", "x => count:1\tsize:5\ny => count:2\tsize:12\nz => count:1\…
173self.assertRunOK("dump --count_delim=\".\"", "x => count:1\tsize:5\ny => count:2\tsize:12\nz => co…
174 self.assertRunOK("batchput x,2 x2 x,abc xabc", "OK")
175self.assertRunOK("dump --count_delim=\",\"", "x => count:2\tsize:14\nx.1 => count:1\tsize:5\ny.2 =…
177 def testCountDelimIDump(self): argument
179 self.assertRunOK("batchput x.1 x1 --create_if_missing", "OK")
180 self.assertRunOK("batchput y.abc abc y.2 2 z.13c pqr", "OK")
181self.assertRunOK("idump --count_delim", "x => count:1\tsize:5\ny => count:2\tsize:12\nz => count:1…
182self.assertRunOK("idump --count_delim=\".\"", "x => count:1\tsize:5\ny => count:2\tsize:12\nz => c…
183 self.assertRunOK("batchput x,2 x2 x,abc xabc", "OK")
184self.assertRunOK("idump --count_delim=\",\"", "x => count:2\tsize:14\nx.1 => count:1\tsize:5\ny.2 …
186 def testInvalidCmdLines(self): argument
189 self.assertRunFAILFull("put 0x6133 0x6233 --hex --create_if_missing")
191 self.assertRunFAIL("put 0x6133 0x6233 --he --create_if_missing")
193 self.assertRunFAIL("put 0x6133 0x6233 --max_keys=1 --create_if_missing")
196 def testHexPutGet(self): argument
198 self.assertRunOK("put a1 b1 --create_if_missing", "OK")
199 self.assertRunOK("scan", "a1 : b1")
200 self.assertRunOK("scan --hex", "0x6131 : 0x6231")
201 self.assertRunFAIL("put --hex 6132 6232")
202 self.assertRunOK("put --hex 0x6132 0x6232", "OK")
203 self.assertRunOK("scan --hex", "0x6131 : 0x6231\n0x6132 : 0x6232")
204 self.assertRunOK("scan", "a1 : b1\na2 : b2")
205 self.assertRunOK("get a1", "b1")
206 self.assertRunOK("get --hex 0x6131", "0x6231")
207 self.assertRunOK("get a2", "b2")
208 self.assertRunOK("get --hex 0x6132", "0x6232")
209 self.assertRunOK("get --key_hex 0x6132", "b2")
210 self.assertRunOK("get --key_hex --value_hex 0x6132", "0x6232")
211 self.assertRunOK("get --value_hex a2", "0x6232")
212 self.assertRunOK("scan --key_hex --value_hex",
214 self.assertRunOK("scan --hex --from=0x6131 --to=0x6133",
216 self.assertRunOK("scan --hex --from=0x6131 --to=0x6132",
218 self.assertRunOK("scan --key_hex", "0x6131 : b1\n0x6132 : b2")
219 self.assertRunOK("scan --value_hex", "a1 : 0x6231\na2 : 0x6232")
220 self.assertRunOK("batchput --hex 0x6133 0x6233 0x6134 0x6234", "OK")
221 self.assertRunOK("scan", "a1 : b1\na2 : b2\na3 : b3\na4 : b4")
222 self.assertRunOK("delete --hex 0x6133", "OK")
223 self.assertRunOK("scan", "a1 : b1\na2 : b2\na4 : b4")
224 self.assertRunOK("checkconsistency", "OK")
226 def testTtlPutGet(self): argument
228 self.assertRunOK("put a1 b1 --ttl --create_if_missing", "OK")
229 self.assertRunOK("scan --hex", "0x6131 : 0x6231", True)
230 self.assertRunOK("dump --ttl ", "a1 ==> b1", True)
231 self.assertRunOK("dump --hex --ttl ",
233 self.assertRunOK("scan --hex --ttl", "0x6131 : 0x6231")
234 self.assertRunOK("get --value_hex a1", "0x6231", True)
235 self.assertRunOK("get --ttl a1", "b1")
236 self.assertRunOK("put a3 b3 --create_if_missing", "OK")
238 self.assertRunFAIL("get --ttl a3")
239 self.assertRunOK("checkconsistency", "OK")
241 def testInvalidCmdLines(self): # noqa: F811 T25377293 Grandfathered in argument
244 self.assertRunFAILFull("put 0x6133 0x6233 --hex --create_if_missing")
246 self.assertRunFAIL("put 0x6133 0x6233 --he --create_if_missing")
248 self.assertRunFAIL("put 0x6133 0x6233 --max_keys=1 --create_if_missing")
250 self.assertRunFAIL("put 0x6133 0x6233 --hex=Boo --create_if_missing")
252 def testDumpLoad(self): argument
254 self.assertRunOK("batchput --create_if_missing x1 y1 x2 y2 x3 y3 x4 y4",
256 self.assertRunOK("scan", "x1 : y1\nx2 : y2\nx3 : y3\nx4 : y4")
257 origDbPath = os.path.join(self.TMP_DIR, self.DB_NAME)
260 dumpFilePath = os.path.join(self.TMP_DIR, "dump1")
261 loadedDbPath = os.path.join(self.TMP_DIR, "loaded_from_dump1")
262 self.assertTrue(self.dumpDb("--db=%s" % origDbPath, dumpFilePath))
263 self.assertTrue(self.loadDb(
265 self.assertRunOKFull("scan --db=%s" % loadedDbPath,
269 dumpFilePath = os.path.join(self.TMP_DIR, "dump2")
270 loadedDbPath = os.path.join(self.TMP_DIR, "loaded_from_dump2")
271 self.assertTrue(self.dumpDb("--db=%s --hex" % origDbPath, dumpFilePath))
272 self.assertTrue(self.loadDb(
274 self.assertRunOKFull("scan --db=%s" % loadedDbPath,
278 dumpFilePath = os.path.join(self.TMP_DIR, "dump3")
279 loadedDbPath = os.path.join(self.TMP_DIR, "loaded_from_dump3")
280 self.assertTrue(self.dumpDb(
282 self.assertTrue(self.loadDb(
284 self.assertRunOKFull("scan --db=%s" % loadedDbPath, "x1 : y1\nx2 : y2")
287 dumpFilePath = os.path.join(self.TMP_DIR, "dump4")
288 loadedDbPath = os.path.join(self.TMP_DIR, "loaded_from_dump4")
289 self.assertTrue(self.dumpDb(
291 self.assertTrue(self.loadDb(
293 self.assertRunOKFull("scan --db=%s" % loadedDbPath,
297 self.assertTrue(self.dumpDb("--db=%s" % origDbPath, dumpFilePath))
298 self.assertTrue(self.loadDb("--db=%s" % loadedDbPath, dumpFilePath))
299 self.assertRunOKFull("scan --db=%s" % loadedDbPath,
303 dumpFilePath = os.path.join(self.TMP_DIR, "dump5")
304 loadedDbPath = os.path.join(self.TMP_DIR, "loaded_from_dump5")
305 self.assertTrue(self.dumpDb("--db=%s" % origDbPath, dumpFilePath))
306 self.assertTrue(self.loadDb(
309 self.assertRunOKFull("scan --db=%s" % loadedDbPath,
317 dumpFilePath = os.path.join(self.TMP_DIR, "dump6")
318 loadedDbPath = os.path.join(self.TMP_DIR, "loaded_from_dump6")
319 self.assertTrue(self.dumpDb(
321 self.assertTrue(self.loadDb(
324 self.assertRunOKFull("scan --db=%s" % loadedDbPath,
328 dumpFilePath = os.path.join(self.TMP_DIR, "dump7")
329 loadedDbPath = os.path.join(self.TMP_DIR, "loaded_from_dump7")
330 self.assertTrue(self.dumpDb(
332 self.assertTrue(self.loadDb(
335 self.assertRunOKFull("put --db=%s k1 v1" % loadedDbPath, "OK")
336 self.assertRunOKFull("scan --db=%s" % loadedDbPath, "k1 : v1")
339 dumpFilePath = os.path.join(self.TMP_DIR, "dump8")
340 self.assertFalse(self.dumpDb(
343 def testIDumpBasics(self): argument
345 self.assertRunOK("put a val --create_if_missing", "OK")
346 self.assertRunOK("put b val", "OK")
347 self.assertRunOK(
350 self.assertRunOK(
355 def testMiscAdminTask(self): argument
359 self.assertRunOK("batchput --create_if_missing x1 y1 x2 y2 x3 y3 x4 y4",
361 self.assertRunOK("scan", "x1 : y1\nx2 : y2\nx3 : y3\nx4 : y4")
362 origDbPath = os.path.join(self.TMP_DIR, self.DB_NAME)
364 self.assertTrue(0 == run_err_null(
366 self.assertRunOK("scan", "x1 : y1\nx2 : y2\nx3 : y3\nx4 : y4")
368 self.assertTrue(0 == run_err_null(
370 self.assertRunOK("scan", "x1 : y1\nx2 : y2\nx3 : y3\nx4 : y4")
372 self.assertTrue(0 == run_err_null(
374 self.assertRunOK("scan", "x1 : y1\nx2 : y2\nx3 : y3\nx4 : y4")
376 self.assertTrue(0 == run_err_null(
378 self.assertRunOK("scan", "x1 : y1\nx2 : y2\nx3 : y3\nx4 : y4")
380 self.assertTrue(0 == run_err_null(
383 self.assertRunOK("scan", "x1 : y1\nx2 : y2\nx3 : y3\nx4 : y4")
386 self.assertTrue(0 == run_err_null(
389 self.assertRunOK("scan", "x1 : y1\nx2 : y2\nx3 : y3\nx4 : y4")
391 def testCheckConsistency(self): argument
394 dbPath = os.path.join(self.TMP_DIR, self.DB_NAME)
395 self.assertRunOK("put x1 y1 --create_if_missing", "OK")
396 self.assertRunOK("put x2 y2", "OK")
397 self.assertRunOK("get x1", "y1")
398 self.assertRunOK("checkconsistency", "OK")
405 self.assertRunFAIL("checkconsistency")
409 self.assertRunFAIL("checkconsistency")
411 def dumpLiveFiles(self, params, dumpFile): argument
415 def testDumpLiveFiles(self): argument
418 dbPath = os.path.join(self.TMP_DIR, self.DB_NAME)
419 self.assertRunOK("put x1 y1 --create_if_missing", "OK")
420 self.assertRunOK("put x2 y2", "OK")
421 dumpFilePath = os.path.join(self.TMP_DIR, "dump1")
422 self.assertTrue(self.dumpLiveFiles("--db=%s" % dbPath, dumpFilePath))
423 self.assertRunOK("delete x1", "OK")
424 self.assertRunOK("put x3 y3", "OK")
425 dumpFilePath = os.path.join(self.TMP_DIR, "dump2")
426 self.assertTrue(self.dumpLiveFiles("--db=%s" % dbPath, dumpFilePath))
428 def getManifests(self, directory): argument
431 def getSSTFiles(self, directory): argument
434 def getWALFiles(self, directory): argument
437 def copyManifests(self, src, dest): argument
440 def testManifestDump(self): argument
442 dbPath = os.path.join(self.TMP_DIR, self.DB_NAME)
443 self.assertRunOK("put 1 1 --create_if_missing", "OK")
444 self.assertRunOK("put 2 2", "OK")
445 self.assertRunOK("put 3 3", "OK")
453 manifest_files = self.getManifests(dbPath)
454 self.assertTrue(len(manifest_files) == 1)
456 self.assertRunOKFull(cmd % dbPath, expected_pattern,
458 self.copyManifests(manifest_files[0], manifest_files[0] + "1")
459 manifest_files = self.getManifests(dbPath)
460 self.assertTrue(len(manifest_files) == 2)
462 self.assertRunFAILFull(cmd % dbPath)
464 self.assertRunOKFull((cmd + " --path=%s")
471 self.assertRunOKFull((cmd)
476 def testSSTDump(self): argument
479 dbPath = os.path.join(self.TMP_DIR, self.DB_NAME)
480 self.assertRunOK("put sst1 sst1_val --create_if_missing", "OK")
481 self.assertRunOK("put sst2 sst2_val", "OK")
482 self.assertRunOK("get sst1", "sst1_val")
488 sst_files = self.getSSTFiles(dbPath)
489 self.assertTrue(len(sst_files) >= 1)
491 self.assertRunOKFull((cmd)
496 def testWALDump(self): argument
499 dbPath = os.path.join(self.TMP_DIR, self.DB_NAME)
500 self.assertRunOK("put wal1 wal1_val --create_if_missing", "OK")
501 self.assertRunOK("put wal2 wal2_val", "OK")
502 self.assertRunOK("get wal1", "wal1_val")
508 wal_files = self.getWALFiles(dbPath)
509 self.assertTrue(len(wal_files) >= 1)
511 self.assertRunOKFull((cmd)
516 def testListColumnFamilies(self): argument
518 self.assertRunOK("put x1 y1 --create_if_missing", "OK")
521 self.assertRunOK(cmd, "{default}")
523 self.assertRunFAIL(cmd)
525 def testColumnFamilies(self): argument
527 dbPath = os.path.join(self.TMP_DIR, self.DB_NAME) # noqa: F841 T25377293 Grandfathered in
528 self.assertRunOK("put cf1_1 1 --create_if_missing", "OK")
529 self.assertRunOK("put cf1_2 2 --create_if_missing", "OK")
530 self.assertRunOK("put cf1_3 3 --try_load_options", "OK")
532 self.assertRunFAIL("get cf1_1 --column_family=two")
533 self.assertRunOK("create_column_family two", "OK")
534 self.assertRunOK("put cf2_1 1 --create_if_missing --column_family=two",
536 self.assertRunOK("put cf2_2 2 --create_if_missing --column_family=two",
538 self.assertRunOK("delete cf1_2", "OK")
539 self.assertRunOK("create_column_family three", "OK")
540 self.assertRunOK("delete cf2_2 --column_family=two", "OK")
541 self.assertRunOK(
544 self.assertRunOK("get cf1_1 --column_family=default", "1")
545 self.assertRunOK("dump --column_family=two",
547 self.assertRunOK("dump --column_family=two --try_load_options",
549 self.assertRunOK("dump",
551 self.assertRunOK("get cf2_1 --column_family=two",
553 self.assertRunOK("get cf3_1 --column_family=three",
555 self.assertRunOK("drop_column_family three", "OK")
557 self.assertRunFAIL("get cf3_1 --column_family=four")
558 self.assertRunFAIL("drop_column_family four")
560 def testIngestExternalSst(self): argument
564 dbPath = os.path.join(self.TMP_DIR, "db1")
565 self.assertRunOK(
569 self.assertRunOK("scan --db=%s" % dbPath,
571 dumpFilePath = os.path.join(self.TMP_DIR, "dump1")
574 externSstPath = os.path.join(self.TMP_DIR, "extern_data1.sst")
575 self.assertTrue(self.writeExternSst("--create_if_missing --db=%s"
580 self.assertFalse(
581 self.ingestExternSst(
585 self.assertTrue(
586 self.ingestExternSst(
590 self.assertRunOKFull("scan --db=%s" % dbPath,