69 lines
2.0 KiB
Python
69 lines
2.0 KiB
Python
from cookbook.models import Storage
|
|
from cookbook.tests.views.test_views import TestViews
|
|
from django.contrib import auth
|
|
from django.urls import reverse
|
|
|
|
|
|
class TestEditsRecipe(TestViews):
|
|
|
|
def setUp(self):
|
|
super(TestEditsRecipe, self).setUp()
|
|
|
|
self.storage = Storage.objects.create(
|
|
name='TestStorage',
|
|
method=Storage.DROPBOX,
|
|
created_by=auth.get_user(self.admin_client_1),
|
|
token='test',
|
|
username='test',
|
|
password='test',
|
|
)
|
|
self.url = reverse('edit_storage', args=[self.storage.pk])
|
|
|
|
def test_edit_storage(self):
|
|
r = self.admin_client_1.post(
|
|
self.url,
|
|
{
|
|
'name': 'NewStorage',
|
|
'password': '1234_pw',
|
|
'token': '1234_token',
|
|
'method': Storage.DROPBOX
|
|
}
|
|
)
|
|
self.storage.refresh_from_db()
|
|
self.assertEqual(self.storage.password, '1234_pw')
|
|
self.assertEqual(self.storage.token, '1234_token')
|
|
|
|
r = self.admin_client_1.post(
|
|
self.url,
|
|
{
|
|
'name': 'NewStorage',
|
|
'password': '1234_pw',
|
|
'token': '1234_token',
|
|
'method': 'not_a_valid_method'
|
|
}
|
|
)
|
|
self.assertFormError(
|
|
r,
|
|
'form',
|
|
'method',
|
|
[
|
|
'Select a valid choice. not_a_valid_method is not one of the available choices.' # noqa: E501
|
|
]
|
|
)
|
|
|
|
def test_edit_storage_permissions(self):
|
|
r = self.anonymous_client.get(self.url)
|
|
self.assertEqual(r.status_code, 302)
|
|
|
|
r = self.guest_client_1.get(self.url)
|
|
self.assertEqual(r.status_code, 302)
|
|
|
|
r = self.user_client_1.get(self.url)
|
|
self.assertEqual(r.status_code, 302)
|
|
|
|
r = self.admin_client_1.get(self.url)
|
|
self.assertEqual(r.status_code, 200)
|
|
|
|
r = self.superuser_client.get(self.url)
|
|
self.assertEqual(r.status_code, 200)
|