59 lines
1.5 KiB
Python
59 lines
1.5 KiB
Python
from cookbook.models import Storage, HomeAssistantConfig
|
|
from django.contrib import auth
|
|
from django.urls import reverse
|
|
import pytest
|
|
|
|
EDIT_VIEW_NAME = 'edit_home_assistant_config'
|
|
|
|
|
|
@pytest.fixture
|
|
def home_assistant_config_obj(a1_s1, space_1):
|
|
return HomeAssistantConfig.objects.create(
|
|
name='HomeAssistant 1',
|
|
token='token',
|
|
url='url',
|
|
todo_entity='todo.shopping_list',
|
|
enabled=True,
|
|
created_by=auth.get_user(a1_s1),
|
|
space=space_1,
|
|
)
|
|
|
|
|
|
def test_edit_home_assistant_config(home_assistant_config_obj, a1_s1, a1_s2):
|
|
new_token = '1234_token'
|
|
|
|
r = a1_s1.post(
|
|
reverse(EDIT_VIEW_NAME, args={home_assistant_config_obj.pk}),
|
|
{
|
|
'name': 'HomeAssistant 1',
|
|
'token': new_token,
|
|
}
|
|
)
|
|
home_assistant_config_obj.refresh_from_db()
|
|
assert r.status_code == 200
|
|
assert home_assistant_config_obj.token == new_token
|
|
|
|
r = a1_s2.post(
|
|
reverse(EDIT_VIEW_NAME, args={home_assistant_config_obj.pk}),
|
|
{
|
|
'name': 'HomeAssistant 1',
|
|
'token': new_token,
|
|
}
|
|
)
|
|
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, home_assistant_config_obj):
|
|
c = request.getfixturevalue(arg[0])
|
|
assert c.get(reverse(EDIT_VIEW_NAME, args={home_assistant_config_obj.pk})).status_code == arg[1]
|