first commit
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
import ast
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
ROOT = Path(__file__).parents[1]
|
||||
|
||||
|
||||
class StartupRegression0417Tests(unittest.TestCase):
|
||||
def test_themed_icon_accepts_variadic_fallbacks(self):
|
||||
source = (ROOT / "src/librenet_scanner/ui_icons.py").read_text(encoding="utf-8")
|
||||
tree = ast.parse(source)
|
||||
fn = next(node for node in tree.body if isinstance(node, ast.FunctionDef) and node.name == "themed_icon")
|
||||
self.assertIsNotNone(fn.args.vararg, "themed_icon doit accepter plusieurs fallbacks")
|
||||
self.assertEqual(fn.args.vararg.arg, "fallbacks")
|
||||
|
||||
def test_forget_identifications_menu_can_supply_three_theme_candidates(self):
|
||||
source = (ROOT / "src/librenet_scanner/ui.py").read_text(encoding="utf-8")
|
||||
self.assertIn('themed_icon("edit-delete", "edit-clear-history", "user-trash")', source)
|
||||
# The regression in 0.4.16 was exactly a 3-positional-argument call.
|
||||
# Variadic themed_icon must therefore remain compatible with it.
|
||||
icon_source = (ROOT / "src/librenet_scanner/ui_icons.py").read_text(encoding="utf-8")
|
||||
self.assertIn('def themed_icon(name: str, *fallbacks: str)', icon_source)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user