def hide_test_sad_no_such_issue_type_for_project(): """ could not find issue type bug in project jest """ jp = JiraProxy(GOOD_VANILLA_SERVER_CONFIG) with py.test.raises(JiraProxyError) as excinfo: jp.getStandardFields(PROJECT_KEY_1, 'Bug') actualErrorMessage = excErrorMessage(excinfo) assert ': Could not find Issue Type "Bug" in Project "JEST".' in actualErrorMessage assert 'Ensure the Issue Type "Bug" is available ' in actualErrorMessage
def test_bug_field_retrieval(): """ check that the Description, Summary and Status fields can be retrieved for a Bug """ #jp = JiraProxy(GOOD_VANILLA_ONDEMAND_REGULAR_USER_CONFIG) jp = JiraProxy(GOOD_VANILLA_ONDEMAND_CONFIG) proj_key = 'JEST' # JIRPA Projet not yet defined in alligator-tiers.atlassian.net sfs = jp.getStandardFields(proj_key, 'Story') # JIRPA as Project not sfs = jp.getStandardFields(proj_key, 'Bug') assert "Description" in sfs assert jp.fieldExists(proj_key, "Bug", "Summary") assert jp.fieldExists(proj_key, "Bug", "Status")
def test_fields_with_multiple_word_display_name(): """ list all fields whose display name is a multiple word string """ jp = JiraProxy(GOOD_VANILLA_SERVER_CONFIG) sfs = jp.getStandardFields(PROJECT_KEY_1, 'Bug') cfs = jp.getCustomFields(PROJECT_KEY_1, 'Bug') standard_multi_word_fields = [fn for fn in sfs if fn.count(' ') > 0] custom_multi_word_fields = [fn for fn in cfs if fn.count(' ') > 0] assert len(standard_multi_word_fields) > 0 assert len(custom_multi_word_fields) > 0 multi_word_bug_fields = """Advent Category, Affects Version/s, Due Date, Issue Type, Rally Creation Date, RallyID, RallyItem, Story Points, Target Release, Time Tracking """.split(',') assert 'Rally Creation Date' in custom_multi_word_fields
def test_standard_bug_field_presence(): """ should correctly identify that a known standard field exists using a valid project name """ jp = JiraProxy(GOOD_VANILLA_SERVER_CONFIG) sfs = jp.getStandardFields(PROJECT_NAME_1, 'Bug') assert "Description" in sfs assert jp.fieldExists(PROJECT_NAME_1, "Bug", "Summary")
def test_using_invalid_project_raises_error(): """ on attempt to get standard field names using an invalid project will raise an error """ jp = JiraProxy(GOOD_VANILLA_SERVER_CONFIG) with py.test.raises(JiraProxyError) as excinfo: standard_field_names = jp.getStandardFields(BAD_PROJECT_KEY_1, "Bug") actualErrorMessage = excErrorMessage(excinfo) assert actualErrorMessage == f'Could not find project for identifier: {BAD_PROJECT_KEY_1}'
def test_get_standard_fields_list_for_project_name(): """ returns an array of standard field names """ jp = JiraProxy(GOOD_VANILLA_SERVER_CONFIG) standard_field_names = jp.getStandardFields(PROJECT_NAME_1, "Bug") assert "Summary" in standard_field_names assert "Priority" in standard_field_names assert "Affects Version/s" in standard_field_names
def test_get_standard_fields_list_for_project_key(): """ will return an array of standard field names for an issue type related to a project key """ jp = JiraProxy(GOOD_VANILLA_SERVER_CONFIG) standard_field_names = jp.getStandardFields(PROJECT_KEY_1, "Bug") assert "Summary" in standard_field_names assert "Description" in standard_field_names assert "Affects Version/s" in standard_field_names assert "Assignee" in standard_field_names
def test_identify_standard_known_field(): """ correctly identify that a known standard field exists """ jp = JiraProxy(GOOD_VANILLA_SERVER_CONFIG) sfs = jp.getStandardFields(PROJECT_KEY_1, 'Bug') assert "Description" in sfs assert jp.fieldExists(PROJECT_KEY_1, "Bug", "Summary") assert jp.fieldExists(PROJECT_KEY_1, "Story", "Summary") assert jp.fieldExists(PROJECT_KEY_1, "Story", "Status")
def test_sad_bad_project_specfied(): """ raise an error on attempt to identify that a known standard field exists using an invalid project identifier """ jp = JiraProxy(GOOD_VANILLA_SERVER_CONFIG) sfs = jp.getStandardFields(PROJECT_KEY_1, 'Bug') assert "Description" in sfs with py.test.raises(Exception) as excinfo: jp.fieldExists(BAD_PROJECT_KEY_1, "Bug", "Summary") actualErrorMessage = excErrorMessage(excinfo) assert 'Could not find project for identifier:' in actualErrorMessage
def test_non_writable_data_fields(): """ recognize standard non-writable date fields """ jp = JiraProxy(GOOD_VANILLA_SERVER_CONFIG) sfs = jp.getStandardFields(PROJECT_KEY_1, 'Bug') assert jp.fieldExists(PROJECT_KEY_1, 'Bug', 'created') assert jp.fieldExists(PROJECT_KEY_1, 'Bug', 'CreatedDate') assert jp.fieldExists(PROJECT_KEY_1, 'Bug', 'createddate') assert jp.fieldExists(PROJECT_KEY_1, 'Bug', 'Created Date') assert jp.fieldExists(PROJECT_KEY_1, 'Bug', 'updated') assert jp.fieldExists(PROJECT_KEY_1, 'Bug', 'UpdatedDate') assert jp.fieldExists(PROJECT_KEY_1, 'Bug', 'updateddate') assert jp.fieldExists(PROJECT_KEY_1, 'Bug', 'Updated Date')
def main(args): if len(args) != 2: sys.stderr.write( "ERROR: The Jira project key and issue type name must be provided") sys.exit(1) jira = JiraProxy(REG_USER_CONFIG) project_key, issue_type = "JIRPA", "Story" # or args[:2] print(f'\n Project: {project_key} Issue type: {issue_type}') print(" Fields\n ---------------") for field_name in reorder(jira.getStandardFields(project_key, issue_type)): print(f" {field_name}") print("") for field_name in sorted(jira.getCustomFields(project_key, issue_type)): print(f" {field_name}") print("")