예제 #1
0
def main(args):

    jira = JiraProxy(REG_USER_CONFIG)

    if not jira:
        print("Unable to obtain a JiraProxy instance for the given configuration")
        sys.exit(1)

    try:
        issues = jira.getIssuesWithJql(SIMPLE_PROJECT_QUERY)
        list_issues(issues)
    except Exception as exc:
        problem = exc.args[0]
        print(f'Error while attempting to retrieve Jira issues: {problem}')
        sys.exit(2)

    print("-" * 80)
    
    try:
        issues = jira.getIssuesWithJql(PROJECT_AND_TYPE_QUERY)
        list_issues(issues)
    except Exception as exc:
        problem = exc.args[0]
        print(f'Error while attempting to retrieve Jira issues: {problem}')
        sys.exit(3)
예제 #2
0
def test_query_specifying_for_field_not_having_null_value():
    """
        will return issues using jql when a field is specified as not having a null value
    """
    jp = JiraProxy(GOOD_VANILLA_SERVER_DEV_USER_CONFIG)
    jql = f'{proj1} AND Component/s != "blue + gold" AND status != Reopened'
    jira_issues = jp.getIssuesWithJql(jql)
    assert len(jira_issues) > 0
예제 #3
0
def test_query_using_components_with_percent_symbol_in_value():
    """
        will return issues using jql that for Component/s that use % in their name
    """
    jp = JiraProxy(GOOD_VANILLA_SERVER_CONFIG)
    jql = f'{proj1} AND Component/s = "machine % calc" '
    jira_issues = jp.getIssuesWithJql(jql)
    assert len(jira_issues) > 0
    assert "machine % calc" in jira_issues[0]["Component/s"]
예제 #4
0
def test_query_using_display_name_for_components():
    """
        will return issues using jql that uses the display name for Component/s
    """
    jp = JiraProxy(GOOD_VANILLA_SERVER_CONFIG)
    jql = f'{proj1} AND issuetype = Story AND Component/s = "Front End" '
    jira_issues = jp.getIssuesWithJql(jql)
    assert len(jira_issues) > 0
    assert "Front End" in jira_issues[0]["Component/s"]
예제 #5
0
def test_query_using_display_name_for_fix_versions():
    """
        will return issues using jql that uses the display name for Fix Version/s
    """
    jp = JiraProxy(GOOD_VANILLA_SERVER_CONFIG)
    jql = f'{proj1} AND issuetype = Story AND Fix Version/s = peach'
    jira_issues = jp.getIssuesWithJql(jql)
    assert len(jira_issues) > 0
    assert "peach" in set(jira_issues[0]["Fix Version/s"])
예제 #6
0
def test_simple_query_with_multiple_items():
    """
        will return an Array of JiraIssue objects from a getIssuesWithJql call
    """
    jp = JiraProxy(GOOD_VANILLA_SERVER_CONFIG)
    jql = f'{proj1} AND issuetype = Story'
    jira_issues = jp.getIssuesWithJql(jql)
    assert len(jira_issues) >= 5
    assert jira_issues[0].__class__ == JiraIssue
예제 #7
0
def test_query_specifying_for_field_whose_value_is_null():
    """
        query using jql for issues having no value in a specific field
    """
    jp = JiraProxy(GOOD_VANILLA_SERVER_DEV_USER_CONFIG)
    #jql  = f'{proj1} AND status != Closed AND assignee is null'
    jql = f'{proj1} AND status != Done AND Resolution is null'
    jira_issues = jp.getIssuesWithJql(jql)
    assert len(jira_issues) > 0
예제 #8
0
def test_query_using_components_with_plus_symbol_in_value():
    """
    it 'will return issues using jql that for Component/s that use + in their name' do
    """
    jp = JiraProxy(GOOD_VANILLA_SERVER_CONFIG)
    jql = f'{proj1} AND Component/s = "blue + gold" '
    jira_issues = jp.getIssuesWithJql(jql)
    assert len(jira_issues) > 0
    assert "blue + gold" in jira_issues[0]["Component/s"]
예제 #9
0
def disable_test_query_using_components_with_hash_symbol_in_value():
    """
    it 'will return issues using jql that for Component/s that use # in their name' do

        NB:  '#' is a reserved character in Jira JQL.  You cannot effectively escape it
             in Jira in Jira 8.
    """
    jp = JiraProxy(GOOD_VANILLA_SERVER_CONFIG)
    #jql = f'{proj1} AND Component/s = "hash \\#1"'
    jql = f'{proj1} AND Component/s ~ "hash"'
    jira_issues = jp.getIssuesWithJql(jql)
    assert len(jira_issues) > 0
    assert "hash #1" in jira_issues[0]["Component/s"]
예제 #10
0
def test_query_using_components_with_question_mark_in_value():
    """
        will return issues using jql that for Component/s that use ? in their name
    """
    jp = JiraProxy(GOOD_VANILLA_SERVER_CONFIG)
    doof_data = {
        'Summary': 'Steepify glide path to oil dump',
        'components': 'Tallest?'
    }
    issue_key = jp.createIssue(PROJECT_KEY_1, 'Bug', doof_data)
    jql = f'{proj1} AND Component/s = "Tallest?" '
    jira_issues = jp.getIssuesWithJql(jql)
    assert len(jira_issues) > 0
    assert "Tallest?" in jira_issues[0]["Component/s"]
    jp.deleteIssue(issue_key)
예제 #11
0
def test_query_using_components_with_ampersand_in_value():
    """
        will return issues using jql that for Component/s that use & in their name
    """
    jp = JiraProxy(GOOD_VANILLA_SERVER_CONFIG)
    doof_data = {
        'Summary': 'Morti and Rekso went bogging',
        'components': 'Sun & Moon'
    }
    issue_key = jp.createIssue(PROJECT_KEY_1, 'Bug', doof_data)
    jql = f'{proj1} AND Component/s = "Sun & Moon" '
    jira_issues = jp.getIssuesWithJql(jql)
    assert len(jira_issues) > 0
    assert "Sun & Moon" in jira_issues[0]["Component/s"]
    jp.deleteIssue(issue_key)
예제 #12
0
def test_query_using_display_name_for_due_date():
    """
        will return issues using jql that uses the display name for Due Date
    """
    jp = JiraProxy(GOOD_VANILLA_SERVER_CONFIG)
    doof_data = {
        'Summary': 'Surreptitious Invoicing Scam',
        'Due Date': '2021-12-01 09:37'
    }
    issue_key = jp.createIssue(PROJECT_KEY_1, 'Story', doof_data)
    jql = f'{proj1} AND issuetype = Story AND Due Date < now()'
    jira_issues = jp.getIssuesWithJql(jql)
    assert len(jira_issues) > 0

    jp.deleteIssue(issue_key)