mirror of
https://github.com/pyscript/pyscript.git
synced 2026-02-12 22:00:56 -05:00
fix display multiple append with target (#1126)
* fix display multiple append with target * flake8 ignore long lines * fix img render test
This commit is contained in:
@@ -250,7 +250,7 @@ class Element:
|
||||
child = js.document.createElement("div")
|
||||
self.element.appendChild(child)
|
||||
|
||||
if self.element.children:
|
||||
if append and self.element.children:
|
||||
out_element = self.element.children[-1]
|
||||
else:
|
||||
out_element = self.element
|
||||
|
||||
@@ -219,6 +219,31 @@ class TestOutput(PyScriptTest):
|
||||
pattern = r'<py-script id="py-.*">world</py-script>'
|
||||
assert re.search(pattern, inner_html)
|
||||
|
||||
def test_display_multiple_append_false_with_target(self):
|
||||
self.pyscript_run(
|
||||
"""
|
||||
<div id="circle-div"></div>
|
||||
<py-script>
|
||||
class Circle:
|
||||
r = 0
|
||||
def _repr_svg_(self):
|
||||
return f'<svg height="{self.r*2}" width="{self.r*2}"><circle cx="{self.r}" cy="{self.r}" r="{self.r}" fill="red" /></svg>' # noqa: E501
|
||||
|
||||
circle = Circle()
|
||||
|
||||
circle.r += 5
|
||||
display(circle, target="circle-div", append=False)
|
||||
circle.r += 5
|
||||
display(circle, target="circle-div", append=False)
|
||||
</py-script>
|
||||
"""
|
||||
)
|
||||
innerhtml = self.page.locator("id=circle-div").inner_html()
|
||||
assert (
|
||||
innerhtml
|
||||
== '<svg height="20" width="20"><circle cx="10" cy="10" r="10" fill="red"></circle></svg>' # noqa: E501
|
||||
)
|
||||
|
||||
def test_display_list_dict_tuple(self):
|
||||
self.pyscript_run(
|
||||
"""
|
||||
@@ -353,8 +378,5 @@ class TestOutput(PyScriptTest):
|
||||
"""
|
||||
)
|
||||
|
||||
# TODO: This seems to be a py-script tag, should it?
|
||||
rendered_img_src = self.page.locator("#py-internal-0 > img").get_attribute(
|
||||
"src"
|
||||
)
|
||||
rendered_img_src = self.page.locator("img").get_attribute("src")
|
||||
assert rendered_img_src == expected_img_src
|
||||
|
||||
Reference in New Issue
Block a user