I can bind checkbox

This commit is contained in:
2025-11-07 22:27:32 +01:00
parent e8ecf72205
commit 6a05a84f0c
5 changed files with 108 additions and 39 deletions

View File

@@ -20,6 +20,13 @@ verbs = {
}
class DoNotSendCls:
pass
DoNotSend = DoNotSendCls()
class TestableElement:
"""
Represents an HTML element that can be interacted with in tests.
@@ -802,7 +809,8 @@ class TestableControl(TestableElement):
def _send_value(self):
if self._input_name and self._support_htmx():
return self._send_htmx_request(data={self._input_name: self.value})
value = {} if self.value is DoNotSend else {self._input_name: self.value}
return self._send_htmx_request(data=value)
return None
@@ -824,16 +832,18 @@ class TestableCheckbox(TestableControl):
return self.fields[self._input_name] == True
def check(self):
self.fields[self._input_name] = True
self.fields[self._input_name] = "on"
return self._send_value()
def uncheck(self):
self.fields[self._input_name] = False
self.fields[self._input_name] = DoNotSend
return self._send_value()
def toggle(self):
self.fields[self._input_name] = not self.fields[self._input_name]
return self._send_value()
if self.fields[self._input_name] == "on":
return self.uncheck()
else:
return self.check()
class TestableTextarea(TestableControl):