mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-10-20 06:48:16 +00:00
Test modules in paperless, paperless_mail and documents imported filesystem assertions, the migration test base, the retry helper and the streaming-response reader out of documents/tests/utils.py, which kept each app's tests coupled to another app's test package. They now live in paperless_testing, and the progress manager fake is renamed FakeProgressManager and now subclasses the real ProgressManager, overriding only the transport, so the payload it records is built by the production code. The twenty places that patched documents.tasks.ProgressManager by hand now use a fake_progress_manager fixture.
52 lines
2.2 KiB
Python
52 lines
2.2 KiB
Python
from paperless_testing.migrations import TestMigrations
|
|
|
|
|
|
class TestMigrateShareLinkBundlePermissions(TestMigrations):
|
|
migrate_from = "0006_document_content_length"
|
|
migrate_to = "0007_sharelinkbundle"
|
|
|
|
def setUpBeforeMigration(self, apps) -> None:
|
|
User = apps.get_model("auth", "User")
|
|
Group = apps.get_model("auth", "Group")
|
|
self.Permission = apps.get_model("auth", "Permission")
|
|
self.user = User.objects.create(username="user1")
|
|
self.group = Group.objects.create(name="group1")
|
|
add_document = self.Permission.objects.get(codename="add_document")
|
|
self.user.user_permissions.add(add_document.id)
|
|
self.group.permissions.add(add_document.id)
|
|
|
|
def test_share_link_permissions_granted_to_add_document_holders(self) -> None:
|
|
share_perms = self.Permission.objects.filter(
|
|
codename__contains="sharelinkbundle",
|
|
)
|
|
self.assertTrue(self.user.user_permissions.filter(pk__in=share_perms).exists())
|
|
self.assertTrue(self.group.permissions.filter(pk__in=share_perms).exists())
|
|
|
|
|
|
class TestReverseMigrateShareLinkBundlePermissions(TestMigrations):
|
|
migrate_from = "0007_sharelinkbundle"
|
|
migrate_to = "0006_document_content_length"
|
|
|
|
def setUpBeforeMigration(self, apps) -> None:
|
|
User = apps.get_model("auth", "User")
|
|
Group = apps.get_model("auth", "Group")
|
|
self.Permission = apps.get_model("auth", "Permission")
|
|
self.user = User.objects.create(username="user1")
|
|
self.group = Group.objects.create(name="group1")
|
|
add_document = self.Permission.objects.get(codename="add_document")
|
|
share_perms = self.Permission.objects.filter(
|
|
codename__contains="sharelinkbundle",
|
|
)
|
|
self.share_perm_ids = list(share_perms.values_list("id", flat=True))
|
|
|
|
self.user.user_permissions.add(add_document.id, *self.share_perm_ids)
|
|
self.group.permissions.add(add_document.id, *self.share_perm_ids)
|
|
|
|
def test_share_link_permissions_revoked_on_reverse(self) -> None:
|
|
self.assertFalse(
|
|
self.user.user_permissions.filter(pk__in=self.share_perm_ids).exists(),
|
|
)
|
|
self.assertFalse(
|
|
self.group.permissions.filter(pk__in=self.share_perm_ids).exists(),
|
|
)
|