@@ -143,6 +143,45 @@ def test_check_subscription_creates_if_not_found(self, mock_get, mock_post):
143143 mock_get .assert_called_once ()
144144 mock_post .assert_called_once ()
145145
146+ @patch .object (MnsService , "delete_subscription" )
147+ @patch .object (MnsService , "get_subscription" )
148+ def test_check_delete_subscription_success (self , mock_get_subscription , mock_delete_subscription ):
149+ # Mock get_subscription returns a resource with id
150+ mock_get_subscription .return_value = {"id" : "sub-123" }
151+ # Mock delete_subscription returns True
152+ mock_delete_subscription .return_value = True
153+
154+ service = MnsService (self .authenticator )
155+ result = service .check_delete_subcription ()
156+ self .assertEqual (result , "Subscription successfully deleted" )
157+ mock_get_subscription .assert_called_once ()
158+ mock_delete_subscription .assert_called_once_with ("sub-123" )
159+
160+ @patch .object (MnsService , "get_subscription" )
161+ def test_check_delete_subscription_no_resource (self , mock_get_subscription ):
162+ # No subscription found
163+ mock_get_subscription .return_value = None
164+ service = MnsService (self .authenticator )
165+ result = service .check_delete_subcription ()
166+ self .assertEqual (result , "No matching subscription found to delete." )
167+
168+ @patch .object (MnsService , "get_subscription" )
169+ def test_check_delete_subscription_missing_id (self , mock_get_subscription ):
170+ # Resource with no id field
171+ mock_get_subscription .return_value = {"not_id" : "nope" }
172+ service = MnsService (self .authenticator )
173+ result = service .check_delete_subcription ()
174+ self .assertEqual (result , "Subscription resource missing 'id' field." )
175+
176+ @patch .object (MnsService , "delete_subscription" )
177+ @patch .object (MnsService , "get_subscription" )
178+ def test_check_delete_subscription_raises (self , mock_get_subscription , mock_delete_subscription ):
179+ mock_get_subscription .return_value = {"id" : "sub-123" }
180+ mock_delete_subscription .side_effect = Exception ("Error!" )
181+ service = MnsService (self .authenticator )
182+ result = service .check_delete_subcription ()
183+ self .assertTrue (result .startswith ("Error deleting subscription: Error!" ))
184+
146185
147186if __name__ == "__main__" :
148187 unittest .main ()
0 commit comments