From dd2815336675a0a8726bbcaabc058560dd4ca3d0 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 17 Jun 2015 09:22:01 +0530 Subject: [PATCH] Ensure all open dbs are closed when exiting the test server Prevents file in use errors when running the test-suite on windows --- src/calibre/srv/handler.py | 7 +++++++ src/calibre/srv/tests/base.py | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/src/calibre/srv/handler.py b/src/calibre/srv/handler.py index be49993296..9633a3df44 100644 --- a/src/calibre/srv/handler.py +++ b/src/calibre/srv/handler.py @@ -60,6 +60,10 @@ class LibraryBroker(object): raise return ans + def close(self): + for db in self.lmap.itervalues(): + db.close() + self.lmap = {} class Context(object): @@ -137,3 +141,6 @@ class Handler(object): def set_log(self, log): self.router.ctx.log = log + def close(self): + self.router.ctx.library_broker.close() + diff --git a/src/calibre/srv/tests/base.py b/src/calibre/srv/tests/base.py index 5b856d0f8d..31fced6cdc 100644 --- a/src/calibre/srv/tests/base.py +++ b/src/calibre/srv/tests/base.py @@ -137,3 +137,7 @@ class LibraryServer(TestServer): ) self.handler.set_log(self.loop.log) specialize(self) + + def __exit__(self, *args): + self.loop.stop() + self.handler.close()