Skip to content

Commit d4fb1d1

Browse files
committed
tests + fixes make_lock_id
1 parent 6501630 commit d4fb1d1

File tree

3 files changed

+21
-9
lines changed

3 files changed

+21
-9
lines changed

backend/pycon/celery_utils.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,14 @@ def make_lock_id(func, *args, **kwargs):
3434
arg = str(arg)
3535
hash.update(arg.encode("utf-8"))
3636

37-
for key, value in kwargs.items():
38-
if not isinstance(key, str):
39-
key = str(key)
37+
for kwarg_key, kwarg_value in kwargs.items():
38+
if not isinstance(kwarg_key, str):
39+
kwarg_key = str(kwarg_key)
4040

41-
if not isinstance(value, str):
42-
value = str(value)
41+
if not isinstance(kwarg_value, str):
42+
kwarg_value = str(kwarg_value)
4343

44-
key = key.encode("utf-8")
45-
value = value.encode("utf-8")
46-
hash.update(f"{key}={value}".encode("utf-8"))
44+
hash.update(f"{kwarg_key}={kwarg_value}".encode("utf-8"))
4745

4846
if args or kwargs:
4947
key = f"{key}_{hash.hexdigest()}"

backend/pycon/tests/test_celery_utils.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ def test_make_lock_id(mocker):
1818
args_md5 = hashlib.md5("123".encode("utf-8")).hexdigest()
1919
assert key == f"celery_lock_pycon.tests.test_celery_utils_test_func_{args_md5}"
2020

21+
key = make_lock_id(test_func, 1, arg1="abc")
22+
args_md5 = hashlib.md5("1arg1=abc".encode("utf-8")).hexdigest()
23+
assert key == f"celery_lock_pycon.tests.test_celery_utils_test_func_{args_md5}"
24+
2125
mocker.patch.dict(os.environ, {"PYTEST_XDIST_WORKER": "1"})
2226
key = make_lock_id(test_func)
2327
assert key == "celery_lock_pycon.tests.test_celery_utils_test_func_1"

backend/pycon/tests/test_storage.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
from unittest import mock
22
from files_upload.models import File
33
from files_upload.tests.factories import FileFactory
4-
from pycon.storages import CustomFileSystemStorage, CustomS3Boto3Storage
4+
from pycon.storages import (
5+
CustomFileSystemStorage,
6+
CustomS3Boto3Storage,
7+
PrivateCustomS3Boto3Storage,
8+
)
59

610

711
def test_s3_storage_generate_public_upload_url(mocker):
@@ -41,3 +45,9 @@ def test_local_storage_generate_upload_url():
4145
assert f"local_files_upload/{file.id}" in return_value.url
4246
assert return_value.fields == {}
4347
assert return_value.fields_as_json == "{}"
48+
49+
50+
def test_private_storage_removes_cache_control_params():
51+
storage = PrivateCustomS3Boto3Storage()
52+
params = storage.get_object_parameters("test.pdf")
53+
assert "CacheControl" not in params

0 commit comments

Comments
 (0)