def test_puts_overwriting_existing_value(self): db = Database(self.engine, self.config) db.put(r"key1", r"value1") self.assertEqual(db.get_string(r"key1"), r"value1") db.put(r"key1", r"value123") self.assertEqual(db.get_string(r"key1"), r"value123") db.put(r"key1", r"asdf") self.assertEqual(db.get_string(r"key1"), r"asdf") db.stop()
def test_puts_empty_values(self): db = Database(self.engine, self.config) db.put(r"empty", r"") db.put(r"single-space", r" ") db.put(r"two-tab", r"\t\t") self.assertEqual(db.get_string(r"empty"), r"") self.assertEqual(db.get_string(r"single-space"), r" ") self.assertEqual(db.get_string(r"two-tab"), r"\t\t") db.stop()
def test_removes_key_and_value(self): db = Database(self.engine, self.config) db.put(r"key1", r"value1") self.assertTrue(db.exists(r"key1")) self.assertEqual(db.get_string(r"key1"), r"value1") self.assertTrue(db.remove(r"key1")) self.assertFalse(db.remove(r"key1")) self.assertFalse(db.exists(r"key1")) with self.assertRaises(KeyError): db.get_string(r"key1") db.stop()
def test_puts_multiple_values(self): db = Database(self.engine, self.config) db.put(r"key1", r"value1") db.put(r"key2", r"value2") db.put(r"key3", r"value3") self.assertTrue(db.exists(r"key1")) self.assertEqual(db.get_string(r"key1"), r"value1") self.assertTrue(db.exists(r"key2")) self.assertEqual(db.get_string(r"key2"), r"value2") self.assertTrue(db.exists(r"key3")) self.assertEqual(db.get_string(r"key3"), r"value3") db.stop()
def test_puts_empty_key(self): db = Database(self.engine, self.config) db.put(r"", r"empty") db.put(r" ", r"single-space") db.put(r"\t\t", r"two-tab") self.assertTrue(db.exists(r"")) self.assertEqual(db.get_string(r""), r"empty") self.assertTrue(db.exists(r" ")) self.assertEqual(db.get_string(r" "), r"single-space") self.assertTrue(db.exists(r"\t\t")) self.assertEqual(db.get_string(r"\t\t"), r"two-tab") db.stop()
def test_puts_utf8_key(self): db = Database(self.engine, self.config) val = r"to remember, note, record" db.put(r"记", val) self.assertTrue(db.exists(r"记")) self.assertEqual(db.get_string(r"记"), val) db.stop()
def test_puts_basic_values(self): db = Database(self.engine, self.config) self.assertFalse(db.exists(r"key1")) db.put(r"key1", r"value1") self.assertTrue(db.exists(r"key1")) self.assertEqual(db.get_string(r"key1"), r"value1") db.stop()
def test_blackhole_engine(self): db = Database(r"blackhole", self.config) self.assertEqual(db.count_all(), 0) self.assertFalse(db.exists(r"key1")) with self.assertRaises(KeyError): db.get_string(r"key1") db.put(r"key1", r"value123") self.assertEqual(db.count_all(), 0) self.assertFalse(db.exists(r"key1")) with self.assertRaises(KeyError): db.get_string(r"key1") self.assertTrue(db.remove(r"key1")) self.assertFalse(db.exists(r"key1")) with self.assertRaises(KeyError): db.get_string(r"key1") db.stop()
def test_gets_missing_key(self): db = Database(self.engine, self.config) self.assertFalse(db.exists(r"key1")) with self.assertRaises(KeyError): db.get_string(r"key1") db.stop()
def test_puts_utf8_value(self): db = Database(self.engine, self.config) val = r"记 means to remember, note, record" db.put(r"key1", val) self.assertEqual(db.get_string(r"key1"), val) db.stop()
def test_puts_complex_value(self): db = Database(self.engine, self.config) val = r"one\ttwo or <p>three</p>\n {four} and ^five" db.put(r"key1", val) self.assertEqual(db.get_string(r"key1"), val) db.stop()
def test_puts_binary_values(self): db = Database(self.engine, self.config) db.put(r"key1", "A\0B\0\0C") self.assertEqual(db.get_string(r"key1"), "A\0B\0\0C") db.stop()
def test_puts_binary_keys(self): db = Database(self.engine, self.config) db.put("A\0B\0\0C", r"value1") self.assertTrue(db.exists("A\0B\0\0C")) self.assertEqual(db.get_string("A\0B\0\0C"), r"value1") db.stop()