update tests and fix small bug in connector_manager
This commit is contained in:
parent
1a37961ceb
commit
50eb232fff
@ -13,12 +13,13 @@ from django_scopes import scope
|
||||
|
||||
from cookbook.connectors.connector import Connector
|
||||
from cookbook.connectors.homeassistant import HomeAssistant
|
||||
from cookbook.models import ShoppingListEntry, Recipe, MealPlan, Space
|
||||
from cookbook.models import ShoppingListEntry, Recipe, MealPlan, Space, HomeAssistantConfig, ConnectorConfig
|
||||
|
||||
multiprocessing.set_start_method('fork') # https://code.djangoproject.com/ticket/31169
|
||||
|
||||
QUEUE_MAX_SIZE = 25
|
||||
REGISTERED_CLASSES: UnionType = ShoppingListEntry | Recipe | MealPlan | Connector
|
||||
REGISTERED_CLASSES: UnionType = ShoppingListEntry | Recipe | MealPlan
|
||||
CONNECTOR_UPDATE_CLASSES: UnionType = HomeAssistantConfig | ConnectorConfig
|
||||
|
||||
|
||||
class ActionType(Enum):
|
||||
@ -35,7 +36,7 @@ class Work:
|
||||
|
||||
class ConnectorManager:
|
||||
_queue: Queue
|
||||
_listening_to_classes = REGISTERED_CLASSES
|
||||
_listening_to_classes = REGISTERED_CLASSES | CONNECTOR_UPDATE_CLASSES
|
||||
|
||||
def __init__(self):
|
||||
self._queue = multiprocessing.Queue(maxsize=QUEUE_MAX_SIZE)
|
||||
@ -81,10 +82,10 @@ class ConnectorManager:
|
||||
break
|
||||
|
||||
# If a Connector was changed/updated, refresh connector from the database for said space
|
||||
refresh_connector_cache = isinstance(item.instance, Connector)
|
||||
refresh_connector_cache = isinstance(item.instance, CONNECTOR_UPDATE_CLASSES)
|
||||
|
||||
space: Space = item.instance.space
|
||||
connectors: Optional[List[Connector]] = _connectors.get(space.name, None)
|
||||
connectors: Optional[List[Connector]] = _connectors.get(space.name)
|
||||
|
||||
if connectors is None or refresh_connector_cache:
|
||||
with scope(space=space):
|
||||
|
@ -1,7 +1,8 @@
|
||||
from cookbook.models import Storage, HomeAssistantConfig
|
||||
import pytest
|
||||
from django.contrib import auth
|
||||
from django.urls import reverse
|
||||
import pytest
|
||||
|
||||
from cookbook.models import HomeAssistantConfig
|
||||
|
||||
EDIT_VIEW_NAME = 'edit_home_assistant_config'
|
||||
|
||||
@ -19,25 +20,31 @@ def home_assistant_config_obj(a1_s1, space_1):
|
||||
)
|
||||
|
||||
|
||||
def test_edit_home_assistant_config(home_assistant_config_obj, a1_s1, a1_s2):
|
||||
def test_edit_home_assistant_config(home_assistant_config_obj: HomeAssistantConfig, 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',
|
||||
'name': home_assistant_config_obj.name,
|
||||
'url': home_assistant_config_obj.url,
|
||||
'todo_entity': home_assistant_config_obj.todo_entity,
|
||||
'token': new_token,
|
||||
'enabled': home_assistant_config_obj.enabled,
|
||||
}
|
||||
)
|
||||
home_assistant_config_obj.refresh_from_db()
|
||||
assert r.status_code == 200
|
||||
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': 'HomeAssistant 1',
|
||||
'name': home_assistant_config_obj.name,
|
||||
'url': home_assistant_config_obj.url,
|
||||
'todo_entity': home_assistant_config_obj.todo_entity,
|
||||
'token': new_token,
|
||||
'enabled': home_assistant_config_obj.enabled,
|
||||
}
|
||||
)
|
||||
assert r.status_code == 404
|
||||
|
Loading…
Reference in New Issue
Block a user