Stop greenlets when deleting a site in test

This commit is contained in:
shortcutme 2019-11-19 02:15:47 +01:00
parent b41a03674f
commit 5d113757df
No known key found for this signature in database
GPG key ID: 5B63BAE6CB9613AE

View file

@ -178,9 +178,7 @@ def site(request):
site.announce = mock.MagicMock(return_value=True) # Don't try to find peers from the net site.announce = mock.MagicMock(return_value=True) # Don't try to find peers from the net
def cleanup(): def cleanup():
site.storage.deleteFiles() site.delete()
site.content_manager.contents.db.deleteSite(site)
del SiteManager.site_manager.sites["1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT"]
site.content_manager.contents.db.close() site.content_manager.contents.db.close()
SiteManager.site_manager.sites.clear() SiteManager.site_manager.sites.clear()
db_path = "%s/content.db" % config.data_dir db_path = "%s/content.db" % config.data_dir
@ -189,10 +187,12 @@ def site(request):
gevent.killall([obj for obj in gc.get_objects() if isinstance(obj, gevent.Greenlet) and obj not in threads_before]) gevent.killall([obj for obj in gc.get_objects() if isinstance(obj, gevent.Greenlet) and obj not in threads_before])
request.addfinalizer(cleanup) request.addfinalizer(cleanup)
site.greenlet_manager.stopGreenlets()
site = Site("1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT") # Create new Site object to load content.json files site = Site("1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT") # Create new Site object to load content.json files
if not SiteManager.site_manager.sites: if not SiteManager.site_manager.sites:
SiteManager.site_manager.sites = {} SiteManager.site_manager.sites = {}
SiteManager.site_manager.sites["1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT"] = site SiteManager.site_manager.sites["1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT"] = site
site.settings["serving"] = True
return site return site
@ -201,13 +201,12 @@ def site_temp(request):
threads_before = [obj for obj in gc.get_objects() if isinstance(obj, gevent.Greenlet)] threads_before = [obj for obj in gc.get_objects() if isinstance(obj, gevent.Greenlet)]
with mock.patch("Config.config.data_dir", config.data_dir + "-temp"): with mock.patch("Config.config.data_dir", config.data_dir + "-temp"):
site_temp = Site("1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT") site_temp = Site("1TeSTvb4w2PWE81S2rEELgmX2GCCExQGT")
site_temp.settings["serving"] = True
site_temp.announce = mock.MagicMock(return_value=True) # Don't try to find peers from the net site_temp.announce = mock.MagicMock(return_value=True) # Don't try to find peers from the net
def cleanup(): def cleanup():
site_temp.storage.deleteFiles() site_temp.delete()
site_temp.content_manager.contents.db.deleteSite(site_temp)
site_temp.content_manager.contents.db.close() site_temp.content_manager.contents.db.close()
time.sleep(0.01) # Wait for db close
db_path = "%s-temp/content.db" % config.data_dir db_path = "%s-temp/content.db" % config.data_dir
os.unlink(db_path) os.unlink(db_path)
del ContentDb.content_dbs[db_path] del ContentDb.content_dbs[db_path]