diff --git a/tests/components/remember_the_milk/const.py b/tests/components/remember_the_milk/const.py new file mode 100644 index 00000000000..8423c7f4651 --- /dev/null +++ b/tests/components/remember_the_milk/const.py @@ -0,0 +1,14 @@ +"""Constants for remember_the_milk tests.""" + +import json + +PROFILE = "myprofile" +TOKEN = "mytoken" +JSON_STRING = json.dumps( + { + "myprofile": { + "token": "mytoken", + "id_map": {"1234": {"list_id": "0", "timeseries_id": "1", "task_id": "2"}}, + } + } +) diff --git a/tests/components/remember_the_milk/test_init.py b/tests/components/remember_the_milk/test_init.py index 1c9438c602b..a743f61057d 100644 --- a/tests/components/remember_the_milk/test_init.py +++ b/tests/components/remember_the_milk/test_init.py @@ -1,89 +1,66 @@ """Tests for the Remember The Milk component.""" -import json import logging -import unittest import homeassistant.components.remember_the_milk as rtm +from .const import JSON_STRING, PROFILE, TOKEN + from tests.async_mock import Mock, mock_open, patch -from tests.common import get_test_home_assistant _LOGGER = logging.getLogger(__name__) -class TestConfiguration(unittest.TestCase): - """Basic tests for the class RememberTheMilkConfiguration.""" +def test_create_new(hass): + """Test creating a new config file.""" + with patch("builtins.open", mock_open()), patch( + "os.path.isfile", Mock(return_value=False) + ), patch.object(rtm.RememberTheMilkConfiguration, "save_config"): + config = rtm.RememberTheMilkConfiguration(hass) + config.set_token(PROFILE, TOKEN) + assert config.get_token(PROFILE) == TOKEN - def setUp(self): - """Set up test Home Assistant main loop.""" - self.hass = get_test_home_assistant() - self.profile = "myprofile" - self.token = "mytoken" - self.json_string = json.dumps( - { - "myprofile": { - "token": "mytoken", - "id_map": { - "1234": {"list_id": "0", "timeseries_id": "1", "task_id": "2"} - }, - } - } - ) - self.addCleanup(self.tear_down_cleanup) - def tear_down_cleanup(self): - """Exit Home Assistant.""" - self.hass.stop() +def test_load_config(hass): + """Test loading an existing token from the file.""" + with patch("builtins.open", mock_open(read_data=JSON_STRING)), patch( + "os.path.isfile", Mock(return_value=True) + ): + config = rtm.RememberTheMilkConfiguration(hass) + assert config.get_token(PROFILE) == TOKEN - def test_create_new(self): - """Test creating a new config file.""" - with patch("builtins.open", mock_open()), patch( - "os.path.isfile", Mock(return_value=False) - ), patch.object(rtm.RememberTheMilkConfiguration, "save_config"): - config = rtm.RememberTheMilkConfiguration(self.hass) - config.set_token(self.profile, self.token) - assert config.get_token(self.profile) == self.token - def test_load_config(self): - """Test loading an existing token from the file.""" - with patch("builtins.open", mock_open(read_data=self.json_string)), patch( - "os.path.isfile", Mock(return_value=True) - ): - config = rtm.RememberTheMilkConfiguration(self.hass) - assert config.get_token(self.profile) == self.token +def test_invalid_data(hass): + """Test starts with invalid data and should not raise an exception.""" + with patch("builtins.open", mock_open(read_data="random characters")), patch( + "os.path.isfile", Mock(return_value=True) + ): + config = rtm.RememberTheMilkConfiguration(hass) + assert config is not None - def test_invalid_data(self): - """Test starts with invalid data and should not raise an exception.""" - with patch("builtins.open", mock_open(read_data="random characters")), patch( - "os.path.isfile", Mock(return_value=True) - ): - config = rtm.RememberTheMilkConfiguration(self.hass) - assert config is not None - def test_id_map(self): - """Test the hass to rtm task is mapping.""" - hass_id = "hass-id-1234" - list_id = "mylist" - timeseries_id = "my_timeseries" - rtm_id = "rtm-id-4567" - with patch("builtins.open", mock_open()), patch( - "os.path.isfile", Mock(return_value=False) - ), patch.object(rtm.RememberTheMilkConfiguration, "save_config"): - config = rtm.RememberTheMilkConfiguration(self.hass) +def test_id_map(hass): + """Test the hass to rtm task is mapping.""" + hass_id = "hass-id-1234" + list_id = "mylist" + timeseries_id = "my_timeseries" + rtm_id = "rtm-id-4567" + with patch("builtins.open", mock_open()), patch( + "os.path.isfile", Mock(return_value=False) + ), patch.object(rtm.RememberTheMilkConfiguration, "save_config"): + config = rtm.RememberTheMilkConfiguration(hass) - assert config.get_rtm_id(self.profile, hass_id) is None - config.set_rtm_id(self.profile, hass_id, list_id, timeseries_id, rtm_id) - assert (list_id, timeseries_id, rtm_id) == config.get_rtm_id( - self.profile, hass_id - ) - config.delete_rtm_id(self.profile, hass_id) - assert config.get_rtm_id(self.profile, hass_id) is None + assert config.get_rtm_id(PROFILE, hass_id) is None + config.set_rtm_id(PROFILE, hass_id, list_id, timeseries_id, rtm_id) + assert (list_id, timeseries_id, rtm_id) == config.get_rtm_id(PROFILE, hass_id) + config.delete_rtm_id(PROFILE, hass_id) + assert config.get_rtm_id(PROFILE, hass_id) is None - def test_load_key_map(self): - """Test loading an existing key map from the file.""" - with patch("builtins.open", mock_open(read_data=self.json_string)), patch( - "os.path.isfile", Mock(return_value=True) - ): - config = rtm.RememberTheMilkConfiguration(self.hass) - assert ("0", "1", "2") == config.get_rtm_id(self.profile, "1234") + +def test_load_key_map(hass): + """Test loading an existing key map from the file.""" + with patch("builtins.open", mock_open(read_data=JSON_STRING)), patch( + "os.path.isfile", Mock(return_value=True) + ): + config = rtm.RememberTheMilkConfiguration(hass) + assert ("0", "1", "2") == config.get_rtm_id(PROFILE, "1234")