test(api): fix lint errors
This commit is contained in:
parent
6cc20013ef
commit
7503618599
|
@ -121,6 +121,7 @@ class User(AbstractBaseUser):
|
||||||
def is_superuser(self):
|
def is_superuser(self):
|
||||||
return self.role == Role.ADMIN
|
return self.role == Role.ADMIN
|
||||||
|
|
||||||
|
# pylint: disable=unused-argument
|
||||||
def get_user_permissions(self, obj=None):
|
def get_user_permissions(self, obj=None):
|
||||||
"""
|
"""
|
||||||
Users do not have permissions directly, only through groups
|
Users do not have permissions directly, only through groups
|
||||||
|
@ -129,14 +130,14 @@ class User(AbstractBaseUser):
|
||||||
|
|
||||||
def get_group_permissions(self, obj=None):
|
def get_group_permissions(self, obj=None):
|
||||||
permissions = GROUPS[self.role]
|
permissions = GROUPS[self.role]
|
||||||
if obj:
|
if obj is not None:
|
||||||
obj_name = obj.__class__.__name__.lower()
|
obj_name = obj.__class__.__name__.lower()
|
||||||
permissions = [perm for perm in permissions if obj_name in perm]
|
permissions = [perm for perm in permissions if obj_name in perm]
|
||||||
# get permissions objects
|
# get permissions objects
|
||||||
q = models.Q()
|
query = models.Q()
|
||||||
for perm in permissions:
|
for perm in permissions:
|
||||||
q = q | models.Q(codename=perm)
|
query = query | models.Q(codename=perm)
|
||||||
return list(Permission.objects.filter(q))
|
return list(Permission.objects.filter(query))
|
||||||
|
|
||||||
def get_all_permissions(self, obj=None):
|
def get_all_permissions(self, obj=None):
|
||||||
return self.get_user_permissions(obj) + self.get_group_permissions(obj)
|
return self.get_user_permissions(obj) + self.get_group_permissions(obj)
|
||||||
|
|
|
@ -36,11 +36,17 @@ def _track_type():
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class MockImporter(Importer):
|
||||||
|
_handle_file: MagicMock
|
||||||
|
_upload_file: MagicMock
|
||||||
|
_delete_file: MagicMock
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(name="importer")
|
@pytest.fixture(name="importer")
|
||||||
def _importer(requests_mock: Mocker):
|
def _importer(requests_mock: Mocker):
|
||||||
requests_mock.post(f"{FAKE_URL}/rest/media", status_code=200)
|
requests_mock.post(f"{FAKE_URL}/rest/media", status_code=200)
|
||||||
|
|
||||||
obj = Importer(FAKE_URL, "auth")
|
obj: MockImporter = Importer(FAKE_URL, "auth") # type: ignore
|
||||||
obj._handle_file = MagicMock(wraps=obj._handle_file)
|
obj._handle_file = MagicMock(wraps=obj._handle_file)
|
||||||
obj._upload_file = MagicMock(wraps=obj._upload_file)
|
obj._upload_file = MagicMock(wraps=obj._upload_file)
|
||||||
obj._delete_file = MagicMock(wraps=obj._delete_file)
|
obj._delete_file = MagicMock(wraps=obj._delete_file)
|
||||||
|
@ -48,10 +54,10 @@ def _importer(requests_mock: Mocker):
|
||||||
yield obj
|
yield obj
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
def test_importer(
|
def test_importer(
|
||||||
db,
|
|
||||||
import_paths: Tuple[Path, Path],
|
import_paths: Tuple[Path, Path],
|
||||||
importer: Importer,
|
importer: MockImporter,
|
||||||
track_type,
|
track_type,
|
||||||
):
|
):
|
||||||
importer.import_dir(import_paths[0], track_type.code, [".mp3"])
|
importer.import_dir(import_paths[0], track_type.code, [".mp3"])
|
||||||
|
@ -61,10 +67,10 @@ def test_importer(
|
||||||
importer._delete_file.assert_not_called()
|
importer._delete_file.assert_not_called()
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
def test_importer_and_delete(
|
def test_importer_and_delete(
|
||||||
db,
|
|
||||||
import_paths: Tuple[Path, Path],
|
import_paths: Tuple[Path, Path],
|
||||||
importer: Importer,
|
importer: MockImporter,
|
||||||
track_type,
|
track_type,
|
||||||
):
|
):
|
||||||
importer.delete_after_upload = True
|
importer.delete_after_upload = True
|
||||||
|
@ -75,10 +81,10 @@ def test_importer_and_delete(
|
||||||
importer._delete_file.assert_called_with(import_paths[1])
|
importer._delete_file.assert_called_with(import_paths[1])
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
def test_importer_existing_file(
|
def test_importer_existing_file(
|
||||||
db,
|
|
||||||
import_paths: Tuple[Path, Path],
|
import_paths: Tuple[Path, Path],
|
||||||
importer: Importer,
|
importer: MockImporter,
|
||||||
track_type,
|
track_type,
|
||||||
):
|
):
|
||||||
baker.make("storage.File", md5="46305a7cf42ee53976c88d337e47e940")
|
baker.make("storage.File", md5="46305a7cf42ee53976c88d337e47e940")
|
||||||
|
@ -90,10 +96,10 @@ def test_importer_existing_file(
|
||||||
importer._delete_file.assert_not_called()
|
importer._delete_file.assert_not_called()
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
def test_importer_existing_file_and_delete(
|
def test_importer_existing_file_and_delete(
|
||||||
db,
|
|
||||||
import_paths: Tuple[Path, Path],
|
import_paths: Tuple[Path, Path],
|
||||||
importer: Importer,
|
importer: MockImporter,
|
||||||
track_type,
|
track_type,
|
||||||
):
|
):
|
||||||
baker.make("storage.File", md5="46305a7cf42ee53976c88d337e47e940")
|
baker.make("storage.File", md5="46305a7cf42ee53976c88d337e47e940")
|
||||||
|
@ -106,10 +112,10 @@ def test_importer_existing_file_and_delete(
|
||||||
importer._delete_file.assert_called_with(import_paths[1])
|
importer._delete_file.assert_called_with(import_paths[1])
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
def test_importer_missing_track_type(
|
def test_importer_missing_track_type(
|
||||||
db,
|
|
||||||
import_paths: Tuple[Path, Path],
|
import_paths: Tuple[Path, Path],
|
||||||
importer: Importer,
|
importer: MockImporter,
|
||||||
):
|
):
|
||||||
with pytest.raises(
|
with pytest.raises(
|
||||||
ValueError,
|
ValueError,
|
||||||
|
|
Loading…
Reference in New Issue