1
mirror of https://github.com/home-assistant/core synced 2024-10-01 05:30:36 +02:00
ha-core/tests/test_requirements.py

64 lines
2.4 KiB
Python
Raw Normal View History

2018-01-30 12:30:47 +01:00
"""Test requirements module."""
import os
from unittest import mock
from homeassistant import loader, setup
from homeassistant.requirements import CONSTRAINT_FILE
from tests.common import get_test_home_assistant, MockModule
class TestRequirements:
"""Test the requirements module."""
hass = None
backup_cache = None
# pylint: disable=invalid-name, no-self-use
def setup_method(self, method):
2018-08-19 22:29:08 +02:00
"""Set up the test."""
2018-01-30 12:30:47 +01:00
self.hass = get_test_home_assistant()
def teardown_method(self, method):
"""Clean up."""
self.hass.stop()
@mock.patch('os.path.dirname')
@mock.patch('homeassistant.util.package.is_virtual_env',
2018-01-30 12:30:47 +01:00
return_value=True)
@mock.patch('homeassistant.util.package.install_package',
return_value=True)
def test_requirement_installed_in_venv(
self, mock_install, mock_venv, mock_dirname):
"""Test requirement installed in virtual environment."""
mock_venv.return_value = True
mock_dirname.return_value = 'ha_package_path'
self.hass.config.skip_pip = False
loader.set_component(
self.hass, 'comp',
MockModule('comp', requirements=['package==0.0.1']))
2018-01-30 12:30:47 +01:00
assert setup.setup_component(self.hass, 'comp')
assert 'comp' in self.hass.config.components
assert mock_install.call_args == mock.call(
'package==0.0.1',
constraints=os.path.join('ha_package_path', CONSTRAINT_FILE))
@mock.patch('os.path.dirname')
@mock.patch('homeassistant.util.package.is_virtual_env',
2018-01-30 12:30:47 +01:00
return_value=False)
@mock.patch('homeassistant.util.package.install_package',
return_value=True)
def test_requirement_installed_in_deps(
self, mock_install, mock_venv, mock_dirname):
"""Test requirement installed in deps directory."""
mock_dirname.return_value = 'ha_package_path'
self.hass.config.skip_pip = False
loader.set_component(
self.hass, 'comp',
MockModule('comp', requirements=['package==0.0.1']))
2018-01-30 12:30:47 +01:00
assert setup.setup_component(self.hass, 'comp')
assert 'comp' in self.hass.config.components
assert mock_install.call_args == mock.call(
'package==0.0.1', target=self.hass.config.path('deps'),
constraints=os.path.join('ha_package_path', CONSTRAINT_FILE))