prep 0.2.6

This commit is contained in:
Javanaut
2026-04-13 20:04:25 +02:00
parent e614ca5d75
commit 037388886e
49 changed files with 5702 additions and 490 deletions

View File

@@ -13,6 +13,7 @@ if str(SRC_ROOT) not in sys.path:
from ffx import screen_support # noqa: E402
from ffx.i18n import set_current_language, t # noqa: E402
class StaticConfig:
@@ -38,7 +39,28 @@ class FakeTagTable:
return row_key
class FakeApp:
def __init__(self, screen_stack):
self.screen_stack = list(screen_stack)
self.pop_called = False
self.exit_called = False
def pop_screen(self):
self.pop_called = True
def exit(self):
self.exit_called = True
class FakeScreen:
def __init__(self, screen_stack):
self.app = FakeApp(screen_stack)
class ScreenSupportTests(unittest.TestCase):
def tearDown(self):
set_current_language("de")
def make_context(self):
return {
"config": StaticConfig(
@@ -122,6 +144,30 @@ class ScreenSupportTests(unittest.TestCase):
table.rows["row-1"],
)
def test_go_back_or_exit_exits_from_first_pushed_screen(self):
screen = FakeScreen(screen_stack=["base", "shows"])
screen_support.go_back_or_exit(screen)
self.assertFalse(screen.app.pop_called)
self.assertTrue(screen.app.exit_called)
def test_go_back_or_exit_pops_nested_screen(self):
screen = FakeScreen(screen_stack=["base", "shows", "details"])
screen_support.go_back_or_exit(screen)
self.assertTrue(screen.app.pop_called)
self.assertFalse(screen.app.exit_called)
def test_localized_column_width_handles_combining_character_labels(self):
set_current_language("ta")
translated = t("SubIndex")
self.assertEqual("துணைச்சுட்டி", translated)
self.assertGreater(len(translated), 8)
self.assertEqual(len(translated) + 2, screen_support.localized_column_width(translated, 8))
if __name__ == "__main__":
unittest.main()