3
0
Fork 0

fix: use fanstatic to serve built-in images by default

Refs: #1
This commit is contained in:
Lance Edgar 2024-12-10 16:54:02 -06:00
parent 783d4dc8ef
commit 16ed125113
11 changed files with 206 additions and 28 deletions

View file

@ -1,20 +1,64 @@
# -*- coding: utf-8; -*-
from unittest import TestCase
from wuttjamaican.conf import WuttaConfig
from wuttaweb import handler as mod
from wuttaweb import handler as mod, static
from wuttaweb.menus import MenuHandler
from tests.util import WebTestCase
class TestWebHandler(TestCase):
class TestWebHandler(WebTestCase):
def setUp(self):
self.config = WuttaConfig()
self.app = self.config.get_app()
self.handler = mod.WebHandler(self.config)
def make_handler(self):
return mod.WebHandler(self.config)
def test_get_fanstatic_url(self):
handler = self.make_handler()
# default with / root path
url = handler.get_fanstatic_url(self.request, static.logo)
self.assertEqual(url, '/fanstatic/wuttaweb_img/logo.png')
# what about a subpath
self.request.script_name = '/testing'
url = handler.get_fanstatic_url(self.request, static.logo)
self.assertEqual(url, '/testing/fanstatic/wuttaweb_img/logo.png')
def test_get_favicon_url(self):
handler = self.make_handler()
# default
url = handler.get_favicon_url(self.request)
self.assertEqual(url, '/fanstatic/wuttaweb_img/favicon.ico')
# config override
self.config.setdefault('wuttaweb.favicon_url', '/testing/other.ico')
url = handler.get_favicon_url(self.request)
self.assertEqual(url, '/testing/other.ico')
def test_get_header_logo_url(self):
handler = self.make_handler()
# default
url = handler.get_header_logo_url(self.request)
self.assertEqual(url, '/fanstatic/wuttaweb_img/favicon.ico')
# config override
self.config.setdefault('wuttaweb.header_logo_url', '/testing/header.png')
url = handler.get_header_logo_url(self.request)
self.assertEqual(url, '/testing/header.png')
def test_get_main_logo_url(self):
handler = self.make_handler()
# default
url = handler.get_main_logo_url(self.request)
self.assertEqual(url, '/fanstatic/wuttaweb_img/logo.png')
# config override
self.config.setdefault('wuttaweb.logo_url', '/testing/other.png')
url = handler.get_main_logo_url(self.request)
self.assertEqual(url, '/testing/other.png')
def test_menu_handler_default(self):
menus = self.handler.get_menu_handler()
handler = self.make_handler()
menus = handler.get_menu_handler()
self.assertIsInstance(menus, MenuHandler)

View file

@ -3,6 +3,7 @@
from unittest import TestCase
from unittest.mock import MagicMock
import fanstatic
from pyramid import testing
from wuttjamaican.conf import WuttaConfig
@ -66,6 +67,10 @@ class WebTestCase(DataTestCase):
'pyramid.events.BeforeRender')
self.pyramid_config.include('wuttaweb.static')
# nb. mock out fanstatic env..good enough for now to avoid errors..
needed = fanstatic.init_needed()
self.request.environ[fanstatic.NEEDED] = needed
# setup new request w/ anonymous user
event = MagicMock(request=self.request)
subscribers.new_request(event)

View file

@ -1028,7 +1028,7 @@ class TestMasterView(WebTestCase):
self.session.commit()
def get_instance():
setting = self.session.query(model.Setting).get('foo.bar')
setting = self.session.get(model.Setting, 'foo.bar')
return {
'name': setting.name,
'value': setting.value,
@ -1092,7 +1092,7 @@ class TestMasterView(WebTestCase):
self.assertEqual(self.session.query(model.Setting).count(), 1)
def get_instance():
setting = self.session.query(model.Setting).get('foo.bar')
setting = self.session.get(model.Setting, 'foo.bar')
return {
'name': setting.name,
'value': setting.value,