def test_get_component_by_name(): app = LightningApp(A()) assert app.get_component_by_name("root") is app.root assert app.get_component_by_name("root.b") is app.root.b assert app.get_component_by_name("root.w_a") is app.root.w_a assert app.get_component_by_name("root.b.w_b") is app.root.b.w_b assert app.get_component_by_name("root.b.c.d.e") is app.root.b.c.d.e
def test_get_component_by_name_raises(): app = LightningApp(A()) for name in ("", "ro", "roott"): with pytest.raises(ValueError, match=f"Invalid component name {name}."): app.get_component_by_name(name) with pytest.raises(AttributeError, match="Component 'root' has no child component with name ''"): app.get_component_by_name("root.") with pytest.raises(AttributeError, match="Component 'root' has no child component with name 'x'"): app.get_component_by_name("root.x") with pytest.raises(AttributeError, match="Component 'root.b' has no child component with name 'x'"): app.get_component_by_name("root.b.x") with pytest.raises(AttributeError, match="Component 'root.b.w_b' has no child component with name 'c'"): app.get_component_by_name("root.b.w_b.c")