mirror of https://github.com/home-assistant/core
Revised package util tests
The package util tests were revised to pull the external library pyhelloworld3 from an internal source rather than external. This speeds up tests, makes tests more reliable, and removes dependency on internet connection.
This commit is contained in:
parent
de61bcb80e
commit
4a8f55e630
Binary file not shown.
|
@ -1,16 +1,20 @@
|
|||
"""
|
||||
Tests Home Assistant package util methods.
|
||||
"""
|
||||
import unittest
|
||||
import sys
|
||||
import os
|
||||
import tempfile
|
||||
import unittest
|
||||
|
||||
import homeassistant.bootstrap as bootstrap
|
||||
import homeassistant.util.package as package
|
||||
|
||||
RESOURCE_DIR = os.path.abspath(
|
||||
os.path.join(os.path.dirname(__file__), '..', 'resources'))
|
||||
|
||||
TEST_EXIST_REQ = "pip>=7.0.0"
|
||||
TEST_NEW_REQ = "pyhelloworld3==1.0.0"
|
||||
TEST_ZIP_REQ = \
|
||||
"https://github.com/rmkraus/pyhelloworld3/archive/" \
|
||||
"5ba878316d68ea164e2cf5bd085d0cf1fd76bd15.zip#pyhelloworld3==1.0.0"
|
||||
TEST_ZIP_REQ = 'file://{}#{}' \
|
||||
.format(os.path.join(RESOURCE_DIR, 'pyhelloworld3.zip'), TEST_NEW_REQ)
|
||||
|
||||
|
||||
class TestPackageUtil(unittest.TestCase):
|
||||
|
@ -18,41 +22,40 @@ class TestPackageUtil(unittest.TestCase):
|
|||
|
||||
def setUp(self):
|
||||
""" Create local library for testing """
|
||||
self.lib_dir = tempfile.TemporaryDirectory()
|
||||
self.tmp_dir = tempfile.TemporaryDirectory()
|
||||
self.lib_dir = os.path.join(self.tmp_dir.name, 'lib')
|
||||
|
||||
def tearDown(self):
|
||||
""" Remove local library """
|
||||
del self.lib_dir
|
||||
del self.tmp_dir
|
||||
|
||||
def test_install_existing_package(self):
|
||||
""" Test an install attempt on an existing package """
|
||||
self.assertTrue(package.check_package_exists(
|
||||
TEST_EXIST_REQ, self.lib_dir.name))
|
||||
TEST_EXIST_REQ, self.lib_dir))
|
||||
|
||||
self.assertTrue(package.install_package(TEST_EXIST_REQ))
|
||||
|
||||
def test_install_package_locally(self):
|
||||
""" Test an install attempt to the local library """
|
||||
self.assertFalse(package.check_package_exists(
|
||||
TEST_NEW_REQ, self.lib_dir.name))
|
||||
|
||||
self.assertTrue(package.install_package(
|
||||
TEST_NEW_REQ, True, self.lib_dir.name))
|
||||
|
||||
sys.path.insert(0, self.lib_dir.name)
|
||||
import pyhelloworld3
|
||||
|
||||
self.assertEqual(pyhelloworld3.__version__, '1.0.0')
|
||||
|
||||
def test_install_package_zip(self):
|
||||
""" Test an install attempt from a zip path """
|
||||
self.assertFalse(package.check_package_exists(
|
||||
TEST_ZIP_REQ, self.lib_dir.name))
|
||||
TEST_ZIP_REQ, self.lib_dir))
|
||||
self.assertFalse(package.check_package_exists(
|
||||
TEST_NEW_REQ, self.lib_dir))
|
||||
|
||||
self.assertTrue(package.install_package(
|
||||
TEST_ZIP_REQ, True, self.lib_dir.name))
|
||||
TEST_ZIP_REQ, True, self.lib_dir))
|
||||
|
||||
sys.path.insert(0, self.lib_dir.name)
|
||||
import pyhelloworld3
|
||||
self.assertTrue(package.check_package_exists(
|
||||
TEST_ZIP_REQ, self.lib_dir))
|
||||
self.assertTrue(package.check_package_exists(
|
||||
TEST_NEW_REQ, self.lib_dir))
|
||||
|
||||
bootstrap.mount_local_lib_path(self.tmp_dir.name)
|
||||
|
||||
try:
|
||||
import pyhelloworld3
|
||||
except ImportError:
|
||||
self.fail('Unable to import pyhelloworld3 after installing it.')
|
||||
|
||||
self.assertEqual(pyhelloworld3.__version__, '1.0.0')
|
||||
|
|
Loading…
Reference in New Issue