Issue Tracking
The HILSTER Testing Framework seamlessly integrates issue tracking systems.
JIRA (Atlassian)
The integration of JIRA issues can easily be realized using the jira
fixture.
In JIRA the option 'Allow Remote API Calls'
must be enabled.
The jira
fixture searches JIRA using the rest api to find issues for the current test.
Found issues are appended to the test and put into the test report.
This way you do not need to put your issues into the source code of your tests.
By default issues must include testcase.test
in the summary or the description, eg. MyTestCase.test_foo
.
This behaviour can be changed by changing the query_template
accordingly.
To use the jira
fixture you need to create your own fixture depending on it to provide
the necessary JIRA URL and authentication credentials. The fixture should have the scope “session” and have the auto
parameter set to True
.
By default the jira
fixture creates links that include the type, id and status of the
referenced issue, e.g. Bug TRANS-1266 (Resolved): Dutch language does not reflect on keyboard shortcut dialog box
.
The default template for link_template
is "{fields/issuetype/name} {key} ({fields/status/name}): {fields/summary}"
.
The '/'
in the template describe the hierarchy in the api result.
The api result is flattened and is used to format the template using the string.format
method.
To be able to see all possible keys you should enable debugging to have a look at the flattend dictionary.
For oauth
and kerberos
authentication have a look at the
python-jira documentation.
Example:
import htf
@htf.fixture('session', auto=True)
def setup_jira(jira):
jira.setup_jira_connector(
url="https://jira.atlassian.com",
project="11460"
)
def test_foo():
pass
To enable debugging use the following code snippet.
import logging
logging.basicConfig()
logger = logging.getLogger("htf.jira")
logger.setLevel(level=logging.INFO) # to enable info
logger.setLevel(level=logging.DEBUG) # to enable info and debug
- class htf.fixtures.jira(environment: TestEnvironment)
- setup_jira_connector(url: str, project: str, username: str | None = None, password: str | None = None, auth: str | None = None, oauth_dict: Dict[Any, Any] | None = None, kerberos_options: Dict[Any, Any] | None = None, query_template: str | None = None, title_template: str | None = None) None
Set up the
jira
fixture so that it will search your JIRA installation for issues for the current test.- Parameters:
url – the url to your JIRA installation
project – the JIRA project
username=None – the username to be used for authentication
password=None – the password to be used for authentication
auth=None –
possible values are:
None
: no authentication is usedauth
: cookie based authenticationbasic_auth
: HTTP basic authenticationoauth
: OAuth authentication is used (you have to supplyoauth_dict
, too)kerberos
: Kerberos authentication (you have to supplykerberos_options
, too)
oauth_dict=None – options for
oauth
authenticationkerberos_options=None – options for
kerberos
authenticationquery_template="default" –
the template for the JIRA query string. supported replacements are -
{testcase}
: is replaced with the TestCase’s class name -{test}
: is replaced with the current test name -{project}
: is replaced with the supplied projectdefault: “project={project} and (summary~”{testcase}.{test}” or description~”{testcase}.{test}”)”
title_template="default" – The template for the resulting title of the link in the test report. The issue is flattened using
'/'
as the separator. So the template may include keys like{fields/status/name}
to show the name of the current ticket status, etc.