Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions panel/tests/widgets/test_slider.py
Original file line number Diff line number Diff line change
Expand Up @@ -409,6 +409,41 @@ def test_datetime_range_slider(document, comm):
assert widget.value == (1613088000000, 1620777600000)


def test_date_range_slider_value_none():
date_slider = DateRangeSlider(
start=date(2020, 1, 1),
end=date(2020, 1, 5),
)
assert date_slider.value == (date(2020, 1, 1), date(2020, 1, 5))
assert date_slider.value_start == date(2020, 1, 1)
assert date_slider.value_end == date(2020, 1, 5)

date_slider.value = None
assert date_slider.value is None
assert date_slider.value_start is None
assert date_slider.value_end is None

date_slider.value = (date(2020, 1, 2), date(2020, 1, 4))
assert date_slider.value == (date(2020, 1, 2), date(2020, 1, 4))
assert date_slider.value_start == date(2020, 1, 2)
assert date_slider.value_end == date(2020, 1, 4)


def test_datetime_range_slider_value_none():
dt_slider = DatetimeRangeSlider(
start=datetime(2020, 1, 1),
end=datetime(2020, 1, 5),
)
assert dt_slider.value == (datetime(2020, 1, 1), datetime(2020, 1, 5))
assert dt_slider.value_start == datetime(2020, 1, 1)
assert dt_slider.value_end == datetime(2020, 1, 5)

dt_slider.value = None
assert dt_slider.value is None
assert dt_slider.value_start is None
assert dt_slider.value_end is None


def test_discrete_slider(document, comm):
discrete_slider = DiscreteSlider(label='DiscreteSlider', value=1,
options=[0.1, 1, 10, 100])
Expand Down
8 changes: 5 additions & 3 deletions panel/widgets/slider.py
Original file line number Diff line number Diff line change
Expand Up @@ -718,8 +718,7 @@ class DateRangeSlider(_SliderBase):
... )
"""

value = param.DateRange(default=None, allow_None=False, # type: ignore[call-overload]
doc="""
value = param.DateRange(default=None, doc="""
The selected range as a tuple of values. Updated when one of the handles is
dragged. Supports datetime.datetime, datetime.date, and np.datetime64 ranges.""")

Expand Down Expand Up @@ -782,7 +781,10 @@ def __init__(self, **params):

@param.depends('value', watch=True)
def _sync_values(self):
vs, ve = self.value
if self.value is None:
vs, ve = None, None
else:
vs, ve = self.value
with edit_readonly(self):
self.param.update(value_start=vs, value_end=ve)

Expand Down
Loading