diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 4fd941908..4b45ff9a5 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,6 +1,16 @@ django-storages CHANGELOG ========================= +1.13.1 (XXXX-XX-XX) +******************* + +Dropbox +------- + +- Update ``DropBoxStorage`` constructor parameter order to be backwards compatible (`#1167`_) + +.. _#1167: https://github.com/jschneier/django-storages/pull/1167 + 1.13 (2022-08-05) ***************** diff --git a/storages/backends/dropbox.py b/storages/backends/dropbox.py index e0c4ad950..eb372fcdc 100644 --- a/storages/backends/dropbox.py +++ b/storages/backends/dropbox.py @@ -84,12 +84,12 @@ class DropBoxStorage(Storage): def __init__( self, oauth2_access_token=oauth2_access_token, - app_key=app_key, - app_secret=app_secret, - oauth2_refresh_token=oauth2_refresh_token, root_path=location, timeout=timeout, write_mode=write_mode, + app_key=app_key, + app_secret=app_secret, + oauth2_refresh_token=oauth2_refresh_token, ): if oauth2_access_token is None and not all( [app_key, app_secret, oauth2_refresh_token] diff --git a/tests/test_dropbox.py b/tests/test_dropbox.py index f66ee4424..185733cf1 100644 --- a/tests/test_dropbox.py +++ b/tests/test_dropbox.py @@ -2,7 +2,9 @@ from datetime import datetime from unittest import mock -from django.core.exceptions import ImproperlyConfigured +from django.core.exceptions import ( + ImproperlyConfigured, SuspiciousFileOperation, +) from django.core.files.base import File from django.test import TestCase from dropbox.files import FileMetadata, FolderMetadata, GetTemporaryLinkResult @@ -185,17 +187,18 @@ def test_server_bad_response(self, *args): return_value=FILES_EMPTY_MOCK) class DropBoxRootPathTest(TestCase): def test_jailed(self, *args): - self.storage = dropbox.DropBoxStorage('foo', '/bar') + self.storage = dropbox.DropBoxStorage('foo', root_path='/bar') dirs, files = self.storage.listdir('/') self.assertFalse(dirs) self.assertFalse(files) - def test_relative_path(self, *args): - self.storage = dropbox.DropBoxStorage('foo', '/bar') - self.assertEqual('/', self.storage._full_path('..')) + def test_suspicious(self, *args): + self.storage = dropbox.DropBoxStorage('foo', root_path='/bar') + with self.assertRaises((SuspiciousFileOperation, ValueError)): + self.storage._full_path('..') def test_formats(self, *args): - self.storage = dropbox.DropBoxStorage('foo', '/bar') + self.storage = dropbox.DropBoxStorage('foo', root_path='/bar') files = self.storage._full_path('') self.assertEqual(files, self.storage._full_path('/')) self.assertEqual(files, self.storage._full_path('.'))