Skip to content

Commit 1561f06

Browse files
committed
Renamed utils.get_file_download_url and corrected broken tests
1 parent f73b0fc commit 1561f06

File tree

3 files changed

+18
-16
lines changed

3 files changed

+18
-16
lines changed

src/imio/esign/testing.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from plone.app.testing import PLONE_FIXTURE
77
from plone.app.testing import PloneSandboxLayer
88
from plone.testing import z2
9+
from zope.globalrequest import setLocal
910

1011
import imio.esign # noqa: F401
1112

@@ -30,6 +31,7 @@ def setUpZope(self, app, configurationContext):
3031
self.loadZCML(package=imio.esign)
3132

3233
def setUpPloneSite(self, portal):
34+
setLocal("request", portal.REQUEST)
3335
applyProfile(portal, "imio.annex:default")
3436
applyProfile(portal, "imio.esign:default")
3537

src/imio/esign/tests/test_utils.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from datetime import timedelta
44
from imio.esign.testing import IMIO_ESIGN_INTEGRATION_TESTING # noqa: E501
55
from imio.esign.utils import add_files_to_session
6-
from imio.esign.utils import get_file_uid_url
6+
from imio.esign.utils import get_file_download_url
77
from imio.esign.utils import get_max_download_date
88
from imio.esign.utils import get_session_annotation
99
from imio.esign.utils import remove_context_from_session
@@ -297,32 +297,32 @@ def test_remove_session(self):
297297
self.assertEqual(len(annot["c_uids"]), 2)
298298
self.assertEqual(len(annot["sessions"]), 1)
299299

300-
def test_get_file_uid_url(self):
300+
def test_get_file_download_url(self):
301301
"""Test generating file download URL from UID."""
302302
uid = "f40682caafc045b4b81973bd82ea9ab6"
303303
# Test error when no root_url is configured
304304
with self.assertRaises(Exception) as cm:
305-
get_file_uid_url(uid)
305+
get_file_download_url(uid)
306306
self.assertIn("No root URL provided", str(cm.exception))
307307

308308
api.portal.set_registry_record("imio.esign.file_url", "https://downloads.files.com")
309309

310-
result = get_file_uid_url(uid)
311-
self.assertEqual(result, "https://downloads.files.com/Rzgwy-9BVG9-viEts-5GBkn-Rm")
310+
result = get_file_download_url(uid)
311+
self.assertEqual(result, ("https://downloads.files.com/Rzgwy-9BVG9-viEts-5GBkn-Rm",
312+
"Rzgwy-9BVG9-viEts-5GBkn-Rm"))
312313

313-
result = get_file_uid_url(uid, separator="_", block_size=3)
314-
self.assertEqual(result, "https://downloads.files.com/Rzg_wy9_BVG_9vi_Ets_5GB_knR_m")
314+
result = get_file_download_url(uid, separator="_", block_size=3)
315+
self.assertEqual(result[0], "https://downloads.files.com/Rzg_wy9_BVG_9vi_Ets_5GB_knR_m")
315316

316317
custom_url = "https://custom.domain.org/"
317-
result = get_file_uid_url(uid, root_url=custom_url)
318-
self.assertEqual(result, "https://custom.domain.org/Rzgwy-9BVG9-viEts-5GBkn-Rm")
318+
result = get_file_download_url(uid, root_url=custom_url)
319+
self.assertEqual(result[0], "https://custom.domain.org/Rzgwy-9BVG9-viEts-5GBkn-Rm")
319320

320321
# Test with another UID to verify encoding works
321322
uid2 = self.uids[0]
322-
result2 = get_file_uid_url(uid2)
323-
self.assertTrue(result2.startswith("https://downloads.files.com/"))
324-
suid = result2[len("https://downloads.files.com/") :]
325-
self.assertEqual(shortuid_decode_id(suid, separator="-"), uid2) # correctly decoded
323+
result2 = get_file_download_url(uid2)
324+
self.assertTrue(result2[0].startswith("https://downloads.files.com/"))
325+
self.assertEqual(shortuid_decode_id(result2[1], separator="-"), uid2) # correctly decoded
326326

327327
def test_get_max_download_date(self):
328328
annex = self.folders[0]

src/imio/esign/utils.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -384,22 +384,22 @@ def remove_session(session_id):
384384
# logger.info("Session %s removed", session_id)
385385

386386

387-
def get_file_uid_url(uid, separator="-", block_size=5, root_url=None):
387+
def get_file_download_url(uid, separator="-", block_size=5, root_url=None):
388388
"""Get the file download URL for a given file UID.
389389
390390
:param uid: file UID
391391
:param separator: separator used in short UID encoding
392392
:param block_size: block size used in short UID encoding
393393
:param root_url: root URL. If not provided, the settings value is used
394-
:return: file download URL
394+
:return: file download URL, short_uid
395395
"""
396396
if not root_url:
397397
root_url = get_registry_file_url()
398398

399399
if not root_url:
400400
raise Exception("No root URL provided for file download url.")
401401
short_uid = shortuid_encode_id(uid, separator=separator, block_size=block_size)
402-
return "{}/{}".format(root_url.strip('/'), short_uid)
402+
return "{}/{}".format(root_url.strip('/'), short_uid), short_uid
403403

404404

405405
def get_max_download_date(obj, delta=timedelta(days=120)):

0 commit comments

Comments
 (0)