45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
import base64
|
|
|
|
from django.core.urlresolvers import reverse
|
|
|
|
import pytest
|
|
|
|
from combo.apps.assets.models import Asset
|
|
|
|
pytestmark = pytest.mark.django_db
|
|
|
|
def test_asset_set_api(app, john_doe):
|
|
app.authorization = ('Basic', (john_doe.username, john_doe.username))
|
|
resp = app.post_json(reverse('api-assets-set', kwargs={'key': 'plop'}), params={
|
|
'asset': {
|
|
'content': base64.encodebytes(b'plop').decode('ascii'),
|
|
'content_type': 'text/plain',
|
|
'filename': 'plop.txt',
|
|
}
|
|
})
|
|
assert Asset.objects.get(key='plop').asset.read() == b'plop'
|
|
|
|
resp = app.post_json(reverse('api-assets-set', kwargs={'key': 'plop'}), params={
|
|
'asset': {
|
|
'content': base64.encodebytes(b'plop2').decode('ascii'),
|
|
'content_type': 'text/plain',
|
|
'filename': 'plop.txt',
|
|
}
|
|
})
|
|
assert Asset.objects.get(key='plop').asset.read() == b'plop2'
|
|
|
|
resp = app.post_json(reverse('api-assets-set', kwargs={'key': 'plop'}), params={}, status=400)
|
|
assert resp.json.get('err') == 1
|
|
|
|
for invalid_value in (None, 'not base 64', u'éléphant'):
|
|
resp = app.post_json(reverse('api-assets-set', kwargs={'key': 'plop'}), params={
|
|
'asset': {
|
|
'content': invalid_value,
|
|
'content_type': 'text/plain',
|
|
'filename': 'plop.txt',
|
|
}
|
|
}, status=400)
|
|
assert resp.json.get('err') == 1
|