59 lines
1.5 KiB
Python
59 lines
1.5 KiB
Python
from cookbook.models import Storage
|
|
from django.contrib import auth
|
|
from django.urls import reverse
|
|
import pytest
|
|
|
|
|
|
@pytest.fixture
|
|
def storage_obj(a1_s1, space_1):
|
|
return Storage.objects.create(
|
|
name='TestStorage',
|
|
method=Storage.DROPBOX,
|
|
created_by=auth.get_user(a1_s1),
|
|
token='test',
|
|
username='test',
|
|
password='test',
|
|
space=space_1,
|
|
)
|
|
|
|
|
|
def test_edit_storage(storage_obj, a1_s1, a1_s2):
|
|
r = a1_s1.post(
|
|
reverse('edit_storage', args={storage_obj.pk}),
|
|
{
|
|
'name': 'NewStorage',
|
|
'password': '1234_pw',
|
|
'token': '1234_token',
|
|
'method': Storage.DROPBOX
|
|
}
|
|
)
|
|
storage_obj.refresh_from_db()
|
|
assert r.status_code == 200
|
|
assert storage_obj.password == '1234_pw'
|
|
assert storage_obj.token == '1234_token'
|
|
|
|
r = a1_s2.post(
|
|
reverse('edit_storage', args={storage_obj.pk}),
|
|
{
|
|
'name': 'NewStorage',
|
|
'password': '1234_pw',
|
|
'token': '1234_token',
|
|
'method': Storage.DROPBOX
|
|
}
|
|
)
|
|
assert r.status_code == 404
|
|
|
|
|
|
@pytest.mark.parametrize("arg", [
|
|
['a_u', 302],
|
|
['g1_s1', 302],
|
|
['u1_s1', 302],
|
|
['a1_s1', 200],
|
|
['g1_s2', 302],
|
|
['u1_s2', 302],
|
|
['a1_s2', 404],
|
|
])
|
|
def test_view_permission(arg, request, storage_obj):
|
|
c = request.getfixturevalue(arg[0])
|
|
assert c.get(reverse('edit_storage', args={storage_obj.pk})).status_code == arg[1]
|