mirror of
https://github.com/TandoorRecipes/recipes.git
synced 2026-01-06 22:58:19 -05:00
convert example & homeassistant specific configs to a generic with all optional fields
This commit is contained in:
75
cookbook/tests/edits/test_edits_connector_config.py
Normal file
75
cookbook/tests/edits/test_edits_connector_config.py
Normal file
@@ -0,0 +1,75 @@
|
||||
import pytest
|
||||
from django.contrib import auth
|
||||
from django.contrib import messages
|
||||
from django.contrib.messages import get_messages
|
||||
from django.urls import reverse
|
||||
from pytest_django.asserts import assertTemplateUsed
|
||||
|
||||
from cookbook.models import ConnectorConfig
|
||||
|
||||
EDIT_VIEW_NAME = 'edit_connector_config'
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def home_assistant_config_obj(a1_s1, space_1):
|
||||
return ConnectorConfig.objects.create(
|
||||
name='HomeAssistant 1',
|
||||
type=ConnectorConfig.HOMEASSISTANT,
|
||||
token='token',
|
||||
url='http://localhost:8123/api',
|
||||
todo_entity='todo.shopping_list',
|
||||
enabled=True,
|
||||
created_by=auth.get_user(a1_s1),
|
||||
space=space_1,
|
||||
)
|
||||
|
||||
|
||||
def test_edit_connector_config_homeassistant(home_assistant_config_obj: ConnectorConfig, a1_s1, a1_s2):
|
||||
new_token = '1234_token'
|
||||
|
||||
r = a1_s1.post(
|
||||
reverse(EDIT_VIEW_NAME, args={home_assistant_config_obj.pk}),
|
||||
{
|
||||
'name': home_assistant_config_obj.name,
|
||||
'type': home_assistant_config_obj.type,
|
||||
'url': home_assistant_config_obj.url,
|
||||
'update_token': new_token,
|
||||
'todo_entity': home_assistant_config_obj.todo_entity,
|
||||
'enabled': home_assistant_config_obj.enabled,
|
||||
}
|
||||
)
|
||||
assert r.status_code == 302
|
||||
|
||||
r_messages = [m for m in get_messages(r.wsgi_request)]
|
||||
assert not any(m.level > messages.SUCCESS for m in r_messages)
|
||||
|
||||
home_assistant_config_obj.refresh_from_db()
|
||||
assert home_assistant_config_obj.token == new_token
|
||||
|
||||
r = a1_s2.post(
|
||||
reverse(EDIT_VIEW_NAME, args={home_assistant_config_obj.pk}),
|
||||
{
|
||||
'name': home_assistant_config_obj.name,
|
||||
'type': home_assistant_config_obj.type,
|
||||
'url': home_assistant_config_obj.url,
|
||||
'todo_entity': home_assistant_config_obj.todo_entity,
|
||||
'update_token': new_token,
|
||||
'enabled': home_assistant_config_obj.enabled,
|
||||
}
|
||||
)
|
||||
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]
|
||||
Reference in New Issue
Block a user