Wait for Arr download queue hand-off before reporting search outcome
This commit is contained in:
@@ -85,8 +85,8 @@ class RequestLanguageTests(unittest.IsolatedAsyncioTestCase):
|
||||
await apply_original_to_movie(client, 613)
|
||||
|
||||
async def test_search_reports_real_outcomes(self):
|
||||
for command_status, queue, expected in [('completed', [], 'attention'), ('failed', [], 'attention'),
|
||||
('started', [], 'searching'), ('completed', [{'movieId': 6940}], 'downloading')]:
|
||||
for command_status, queue, expected in [('completed', [], 'pending'), ('failed', [], 'attention'),
|
||||
('started', [], 'pending'), ('completed', [{'movieId': 6940}], 'downloading')]:
|
||||
client = SimpleNamespace(get=AsyncMock(return_value={'status': command_status}),
|
||||
get_queue=AsyncMock(return_value={'records': queue}), get_movie=AsyncMock(return_value={'hasFile': False}))
|
||||
result = await movie_search_outcome(client, 6940, {'id': 1}, attempts=1, delay=0)
|
||||
@@ -114,6 +114,23 @@ class RequestLanguageTests(unittest.IsolatedAsyncioTestCase):
|
||||
async def test_tv_search_distinguishes_no_download_and_queue(self):
|
||||
from backend.app.services.request_language import series_search_outcome
|
||||
client = SimpleNamespace(get=AsyncMock(return_value={'status': 'completed'}), get_queue=AsyncMock(return_value={'records': []}))
|
||||
self.assertEqual((await series_search_outcome(client, 50, [{'id': 1}], attempts=1))['status'], 'attention')
|
||||
self.assertEqual((await series_search_outcome(client, 50, [{'id': 1}], attempts=1))['status'], 'pending')
|
||||
client.get_queue.return_value = {'records': [{'seriesId': 50}]}
|
||||
self.assertEqual((await series_search_outcome(client, 50, [{'id': 1}], attempts=1))['status'], 'downloading')
|
||||
|
||||
|
||||
class SearchHandoffTests(unittest.IsolatedAsyncioTestCase):
|
||||
async def test_radarr_completed_before_queue_refresh(self):
|
||||
client = SimpleNamespace(get=AsyncMock(return_value={'status':'completed'}),
|
||||
get_queue=AsyncMock(side_effect=[{'records':[]}, {'records':[]}, {'records':[{'movieId':2206}]}]),
|
||||
get_movie=AsyncMock(return_value={'hasFile':False}))
|
||||
result = await movie_search_outcome(client, 2206, {'id':1}, attempts=3, delay=0)
|
||||
self.assertEqual(result['status'], 'downloading')
|
||||
self.assertEqual(client.get_queue.await_count, 3)
|
||||
|
||||
async def test_sonarr_completed_before_queue_refresh(self):
|
||||
from backend.app.services.request_language import series_search_outcome
|
||||
client = SimpleNamespace(get=AsyncMock(return_value={'status':'completed'}),
|
||||
get_queue=AsyncMock(side_effect=[{'records':[{'seriesId':999}]}, {'records':[{'seriesId':50}]}]))
|
||||
result = await series_search_outcome(client, 50, [{'id':1}], attempts=2, delay=0)
|
||||
self.assertEqual(result['status'], 'downloading')
|
||||
|
||||
Reference in New Issue
Block a user