From 1bf1dd67f08c47e6aebfc274c2a7b16260f0b65a Mon Sep 17 00:00:00 2001 From: Thomas Farstrike Date: Wed, 11 Mar 2026 21:09:43 +0100 Subject: [PATCH] SharedPreferences: fix None handling --- internal_filesystem/lib/mpos/config.py | 2 +- tests/test_shared_preferences.py | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/internal_filesystem/lib/mpos/config.py b/internal_filesystem/lib/mpos/config.py index e42f45e6..a649ccf0 100644 --- a/internal_filesystem/lib/mpos/config.py +++ b/internal_filesystem/lib/mpos/config.py @@ -172,7 +172,7 @@ class Editor: def put_string(self, key, value): """Store a string value.""" - self.temp_data[key] = str(value) + self.temp_data[key] = None if value is None else str(value) return self def put_int(self, key, value): diff --git a/tests/test_shared_preferences.py b/tests/test_shared_preferences.py index 634c225a..4c577dea 100644 --- a/tests/test_shared_preferences.py +++ b/tests/test_shared_preferences.py @@ -432,6 +432,14 @@ class TestSharedPreferences(unittest.TestCase): # Getting a nonexistent key should return None or default self.assertIsNone(prefs.get_string("nonexistent")) + def test_put_string_none_value(self): + """Test that putting None stores and returns a real None.""" + prefs = SharedPreferences(self.test_app_name) + prefs.edit().put_string("auto_start_app_early", None).commit() + + prefs2 = SharedPreferences(self.test_app_name) + self.assertIsNone(prefs2.get_string("auto_start_app_early")) + def test_special_characters_in_keys(self): """Test keys with special characters.""" prefs = SharedPreferences(self.test_app_name)