Skip to content

Commit

Permalink
test: matrix-combinations plugin integration test (#38)
Browse files Browse the repository at this point in the history
* test: matrix-combinations plugin integration test

* fix: linting

* fix: autoscape xss
  • Loading branch information
yanksyoon committed Sep 26, 2023
1 parent 33b1b68 commit c30f16d
Show file tree
Hide file tree
Showing 4 changed files with 127 additions and 0 deletions.
85 changes: 85 additions & 0 deletions tests/integration/files/matrix_combinations_plugin_job_xml.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
<matrix-project plugin="matrix-project@{{ matrix_project_plugin_version }}">
<description />
<keepDependencies>false</keepDependencies>
<properties>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.plugins.matrix__configuration__parameter.MatrixCombinationsParameterDefinition
plugin="matrix-combinations-parameter@{{ matrix_combinations_plugin_version }}">
<name>test1</name>
<shortcutList>
<hudson.plugins.matrix__configuration__parameter.shortcut.ResultShortcut>
<name>Successful</name>
<exact>false</exact>
<resultsToCheck>
<string>SUCCESS</string>
</resultsToCheck>
</hudson.plugins.matrix__configuration__parameter.shortcut.ResultShortcut>
<hudson.plugins.matrix__configuration__parameter.shortcut.ResultShortcut>
<name>Failed</name>
<exact>false</exact>
<resultsToCheck>
<string>FAILURE</string>
</resultsToCheck>
</hudson.plugins.matrix__configuration__parameter.shortcut.ResultShortcut>
<hudson.plugins.matrix__configuration__parameter.shortcut.MatrixCombinationsShortcut_-All />
<hudson.plugins.matrix__configuration__parameter.shortcut.MatrixCombinationsShortcut_-None />
</shortcutList>
</hudson.plugins.matrix__configuration__parameter.MatrixCombinationsParameterDefinition>
<hudson.plugins.matrix__configuration__parameter.MatrixCombinationsParameterDefinition
plugin="matrix-combinations-parameter@{{ matrix_combinations_plugin_version }}">
<name>test2</name>
<shortcutList>
<hudson.plugins.matrix__configuration__parameter.shortcut.ResultShortcut>
<name>Successful</name>
<exact>false</exact>
<resultsToCheck>
<string>SUCCESS</string>
</resultsToCheck>
</hudson.plugins.matrix__configuration__parameter.shortcut.ResultShortcut>
<hudson.plugins.matrix__configuration__parameter.shortcut.ResultShortcut>
<name>Failed</name>
<exact>false</exact>
<resultsToCheck>
<string>FAILURE</string>
</resultsToCheck>
</hudson.plugins.matrix__configuration__parameter.shortcut.ResultShortcut>
<hudson.plugins.matrix__configuration__parameter.shortcut.MatrixCombinationsShortcut_-All />
<hudson.plugins.matrix__configuration__parameter.shortcut.MatrixCombinationsShortcut_-None />
</shortcutList>
</hudson.plugins.matrix__configuration__parameter.MatrixCombinationsParameterDefinition>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
</properties>
<scm class="hudson.scm.NullSCM" />
<canRoam>true</canRoam>
<disabled>false</disabled>
<blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding>
<blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding>
<triggers />
<concurrentBuild>false</concurrentBuild>
<axes>
<hudson.matrix.TextAxis>
<name>test axis 1</name>
<values>
<string>A</string>
<string>B</string>
<string>C</string>
</values>
</hudson.matrix.TextAxis>
<hudson.matrix.TextAxis>
<name>test axis 2</name>
<values>
<string>D</string>
<string>E</string>
<string>F</string>
</values>
</hudson.matrix.TextAxis>
</axes>
<builders />
<publishers />
<buildWrappers />
<executionStrategy class="hudson.matrix.DefaultMatrixExecutionStrategyImpl">
<runSequentially>false</runSequentially>
</executionStrategy>
</matrix-project>
1 change: 1 addition & 0 deletions tests/integration/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Jinja2>=3,<4
40 changes: 40 additions & 0 deletions tests/integration/test_plugins.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@

import typing

import jenkinsapi.plugin
import pytest
from jinja2 import Environment, FileSystemLoader
from pytest_operator.plugin import OpsTest

from .constants import ALLOWED_PLUGINS, INSTALLED_PLUGINS, REMOVED_PLUGINS
Expand Down Expand Up @@ -142,3 +144,41 @@ async def test_ldap_plugin(
assert "User lookup: successful" in str(
res.content, encoding="utf-8"
), f"User lookup unsuccessful, {res.content}"


@pytest.mark.usefixtures("app_with_allowed_plugins")
async def test_matrix_combinations_parameter_plugin(
ops_test: OpsTest, unit_web_client: UnitWebClient
):
"""
arrange: given a jenkins server with matrix-combinations-parameter plugin installed.
act: when a multi-configuration job is created.
assert: a matrix based test is created.
"""
await install_plugins(
ops_test, unit_web_client.unit, unit_web_client.client, ("matrix-combinations-parameter",)
)
matrix_project_plugin: jenkinsapi.plugin.Plugin = unit_web_client.client.plugins[
"matrix-project"
]
matrix_combinations_plugin: jenkinsapi.plugin.Plugin = unit_web_client.client.plugins[
"matrix-combinations-parameter"
]
environment = Environment(loader=FileSystemLoader("tests/integration/files/"), autoescape=True)
template = environment.get_template("matrix_combinations_plugin_job_xml.j2")
job_xml = template.render(
matrix_project_plugin_version=matrix_project_plugin.version,
matrix_combinations_plugin_version=matrix_combinations_plugin.version,
)
test_name = "matrix-combinations-parameter-test"
unit_web_client.client.create_job(test_name, job_xml)

test_page = str(
unit_web_client.client.requester.get_url(
f"{unit_web_client.client.baseurl}/job/{test_name}/"
).content,
encoding="utf-8",
)
assert (
"Configuration Matrix" in test_page
), f"Configuration matrix table not found, {test_page}"
1 change: 1 addition & 0 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ deps =
pytest-operator
pytest-asyncio
-r{toxinidir}/requirements.txt
-r{[vars]tst_path}integration/requirements.txt
commands =
pytest --tb native --ignore={[vars]tst_path}unit --log-cli-level=INFO -s {posargs}

Expand Down

0 comments on commit c30f16d

Please sign in to comment.