Add tests for the plugin mechanism

This commit is contained in:
yuvipanda
2018-08-12 09:47:32 -07:00
parent 841c25e1bd
commit 8b2980a20a
4 changed files with 96 additions and 1 deletions

View File

@@ -68,10 +68,16 @@ jobs:
.circleci/integration-test.py build-image .circleci/integration-test.py build-image
- run: - run:
name: Run basic tests tests name: Run basic tests
command: | command: |
.circleci/integration-test.py run-test basic-tests test_hub.py test_install.py test_extensions.py .circleci/integration-test.py run-test basic-tests test_hub.py test_install.py test_extensions.py
- run:
name: Run plugin tests
command: |
.circleci/integration-test.py run-test \
--installer-args "--plugin /srv/src/integration-tests/plugins/simplest" \
plugins test_simplest_plugin.py
documentation: documentation:

View File

@@ -0,0 +1,9 @@
from setuptools import setup
setup(
name="tljh-simplest",
entry_points={"tljh": ["simplest = tljh_simplest"]},
py_modules=["tljh_simplest"],
)

View File

@@ -0,0 +1,33 @@
"""
Simplest plugin that excercises all the hooks
"""
from tljh.hooks import hookimpl
@hookimpl
def tljh_extra_user_conda_packages():
return [
'hypothesis',
]
@hookimpl
def tljh_extra_user_pip_packages():
return [
'django',
]
@hookimpl
def tljh_extra_apt_packages():
return [
'sl',
]
@hookimpl
def tljh_config_post_install(config):
# Put an arbitrary marker we can test for
config['simplest_plugin'] = {
'present': True
}

View File

@@ -0,0 +1,47 @@
"""
Test simplest plugin
"""
from ruamel.yaml import YAML
import os
import subprocess
yaml = YAML(typ='rt')
def test_apt_packages():
"""
Test extra apt packages are installed
"""
assert os.path.exists('/usr/bin/sl')
def test_pip_packages():
"""
Test extra user pip packages are installed
"""
subprocess.check_call([
'/opt/tljh/user/bin/python3',
'-c',
'import django'
])
def test_conda_packages():
"""
Test extra user conda packages are installed
"""
subprocess.check_call([
'/opt/tljh/user/bin/python3',
'-c',
'import hypothesis'
])
def test_config_hook():
"""
Check config changes are present
"""
with open('/opt/tljh/config.yaml') as f:
data = yaml.load(f)
assert data['simplest_plugin']['present']