Migrate core from threads to async awesomeness (#3248)
* Add event loop to the core * Add block_till_done to HA core object * Fix some tests * Linting core * Fix statemachine tests * Core test fixes * fix block_till_done to wait for loop and queue to empty * fix test_core for passing, and correct start/stop/block_till_done * Fix remote tests * Fix tests: block_till_done * Fix linting * Fix more tests * Fix final linting * Fix remote test * remove unnecessary import * reduce sleep to avoid slowing down the tests excessively * fix remaining tests to wait for non-threadsafe operations * Add async_ doc strings for event loop / coroutine info * Fix command line test to block for the right timeout * Fix py3.4.2 loop var access * Fix SERVICE_CALL_LIMIT being in effect for other tests * Fix lint errors * Fix lint error with proper placement * Fix slave start to not start a timer * Add asyncio compatible listeners. * Increase min Python version to 3.4.2 * Move async backports to util * Add backported async tests * Fix linting * Simplify Python version check * Fix lint * Remove unneeded try/except and queue listener appproriately. * Fix tuple vs. list unorderable error on version compare. * Fix version tests
This commit is contained in:
parent
24f1bff7f1
commit
609d7ebea5
98 changed files with 1680 additions and 1109 deletions
|
@ -1,7 +1,9 @@
|
|||
"""Test check_config script."""
|
||||
import unittest
|
||||
import asyncio
|
||||
import logging
|
||||
import os
|
||||
import unittest
|
||||
from unittest.mock import patch
|
||||
|
||||
import homeassistant.scripts.check_config as check_config
|
||||
from tests.common import patch_yaml_files, get_test_config_dir
|
||||
|
@ -43,11 +45,12 @@ def tearDownModule(self): # pylint: disable=invalid-name
|
|||
os.remove(path)
|
||||
|
||||
|
||||
@patch('asyncio.get_event_loop', return_value=asyncio.new_event_loop())
|
||||
class TestCheckConfig(unittest.TestCase):
|
||||
"""Tests for the homeassistant.scripts.check_config module."""
|
||||
|
||||
# pylint: disable=no-self-use,invalid-name
|
||||
def test_config_platform_valid(self):
|
||||
def test_config_platform_valid(self, mock_get_loop):
|
||||
"""Test a valid platform setup."""
|
||||
files = {
|
||||
'light.yaml': BASE_CONFIG + 'light:\n platform: hue',
|
||||
|
@ -63,7 +66,7 @@ class TestCheckConfig(unittest.TestCase):
|
|||
'yaml_files': ['.../light.yaml']
|
||||
}, res)
|
||||
|
||||
def test_config_component_platform_fail_validation(self):
|
||||
def test_config_component_platform_fail_validation(self, mock_get_loop):
|
||||
"""Test errors if component & platform not found."""
|
||||
files = {
|
||||
'component.yaml': BASE_CONFIG + 'http:\n password: err123',
|
||||
|
@ -95,7 +98,7 @@ class TestCheckConfig(unittest.TestCase):
|
|||
'yaml_files': ['.../platform.yaml']
|
||||
}, res)
|
||||
|
||||
def test_component_platform_not_found(self):
|
||||
def test_component_platform_not_found(self, mock_get_loop):
|
||||
"""Test errors if component or platform not found."""
|
||||
files = {
|
||||
'badcomponent.yaml': BASE_CONFIG + 'beer:',
|
||||
|
@ -124,7 +127,7 @@ class TestCheckConfig(unittest.TestCase):
|
|||
'yaml_files': ['.../badplatform.yaml']
|
||||
}, res)
|
||||
|
||||
def test_secrets(self):
|
||||
def test_secrets(self, mock_get_loop):
|
||||
"""Test secrets config checking method."""
|
||||
files = {
|
||||
get_test_config_dir('secret.yaml'): (
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue