Release 0.10.7-bearhub.6

Complete M1 identity work, fix runtime URL regressions, repair the test
suite, add CI, migrate packaging/AppImage branding to Bearhub, and
document the Qt6/PySide6 migration plan.
This commit is contained in:
Sebastian Palencsar
2026-06-26 19:22:28 +02:00
parent 63698709a6
commit 4a119968bc
35 changed files with 1984 additions and 224 deletions

View File

@@ -4,6 +4,8 @@ from unittest.mock import Mock, patch
from bauh.gems.web.controller import DEFAULT_LANGUAGE_HEADER
from bauh.gems.web.controller import WebApplicationManager
LOCALE_TARGET = 'bauh.gems.web.controller.locale.getlocale'
class ControllerTest(TestCase):
@@ -16,35 +18,35 @@ class WebApplicationManagerTest(TestCase):
def setUp(self):
self.manager = WebApplicationManager(context=Mock())
@patch('locale.getdefaultlocale', side_effect=Exception)
def test_get_accept_language_header__must_return_default_locale_when_exception_raised(self, getdefaultlocale: Mock):
@patch(LOCALE_TARGET, side_effect=Exception)
def test_get_accept_language_header__must_return_default_locale_when_exception_raised(self, getlocale: Mock):
returned = self.manager.get_accept_language_header()
self.assertEqual(DEFAULT_LANGUAGE_HEADER, returned)
getdefaultlocale.assert_called_once()
getlocale.assert_called_once()
@patch('locale.getdefaultlocale', return_value=None)
def test_get_accept_language_header__must_return_default_locale_when_no_locale_is_returned(self, getdefaultlocale: Mock):
@patch(LOCALE_TARGET, return_value=(None, None))
def test_get_accept_language_header__must_return_default_locale_when_no_locale_is_returned(self, getlocale: Mock):
returned = self.manager.get_accept_language_header()
self.assertEqual(DEFAULT_LANGUAGE_HEADER, returned)
getdefaultlocale.assert_called_once()
getlocale.assert_called_once()
@patch('locale.getdefaultlocale', return_value=['es_AR'])
def test_get_accept_language_header__must_return_the_system_locale_without_underscore_plus_default_locale(self, getdefaultlocale: Mock):
@patch(LOCALE_TARGET, return_value=('es_AR', 'UTF-8'))
def test_get_accept_language_header__must_return_the_system_locale_without_underscore_plus_default_locale(self, getlocale: Mock):
returned = self.manager.get_accept_language_header()
self.assertEqual(f'es-AR, es, {DEFAULT_LANGUAGE_HEADER}', returned)
getdefaultlocale.assert_called_once()
getlocale.assert_called_once()
@patch('locale.getdefaultlocale', return_value=['es'])
def test_get_accept_language_header__must_return_the_simple_system_locale_plus_default_locale(self, getdefaultlocale: Mock):
@patch(LOCALE_TARGET, return_value=('es', 'UTF-8'))
def test_get_accept_language_header__must_return_the_simple_system_locale_plus_default_locale(self, getlocale: Mock):
returned = self.manager.get_accept_language_header()
self.assertEqual(f'es, {DEFAULT_LANGUAGE_HEADER}', returned)
getdefaultlocale.assert_called_once()
getlocale.assert_called_once()
@patch('locale.getdefaultlocale', return_value=['en_IN'])
def test_get_accept_language_header__must_not_concatenate_default_locale_if_system_locale_has_it(self, getdefaultlocale: Mock):
@patch(LOCALE_TARGET, return_value=('en_IN', 'UTF-8'))
def test_get_accept_language_header__must_not_concatenate_default_locale_if_system_locale_has_it(self, getlocale: Mock):
returned = self.manager.get_accept_language_header()
self.assertEqual(f'en-IN, en', returned)
getdefaultlocale.assert_called_once()
self.assertEqual('en-IN, en', returned)
getlocale.assert_called_once()
def test_strip_url_protocol__http_no_www(self):
res = self.manager.strip_url_protocol('http://test.com')
@@ -60,4 +62,4 @@ class WebApplicationManagerTest(TestCase):
def test_strip_url_protocol__https_with_www(self):
res = self.manager.strip_url_protocol('https://www.test.com')
self.assertEqual('test.com', res)
self.assertEqual('test.com', res)