Я пишу тестовый блок для загрузки файла теста в Django 2.x
@pytest.mark.django_db
class TestContact(TestCase):
def test_model_add_contact(self):
user = mixer.blend(User, is_superuser=True, username='anuj')
contact = Contact(
user=user,
first_name='Anuj',
last_name='Sharma',
gender='m',
date_of_birth='1996-10-19'
)
contact.save()
avatar_name = tempfile.NamedTemporaryFile(suffix='.jpg').name
contact.avatar = avatar_name
contact.save()
# Avatar test
assert contact.avatar == avatar_name, 'Should return avatar path'
assert contact.get_avatar == settings.MEDIA_URL.rstrip('/') + avatar_name, 'Should return url of avatar path'
Ранее, когда использовался бэкэнд хранилища по умолчанию, тестовый сценарий успешно проходил.
Нотеперь я использую django-storage с dropbox в качестве бэкэнда хранилища
DEFAULT_FILE_STORAGE = 'storages.backends.dropbox.DropBoxStorage'
DROPBOX_OAUTH2_TOKEN = 'access_token'
DROPBOX_ROOT_PATH = 'Koober'
Но сейчас тестовый пример не проходит
django.core.exceptions.SuspiciousFileOperation: The joined path (/tmp/tmpwzfymbqf.jpg) is located outside of the base path component (/builds/app/app-py/MyApp)
Как изменить бэкэнд хранилища в модульном тесте?