1
0
mirror of https://github.com/spl0k/supysonic.git synced 2024-09-19 19:01:03 +00:00

Tests: removed context/module unload dance

Was a workaround for issues fixed by blueprints
This commit is contained in:
spl0k 2018-01-29 22:09:28 +01:00
parent 7455711b60
commit 66b6eb341e
3 changed files with 9 additions and 37 deletions

View File

@ -61,7 +61,6 @@ def create_application(config = None):
makedirs(cache_path)
# Import app sections
with app.app_context():
if app.config['WEBAPP']['mount_webui']:
from .frontend import frontend
app.register_blueprint(frontend)

View File

@ -23,19 +23,13 @@ class ResponseHelperBaseCase(TestBase):
super(ResponseHelperBaseCase, self).setUp()
from supysonic.api.formatters import make_json_response, make_jsonp_response, make_xml_response
self.json = self.__json_unwrapper(make_json_response)
self.json = self.__response_unwrapper(make_json_response)
self.jsonp = self.__response_unwrapper(make_jsonp_response)
self.xml = self.__response_unwrapper(make_xml_response)
def __json_unwrapper(self, func):
def execute(*args, **kwargs):
with self.request_context():
rv = func(*args, **kwargs)
return rv.get_data(as_text = True)
return execute
def __response_unwrapper(self, func):
def execute(*args, **kwargs):
with self.request_context():
rv = func(*args, **kwargs)
return rv.get_data(as_text = True)
return execute

View File

@ -12,12 +12,9 @@ import inspect
import io
import os
import shutil
import sys
import unittest
import tempfile
from contextlib import contextmanager
from supysonic.db import init_database, release_database
from supysonic.config import DefaultConfig
from supysonic.managers.user import UserManager
@ -96,9 +93,6 @@ class TestBase(unittest.TestCase):
release_database()
self.__app = create_application(config)
self.__ctx = self.__app.app_context()
self.__ctx.push()
self.client = self.__app.test_client()
UserManager.add('alice', 'Alic3', 'test@example.com', True)
@ -108,26 +102,11 @@ class TestBase(unittest.TestCase):
self.client.get = patch_method(self.client.get)
self.client.post = patch_method(self.client.post)
@contextmanager
def request_context(self, *args, **kwargs):
ctx = self.__app.test_request_context(*args, **kwargs)
ctx.push()
yield
ctx.pop()
@staticmethod
def __should_unload_module(module):
if module.startswith('supysonic'):
return not module.startswith('supysonic.db')
return False
return self.__app.test_request_context(*args, **kwargs)
def tearDown(self):
self.__ctx.pop()
release_database()
shutil.rmtree(self.__dir)
os.remove(self.__dbfile)
to_unload = [ m for m in sorted(sys.modules) if self.__should_unload_module(m) ]
for m in to_unload:
del sys.modules[m]