From 7fcadd2887b7ff311345a11f2b9c3d4d15fa9083 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon, 26 Jan 2026 17:23:07 -0800 Subject: [PATCH] Fix this too --- src/documents/tests/test_share_link_bundles.py | 13 +++++++++++++ src/documents/views.py | 18 +++++++----------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/documents/tests/test_share_link_bundles.py b/src/documents/tests/test_share_link_bundles.py index e8de022c4..f7deed5c9 100644 --- a/src/documents/tests/test_share_link_bundles.py +++ b/src/documents/tests/test_share_link_bundles.py @@ -156,6 +156,19 @@ class ShareLinkBundleAPITests(DirectoriesMixin, APITestCase): self.assertEqual(response.status_code, status.HTTP_202_ACCEPTED) + def test_download_failed_bundle_returns_503(self): + bundle = ShareLinkBundle.objects.create( + slug="failedslug", + file_version=ShareLink.FileVersion.ARCHIVE, + status=ShareLinkBundle.Status.FAILED, + ) + bundle.documents.set([self.document]) + + self.client.logout() + response = self.client.get(f"/share/{bundle.slug}/") + + self.assertEqual(response.status_code, status.HTTP_503_SERVICE_UNAVAILABLE) + def test_expired_share_link_redirects(self): share_link = ShareLink.objects.create( slug="expiredlink", diff --git a/src/documents/views.py b/src/documents/views.py index 61568011c..c0f3b5db4 100644 --- a/src/documents/views.py +++ b/src/documents/views.py @@ -2939,16 +2939,10 @@ class SharedLinkView(View): if bundle.expiration is not None and bundle.expiration < timezone.now(): return HttpResponseRedirect("/accounts/login/?sharelink_expired=1") - file_path = bundle.absolute_file_path - - if ( - bundle.status - in { - ShareLinkBundle.Status.PENDING, - ShareLinkBundle.Status.PROCESSING, - } - or file_path is None - ): + if bundle.status in { + ShareLinkBundle.Status.PENDING, + ShareLinkBundle.Status.PROCESSING, + }: return HttpResponse( _( "The share link bundle is still being prepared. Please try again later.", @@ -2956,7 +2950,9 @@ class SharedLinkView(View): status=status.HTTP_202_ACCEPTED, ) - if bundle.status == ShareLinkBundle.Status.FAILED: + file_path = bundle.absolute_file_path + + if bundle.status == ShareLinkBundle.Status.FAILED or file_path is None: return HttpResponse( _( "The share link bundle is unavailable.",