@@ -170,35 +170,34 @@ def test_upload_ftp_forbidden_extension(self, mock_shutil, mock_hash, mock_magic
170170 QueuedSample .sha == filehash ).first ()
171171 self .assertEqual (queued_sample , None )
172172
173- # TODO: The methods below are not working due to decorator login_required not being mocked
174- # @mock.patch('mod_upload.controllers.login_required', side_effect=mock_decorator)
175- # def test_link_id_confirm_invalid(self, mock_login):
176- # """
177- # Try to confirm link for invalid sample and queue.
178- # """
179- # from mod_upload.controllers import link_id_confirm, QueuedSampleNotFoundException
180-
181- # with self.assertRaises(QueuedSampleNotFoundException):
182- # link_id_confirm(1000, 1000)
183-
184- # @mock.patch('mod_upload.controllers.redirect')
185- # @mock.patch('mod_upload.controllers.login_required', side_effect=mock_decorator)
186- # @mock.patch('mod_upload.controllers.QueuedSample')
187- # @mock.patch('mod_upload.controllers.Sample')
188- # def test_link_id_confirm(self, mock_sample, mock_queue, mock_login, mock_redirect):
189- # """
190- # Test confirm link for valid sample and queue.
191- # """
192- # from mod_upload.controllers import link_id_confirm
193-
194- # mock_queue.query.filter.return_value.first.return_value.user_id = g.user
195- # mock_sample.query.filter.return_value.first.return_value.upload.user_id = g.user
196-
197- # response = link_id_confirm(1, 1)
198-
199- # self.assertEqual(response, mock_redirect())
200- # mock_queue.query.filter.assert_called_once_with(mock_queue.id == 1)
201- # mock_sample.query.filter.assert_called_once_with(mock_sample.id == 1)
173+ def test_link_id_confirm_invalid (self ):
174+ """Try to confirm link for invalid sample and queue."""
175+ from mod_upload .controllers import (QueuedSampleNotFoundException ,
176+ link_id_confirm )
177+
178+ with self .assertRaises (QueuedSampleNotFoundException ):
179+ link_id_confirm .__wrapped__ (1000 , 1000 )
180+
181+ @mock .patch ('mod_upload.controllers.redirect' )
182+ @mock .patch ('mod_upload.controllers.QueuedSample' )
183+ @mock .patch ('mod_upload.controllers.Sample' )
184+ @mock .patch ('mod_upload.controllers.g' )
185+ def test_link_id_confirm_valid (self , mock_g , mock_sample , mock_queue , mock_redirect ):
186+ """Test confirm link for valid sample and queue."""
187+ from mod_upload .controllers import link_id_confirm
188+
189+ # Mock g.user to have an 'id' attribute to satisfy the controller
190+ mock_g .user .id = 1
191+
192+ # Ensure the mocked database queries return an object owned by that user
193+ mock_queue .query .filter .return_value .first .return_value .user_id = mock_g .user .id
194+ mock_sample .query .filter .return_value .first .return_value .upload .user_id = mock_g .user .id
195+
196+ response = link_id_confirm .__wrapped__ (1 , 1 )
197+
198+ self .assertEqual (response , mock_redirect ())
199+ mock_queue .query .filter .assert_called_once ()
200+ mock_sample .query .filter .assert_called_once ()
202201
203202 def test_create_hash_for_sample (self ):
204203 """Test creating hash for temp file."""
0 commit comments