diff --git a/traits/etsconfig/etsconfig.py b/traits/etsconfig/etsconfig.py index 45b66cd02..85da6b919 100644 --- a/traits/etsconfig/etsconfig.py +++ b/traits/etsconfig/etsconfig.py @@ -322,25 +322,12 @@ def kiva_backend(self): "which has not been set." ) - if self._kiva_backend is None: - try: - self._kiva_backend = self._toolkit.split(".")[1] - except IndexError: - # Pick a reasonable default based on the toolkit - if self.toolkit == "wx": - self._kiva_backend = ( - "quartz" if sys.platform == "darwin" else "image" - ) - elif self.toolkit in ["qt4", "qt"]: - self._kiva_backend = "image" - else: - self._kiva_backend = "image" - - return self._kiva_backend - - @kiva_backend.deleter - def kiva_backend(self): - self._kiva_backend = None + if "." in self._toolkit: + return self._toolkit.split(".")[1] + elif self.toolkit == "wx" and sys.platform == "darwin": + return "quartz" + else: + return "image" @property def user_data(self): diff --git a/traits/etsconfig/tests/test_etsconfig.py b/traits/etsconfig/tests/test_etsconfig.py index 5bc247e9c..f34f77b93 100644 --- a/traits/etsconfig/tests/test_etsconfig.py +++ b/traits/etsconfig/tests/test_etsconfig.py @@ -293,13 +293,13 @@ def test_toolkit_explicit_kiva_backend(self): self.ETSConfig.toolkit = "wx.celiagg" self.assertEqual(self.ETSConfig.kiva_backend, "celiagg") - def test_delete_kiva_backend(self): - # given + def test_toolkit_kiva_backend_changes_when_toolkit_changed(self): self.ETSConfig.toolkit = "wx.celiagg" self.assertEqual(self.ETSConfig.kiva_backend, "celiagg") + del self.ETSConfig.toolkit - # check that the property can be deleted - del self.ETSConfig.kiva_backend + self.ETSConfig.toolkit = "wx.quartz" + self.assertEqual(self.ETSConfig.kiva_backend, "quartz") def test_mock_kiva_backend(self): # when