db: Commit the database after deleting a Table Row

Fixes: #63 ("The database isn't being committed enough")
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2023-06-07 14:20:11 -04:00
parent 14c487c295
commit 01a37dbbc1
2 changed files with 7 additions and 3 deletions

View File

@ -188,6 +188,7 @@ class Table(Gtk.FilterListModel):
def delete(self, row: Row) -> bool:
"""Delete a Row from the Table."""
if row in self and self.do_sql_delete(row).rowcount == 1:
self.sql.commit()
self.store.remove(row)
del self.rows[row.primary_key]
return True

View File

@ -308,9 +308,12 @@ class TestTableFunctions(tests.util.TestCase):
def test_delete(self):
"""Test deleting rows."""
row = self.table.create(number=1)
self.assertTrue(row.delete())
self.assertEqual(len(self.table), 0)
self.assertDictEqual(self.table.rows, dict())
with unittest.mock.patch.object(self.sql, "commit") as mock_commit:
self.assertTrue(row.delete())
self.assertEqual(len(self.table), 0)
self.assertDictEqual(self.table.rows, dict())
mock_commit.assert_called()
self.assertFalse(row.delete())