From 8f894f15230810972428aa82755ef65f98ba8801 Mon Sep 17 00:00:00 2001 From: Corentin Delorme Date: Wed, 3 Jul 2024 20:02:23 +0200 Subject: [PATCH] [azure] Add non-regression test case for writable URLs --- tests/test_azure.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/tests/test_azure.py b/tests/test_azure.py index cad33203..029a8ba2 100644 --- a/tests/test_azure.py +++ b/tests/test_azure.py @@ -164,7 +164,10 @@ def test_url_expire(self, generate_blob_sas_mocked): fixed_time = make_aware( datetime.datetime(2016, 11, 6, 4), datetime.timezone.utc ) + with mock.patch("storages.backends.azure_storage.datetime") as d_mocked: + + # Implicit read permission d_mocked.utcnow.return_value = fixed_time self.assertEqual( self.storage.url("some blob", 100), @@ -179,6 +182,26 @@ def test_url_expire(self, generate_blob_sas_mocked): permission=mock.ANY, expiry=fixed_time + timedelta(seconds=100), ) + called_args, called_kwargs = generate_blob_sas_mocked.call_args + self.assertEqual(str(called_kwargs["permission"]), "r") + + # Explicit write permission + d_mocked.utcnow.return_value = fixed_time + self.assertEqual( + self.storage.url("some blob", expire=100, mode="w"), + "https://ret_foo.blob.core.windows.net/test/some%20blob", + ) + generate_blob_sas_mocked.assert_called_with( + self.account_name, + self.container_name, + "some blob", + account_key=self.account_key, + user_delegation_key=None, + permission=mock.ANY, + expiry=fixed_time + timedelta(seconds=100), + ) + called_args, called_kwargs = generate_blob_sas_mocked.call_args + self.assertEqual(str(called_kwargs["permission"]), "w") @mock.patch("storages.backends.azure_storage.generate_blob_sas") def test_url_expire_user_delegation_key(self, generate_blob_sas_mocked):