Issue 3183: Error when uploading an image (as attachment) with a name of 254 chars

remotes/origin/logger
Alejandro Alonso 2016-01-12 12:34:09 +01:00 committed by David Barragán Merino
parent 54423c29c2
commit 59d05a3d7e
2 changed files with 45 additions and 1 deletions

View File

@ -54,7 +54,7 @@ def generate_random_hex_color():
def get_user_file_path(instance, filename):
basename = path.basename(filename).lower()
base, ext = path.splitext(basename)
base = slugify(unidecode(base))
base = slugify(unidecode(base))[0:100]
basename = "".join([base, ext])
hs = hashlib.sha256()

View File

@ -175,6 +175,50 @@ def test_cancel_self_user_with_invalid_token(client):
assert response.status_code == 400
def test_change_avatar(client):
url = reverse('users-change-avatar')
user = f.UserFactory()
client.login(user)
with NamedTemporaryFile() as avatar:
# Test no avatar send
post_data = {}
response = client.post(url, post_data)
assert response.status_code == 400
# Test invalid file send
post_data = {
'avatar': avatar
}
response = client.post(url, post_data)
assert response.status_code == 400
# Test empty valid avatar send
avatar.write(DUMMY_BMP_DATA)
avatar.seek(0)
response = client.post(url, post_data)
assert response.status_code == 200
def test_change_avatar_with_long_file_name(client):
url = reverse('users-change-avatar')
user = f.UserFactory()
with NamedTemporaryFile(delete=False) as avatar:
avatar.name=500*"x"+".bmp"
avatar.write(DUMMY_BMP_DATA)
avatar.seek(0)
client.login(user)
post_data = {'avatar': avatar}
response = client.post(url, post_data)
print(response.data)
assert response.status_code == 200
@pytest.mark.django_db(transaction=True)
def test_change_avatar_removes_the_old_one(client):
url = reverse('users-change-avatar')