Align missing-episode searches and permit reviewed profile overrides
This commit is contained in:
@@ -26,7 +26,7 @@ class FeatureAccessTests(TempDatabaseMixin, unittest.TestCase):
|
||||
self.client.headers['Authorization'] = 'Bearer ' + create_access_token(self.user['username'], 'user')
|
||||
|
||||
def test_defaults_persist_and_invites_share_existing_setting(self):
|
||||
self.assertEqual(permissions(self.user), dict(stats=True, requests=True, new_requests=True, issues=True, invites=False))
|
||||
self.assertEqual(permissions(self.user), dict(stats=True, requests=True, new_requests=True, issues=True, invites=False, ignore_profile_limits=False))
|
||||
update_permissions({'stats': False, 'invites': True}, self.user['username'])
|
||||
db.init_db()
|
||||
fresh = db.get_user_by_username(self.user['username'])
|
||||
@@ -118,3 +118,22 @@ class FeatureAccessTests(TempDatabaseMixin, unittest.TestCase):
|
||||
self.assertEqual(self.client.post('/portal/items', json={'kind': kind}).status_code, 403)
|
||||
self.assertEqual(self.client.post('/portal/items', json={'kind': None}).status_code, 403)
|
||||
self.assertEqual(self.client.post('/portal/items', json={}).status_code, 403)
|
||||
|
||||
def test_manual_override_permission_is_checked_again_at_download(self):
|
||||
from types import SimpleNamespace
|
||||
from unittest.mock import AsyncMock
|
||||
from backend.app.models import Snapshot, RequestType
|
||||
from backend.app.services import manual_releases
|
||||
runtime=SimpleNamespace(jellyseerr_base_url=None,jellyseerr_api_key=None,sonarr_base_url='http://sonarr',sonarr_api_key='test')
|
||||
snapshot=Snapshot(request_id='42',title='Example',request_type=RequestType.tv,raw={'arr':{'item':{'id':55}}})
|
||||
release={'guid':'out','indexerId':1,'title':'Example','requiresOverride':True,'rejections':['Quality is not wanted in profile']}
|
||||
payload={**release,'ignoreProfileLimits':True,'selectionToken':manual_releases.issue_selection(release,'42',self.user,'http://sonarr',55)}
|
||||
collector=SimpleNamespace(configured=lambda:True,grab_release=AsyncMock(return_value={}))
|
||||
with patch.object(requests,'get_runtime_settings',return_value=runtime),patch.object(requests,'build_snapshot',new=AsyncMock(return_value=snapshot)),patch.object(requests,'SonarrClient',return_value=collector),patch.object(requests,'save_action'):
|
||||
self.assertEqual(self.client.post('/requests/42/actions/grab',json=payload).status_code,403)
|
||||
collector.grab_release.assert_not_awaited()
|
||||
update_permissions({'ignore_profile_limits':True},self.user['username'])
|
||||
self.assertEqual(self.client.post('/requests/42/actions/grab',json=payload).status_code,200)
|
||||
update_permissions({'ignore_profile_limits':False},self.user['username'])
|
||||
self.assertEqual(self.client.post('/requests/42/actions/grab',json={**payload,'requiresOverride':False,'approved':True}).status_code,403)
|
||||
collector.grab_release.assert_awaited_once()
|
||||
|
||||
Reference in New Issue
Block a user