From 01a37dbbc119b3b1cf1cf7008acc087c38788732 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Wed, 7 Jun 2023 14:20:11 -0400 Subject: [PATCH] db: Commit the database after deleting a Table Row Fixes: #63 ("The database isn't being committed enough") Signed-off-by: Anna Schumaker --- emmental/db/table.py | 1 + tests/db/test_table.py | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/emmental/db/table.py b/emmental/db/table.py index 866306c..372d8f9 100644 --- a/emmental/db/table.py +++ b/emmental/db/table.py @@ -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 diff --git a/tests/db/test_table.py b/tests/db/test_table.py index 8b2d4e2..be83d52 100644 --- a/tests/db/test_table.py +++ b/tests/db/test_table.py @@ -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())