import perspective as psp
client = psp.Server().new_local_client()
Table = client.table
class TestDelete(object):
def test_table_delete(self):
data = [{"a": 1, "b": 2}, {"a": 3, "b": 4}]
tbl = Table(data)
tbl.delete()
def test_table_delete_callback(self, sentinel):
s = sentinel(False)
def callback():
s.set(True)
data = [{"a": 1, "b": 2}, {"a": 3, "b": 4}]
tbl = Table(data)
tbl.on_delete(callback)
tbl.delete()
assert s.get() is True
def test_table_delete_with_view(self, sentinel):
s = sentinel(False)
def callback():
s.set(True)
data = [{"a": 1, "b": 2}, {"a": 3, "b": 4}]
tbl = Table(data)
tbl.on_delete(callback)
view = tbl.view()
view.delete()
tbl.delete()
assert s.get() is True
def test_table_delete_multiple_callback(self, sentinel):
s1 = sentinel(False)
s2 = sentinel(False)
def callback1():
s1.set(True)
def callback2():
s2.set(True)
tbl = Table([{"a": 1}])
tbl.on_delete(callback1)
tbl.on_delete(callback2)
tbl.delete()
assert s1.get() is True
assert s2.get() is True
def test_table_remove_delete_callback(self, sentinel):
s = sentinel(False)
def callback():
s.set(True)
tbl = Table([{"a": 1}])
callback_id = tbl.on_delete(callback)
tbl.remove_delete(callback_id)
tbl.delete()
assert s.get() is False
def test_view_delete_multiple_callback(self, sentinel):
s1 = sentinel(False)
s2 = sentinel(False)
def callback1():
s1.set(True)
def callback2():
s2.set(True)
tbl = Table([{"a": 1}])
view = tbl.view()
view.on_delete(callback1)
view.on_delete(callback2)
view.delete()
tbl.delete()
assert s1.get() is True
assert s2.get() is True
def test_view_remove_delete_callback(self, sentinel):
s = sentinel(False)
def callback():
s.set(True)
tbl = Table([{"a": 1}])
view = tbl.view()
callback_id = view.on_delete(callback)
view.remove_delete(callback_id)
view.delete()
tbl.delete()
assert s.get() is False