self.blob[0:0] = b""
self.assertEqual(self.blob[:], self.data)
+ def test_blob_set_empty_slice_wrong_type(self):
+ with self.assertRaises(TypeError):
+ self.blob[5:5] = None
+
+ def test_blob_set_empty_slice_wrong_size(self):
+ with self.assertRaisesRegex(IndexError, "wrong size"):
+ self.blob[5:5] = b"123"
+
+ def test_blob_set_empty_slice_correct(self):
+ self.blob[5:5] = b""
+ self.assertEqual(self.blob[:], self.data)
+
def test_blob_set_slice_with_skip(self):
self.blob[0:10:2] = b"12345"
actual = self.cx.execute("select b from test").fetchone()[0]
return -1;
}
- if (len == 0) {
- return 0;
- }
-
Py_buffer vbuf;
if (PyObject_GetBuffer(value, &vbuf, PyBUF_SIMPLE) < 0) {
return -1;
}
- int rc = -1;
if (vbuf.len != len) {
PyErr_SetString(PyExc_IndexError,
"Blob slice assignment is wrong size");
+ PyBuffer_Release(&vbuf);
+ return -1;
}
- else if (step == 1) {
+
+ if (len == 0) {
+ PyBuffer_Release(&vbuf);
+ return 0;
+ }
+
+ int rc = -1;
+ if (step == 1) {
rc = inner_write(self, vbuf.buf, len, start);
}
else {