Skip to content
Open
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
3 changes: 2 additions & 1 deletion actions/cores/base_core/base_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,8 +111,9 @@ def on_change_domain(self, _, domain, old_domain):
"""Execute when the domain is changed."""
domain = str(domain) if domain is not None else None
old_domain = str(old_domain) if old_domain is not None else None
current_domain = self.settings.get_domain() if self.settings else None

if old_domain != domain:
if old_domain != domain and domain != current_domain:
entity = self.settings.get_entity()
if entity and self.track_entity:
self.plugin_base.backend.remove_tracked_entity(entity, self.refresh)
Expand Down
23 changes: 23 additions & 0 deletions test/actions/cores/base_core/test_base_core_on_change_domain.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,29 @@ def test_on_change_domain_old_and_new_equal(self, set_enabled_disabled_mock, loa
load_entities_mock.assert_called_once()
set_enabled_disabled_mock.assert_called_once()

@patch.object(BaseCore, "create_ui_elements")
@patch.object(BaseCore, "_create_event_assigner")
@patch.object(BaseCore, "_load_entities")
@patch.object(BaseCore, "set_enabled_disabled")
def test_on_change_domain_matches_current_domain(self, set_enabled_disabled_mock, load_entities_mock, _, __):
settings_mock = Mock()
settings_mock.get_domain = Mock(return_value="switch")
settings_mock.reset = Mock()

entity_combo_mock = Mock()

instance = BaseCore(Mock(), True)
instance.initialized = True
instance.settings = settings_mock
instance.entity_combo = entity_combo_mock

# Widget initializes with old_domain=None and domain="switch" (which equals current_domain)
instance.on_change_domain(None, "switch", None)

settings_mock.reset.assert_not_called()
load_entities_mock.assert_called_once()
set_enabled_disabled_mock.assert_called_once()

@patch.object(BaseCore, "create_ui_elements")
@patch.object(BaseCore, "_create_event_assigner")
@patch.object(BaseCore, "_load_entities")
Expand Down