def get_projects_with_permisions(nr_projects, session):
    #Before running, there has to performance users in the DB.
    projects = get_projects(nr_projects, session)
    #   print("AllProjects: " + str(projects))
    projects_with_perm = []
    for project in projects:
        projectKey = project['key']
        diagrams_response = session.get(
            "/rest/api/2/user/permission/search?permissions=ASSIGN_ISSUE&projectKey="
            + projectKey + "&username=per",
            auth=('admin', 'admin'))
        #        print(str(diagrams_response.json()))
        #for local test with user ADMIN
        if ((len(diagrams_response.json())) == 0):
            diagrams_response = session.get(
                "/rest/api/2/user/permission/search?permissions=ASSIGN_ISSUE&projectKey="
                + projectKey + "&username=admin",
                auth=('admin', 'admin'))
        if (len(diagrams_response.json())) > 0:
            projectId = project['id']
            projects_with_perm.append(project)
        if (len(projects_with_perm) >= nr_projects):
            break
    print("PROJECTS WITH PERM:" + str(len(projects_with_perm)))
    return projects_with_perm
    def test_create_issue_links(self, base_url, nr_projects, session):
        # get all projects
        projStartAt = 0

        respProj = session.get('/rest/api/latest/project',
                               auth=('admin', 'admin'))
        print("GGGG")
        projects = get_projects_with_permisions(nr_projects, session)
        print(projects)
        print("GGGG")

        create_filter_if_missing(projects, session)

        issueLinkTypeId = get_link_type(session)
        assert respProj.status_code == 200
        projects = respProj.json()
        print("NR of projects: " + str(nr_projects))
        if len(projects) > nr_projects:
            projects = x = islice(projects, 0, nr_projects)
        for project in projects:
            project_key = project['key']
            # collect keys of all issues in this project into issue_ids
            link_percentage = 30
            issue_ids = []
            startAt = 0
            while True:
                resp = session.get(
                    f'/rest/api/latest/search?maxResults=100&startAt={startAt}&jql=project={project_key}&fields=key',
                    auth=('admin', 'admin'))
                assert resp.status_code == 200
                result = resp.json()
                #         print(f"if {startAt} >= {result['total']}")
                if startAt >= result['total'] or not ('issues' in result):
                    break
                issue_ids.extend(
                    list(map(lambda issue: issue['id'], result['issues'])))
                startAt = len(issue_ids)
            if len(issue_ids) == 0:
                break
            # generate link_percentage random issue pairs out of issue_ids
            # all pairs are in increasing order, to avoid link cycles
            pair_count = min(
                len(issue_ids) * link_percentage / 100, binom(
                    len(issue_ids),
                    2))  # limit wanted number of links by theoretical maximum
            pairs = set(
            )  # set of tuples, as tuples can be added to a set, but not lists
            while len(pairs) < pair_count:
                pair = tuple(sorted(random.sample(issue_ids, 2)))
                if pair not in pairs:
                    pairs.add(pair)
            for pair in pairs:
                print(pair)
                self.create_link(session, issueLinkTypeId, pair[0], pair[1])
        print("end")
예제 #3
0
    def test_change_color_mapping(self, session):
        HOSTNAME = os.environ.get('application_hostname')
        # Get user
        diagrams_response = session.get('http://'  + HOSTNAME + ':8080/rest/dependency-map/1.0/user')
        assert diagrams_response.status_code == 200
        userKey = diagrams_response.json()["key"]
        print("User key: " + userKey)

        # Create diagram
        payload ={ 'name':"D100", 'author':userKey,
           'lastEditedBy':userKey, 'layoutId':0, 'filterKey': 10000,
            'boxColorFieldKey': "priority", 'groupedLayoutFieldKey': "priority", 
            'matrixLayoutHorizontalFieldKey': 'fixVersions', 'matrixLayoutVerticalFieldKey': 'fixVersions'}

        diagrams_response = session.post('http://' + HOSTNAME + ':8080/rest/dependency-map/1.0/diagram',
            json=payload)
        assert diagrams_response.status_code == 200    
        newDiagram = diagrams_response.json()
        diagramId = str(newDiagram["id"])
        print('diagramid=' +diagramId)
         
        # Get all priorities
        diagrams_response = session.get('http://' + HOSTNAME + ':8080/rest/dependency-map/1.0/fieldOption/priority')
        assert diagrams_response.status_code == 200            
        priorityItem = diagrams_response.json()[4]
        priorityItemId = str(priorityItem['id'])
        print('priorityItemId=' + priorityItemId)
        
        #Get colore palete entry for diagram for field=priority option=5 
        diagrams_response = session.get('http://' + HOSTNAME + ':8080/rest/dependency-map/1.0/boxColor?diagramId=' + diagramId + '&fieldId=priority&fieldOptionId=' + priorityItemId)
        assert diagrams_response.status_code == 200            
        value = diagrams_response.text
        if not value:
           print( "No response value")
        else:
           print( diagrams_response.json() ) 

        #create box coloure resource entry
        payload = {"diagramId":diagramId,"fieldId":"priority","fieldOptionId":priorityItemId,"colorPaletteEntryId":4}
        diagrams_response = session.post('http://' + HOSTNAME + ':8080/rest/dependency-map/1.0/boxColor',
            json=payload)
        assert diagrams_response.status_code == 200
        print( diagrams_response.json() )
        boxColorResource = diagrams_response.json()['id']
        
        #update box coloure resource entry, created if not exists.
        payload = {"id":boxColorResource,"diagramId":diagramId,"fieldId":"priority","fieldOptionId":priorityItemId,"colorPaletteEntryId":5}
        diagrams_response = session.put('http://' + HOSTNAME + ':8080/rest/dependency-map/1.0/boxColor',
            json=payload)
        assert diagrams_response.status_code == 200
        print( diagrams_response.json() )
 def test_get_filter(self, session):
     # request list of diagrams using the session id
    HOSTNAME = os.environ.get('application_hostname')
    diagrams_response = session.get('http://' + HOSTNAME + ':8080/rest/dependency-map/1.0/filter?searchTerm=&page=0&resultsPerPage=25')
    filters = diagrams_response.json()["filters"]
    assert diagrams_response.status_code == 200
    print( filters)
예제 #5
0
def change_color_mapping(session, diagramId):
    HOSTNAME = os.environ.get('application_hostname')

    # Get all priorities
    diagrams_response = session.get(
        '/rest/dependency-map/1.0/fieldOption/status')
    assert diagrams_response.status_code == 200
    nrOfFieldOptions = len(diagrams_response.json())
    fieldIemList = diagrams_response.json()
    #Nr of field options
    print(nrOfFieldOptions)

    #We do not need to create boxColor entries for over 300 colors.
    fieldIemList5 = itertools.islice(fieldIemList, 5)
    for field in fieldIemList5:
        fieldOptionId = field["id"]
        colorPaletteEntryId = random.randint(0, 19)
        #create box coloure resource entry
        payload = {
            "diagramId": diagramId,
            "fieldId": "status",
            "fieldOptionId": fieldOptionId,
            "colorPaletteEntryId": colorPaletteEntryId
        }
        diagrams_response = session.post('/rest/dependency-map/1.0/boxColor',
                                         json=payload)
        assert diagrams_response.status_code == 200
        print(diagrams_response.json())
 def test_login(self, session):
     # request list of diagrams using the session id
     HOSTNAME = os.environ.get('application_hostname')
     diagrams_response = session.get(
         'http://' + HOSTNAME +
         ':8080/rest/dependency-map/1.0/diagram?searchTerm=&startAt=0&maxResults=50'
     )
     assert diagrams_response.status_code == 200
     assert diagrams_response.json()["total"] >= 0
    def create_link(self, session, issueLinkTypeId, from_issue_id,
                    to_issue_id):
        #before
        diagrams_response = session.get('/rest/api/2/issue/' + from_issue_id)
        before_issue_links = diagrams_response.json()['fields']['issuelinks']
        before_size = len(before_issue_links)

        payload = {
            'type': {
                'id': issueLinkTypeId
            },  #blocks?
            'inwardIssue': {
                'id': to_issue_id
            },
            'outwardIssue': {
                'id': from_issue_id
            }
        }
        diagrams_response = session.post('/rest/api/2/issueLink', json=payload)

        print(f"created link from issue {from_issue_id} to {to_issue_id} ")

        #JIRA Get new issue links id
        diagrams_response = session.get('/rest/api/2/issue/' + from_issue_id)
        issueLinks = diagrams_response.json()['fields']['issuelinks']
        #print(issueLinks)
        if (len(issueLinks) > before_size):
            issueLinksId = 0
            for issueLink in issueLinks:
                if 'inwardIssue' in issueLink and issueLink['inwardIssue']:
                    if issueLink['inwardIssue']['id'] == to_issue_id:
                        issueLinksId = issueLink['id']

            #issueLinksId = issueLinks[-1]['id']
            print("New issue Links Id=" + issueLinksId)
            if issueLinksId != 0:
                try:
                    with open(out_file_path, "a") as f:
                        issueLink_delete_request = '/rest/api/latest/issueLink/' + issueLinksId
                        f.write(issueLink_delete_request)
                        f.write("\n")
                        f.close()
                except IOError:
                    print("File not accessible delete...")
def get_filter(projectId, session):
    page = 0
    exit = 0
    filterKey = ""
    print("PROJECT" + str(projectId))
    while True:
        result_response = session.get(
            '/rest/dependency-map/1.0/filter?searchTerm=&page=' + str(page) +
            '&resultsPerPage=50',
            auth=('admin', 'admin'))
        assert result_response.status_code == 200
        filter_response = result_response.json()["filters"]
        #        print ("all filters json: " + str(filter_response))
        page = page + 1

        if len(filter_response) == 0:
            break

        for filter in filter_response:
            filter_id = str(filter['filterKey'])
            #           print("filter['filterKey']" +filter_id)
            permission_response = session.get('/rest/api/2/filter/' +
                                              filter_id + '/permission',
                                              auth=('admin', 'admin'))
            #          print ("for filter: " + str(permission_response.json()))
            for sharePer in permission_response.json():
                #             print("Permission: " + str(sharePer))
                #             print(sharePer['type']=='project')
                #             print (sharePer['project']['id'] == projectId )
                #             print("F2 SharePer['project']['id']" + sharePer['project']['id'])
                #             print("F2 projectId" + projectId)
                if sharePer['type'] == 'project' and sharePer['project'][
                        'id'] == projectId:
                    filterKey = filter_id
                    exit = 1
                    break
            if exit == 1:
                break

        if exit == 1:
            break
    return filterKey
def get_link_type(session):
    #JIRA Get list of available link types
    issueLinkTypeId = 0
    diagrams_response = session.get('/rest/api/2/issueLinkType',
                                    auth=('admin', 'admin'))
    issueLinkTypes = diagrams_response.json()['issueLinkTypes']
    for linkType in issueLinkTypes:
        print(linkType)
        if linkType["name"] == "Blocks":
            issueLinkTypeId = linkType["id"]
            break
    print(issueLinkTypeId)
    return issueLinkTypeId
예제 #10
0
def get_link_type(session):
    #JIRA Get list of available link types
    HOSTNAME = os.environ.get('application_hostname')
    issueLinkTypeId = 0
    diagrams_response = session.get('/rest/api/2/issueLinkType')
    issueLinkTypes = diagrams_response.json()['issueLinkTypes']
    for linkType in issueLinkTypes:
        print_in_shell(linkType)
        if linkType["name"] == "Blocks":
            issueLinkTypeId = linkType["id"]
            break
    print_in_shell(issueLinkTypeId)
    return issueLinkTypeId
    def test_copy_diagram(self, base_url, session):
        HOSTNAME = os.environ.get('application_hostname')

        #Get filterKey randomly among the project in the project file
        filterKey= getRandomFilter(session)

        diagrams_response = session.get('/rest/dependency-map/1.0/diagram?filterKey=' + filterKey + '&searchTerm=&sortBy=name&reverseSort=&startAt=0&maxResults=50')
        assert diagrams_response.status_code == 200
        result = diagrams_response.json()['values']
        if len(result)>0:
            diagramId=result[0]['id']

            #create a copy of the diagram
            diagrams_response = session.post('/rest/dependency-map/1.0/diagram/duplicate/' + str(diagramId) )
            assert diagrams_response.status_code == 200

            diagramId = diagrams_response.json()['diagram']['id']
            saveRemoveDiagramCmd(diagramId)
def create_data(session):
    # Get user
    diagrams_response = session.get('/rest/dependency-map/1.0/user')
    assert diagrams_response.status_code == 200
    userKey = diagrams_response.json()["key"]
    print_in_shell("User key: " + userKey)

    # Get filter key
    diagrams_response = session.get(
        '/rest/dependency-map/1.0/filter?searchTerm=&page=0&resultsPerPage=25')
    assert diagrams_response.status_code == 200

    # Get field priority
    diagrams_response = session.get('/rest/dependency-map/1.0/field/priority')
    assert diagrams_response.status_code == 200
    field = diagrams_response.json()["id"]

    # Get field status
    diagrams_response = session.get('/rest/dependency-map/1.0/field/status')
    assert diagrams_response.status_code == 200
    field2 = diagrams_response.json()["id"]

    # Get field fix version
    diagrams_response = session.get(
        '/rest/dependency-map/1.0/field/fixVersions')
    assert diagrams_response.status_code == 200
    field3 = diagrams_response.json()["id"]

    # Get project and filter  id from the list of projects we shall use, saved in a file
    projectId = getRandomProjectId()
    filterId = getFilterId(projectId)

    # Create diagram
    payload = {
        'name': "F100",
        'author': userKey,
        'lastEditedBy': userKey,
        'layoutId': 2,
        'filterKey': filterId,
        'boxColorFieldKey': field,
        'groupedLayoutFieldKey': field2,
        'matrixLayoutHorizontalFieldKey': field2,
        'matrixLayoutVerticalFieldKey': field3
    }

    diagrams_response = session.post('/rest/dependency-map/1.0/diagram',
                                     json=payload)
    assert diagrams_response.status_code == 200
    diagramId = diagrams_response.json()['id']
    diagramIdStr = str(diagramId)
    print_in_shell("Nytt diagram med id=" + diagramIdStr)
    saveRemoveDiagramCmd(diagramIdStr)

    ##############################################################
    # Add to favorit
    ##############################################################

    #Get favoritDiagram
    diagrams_response = session.get('/rest/dependency-map/1.0/favoriteDiagram')
    assert diagrams_response.status_code == 200
    favoritDiagrams = diagrams_response.json()

    #add to favorits
    favoritDiagrams.insert(0, diagramId)
    payload = favoritDiagrams
    diagrams_response = session.post(
        '/rest/dependency-map/1.0/favoriteDiagram')

    #Get favoritDiagram
    diagrams_response = session.get('/rest/dependency-map/1.0/favoriteDiagram')
    assert diagrams_response.status_code == 200
    favoritDiagrams = diagrams_response.json()

    #update box colore resource entry, created if not exists.
    payload = {
        "diagramId": diagramId,
        "fieldId": "status",
        "fieldOptionId": 1,
        "colorPaletteEntryId": 5
    }
    diagrams_response = session.post('/rest/dependency-map/1.0/boxColor',
                                     json=payload)
    assert diagrams_response.status_code == 200
    #print_in_shell( diagrams_response.json() )
    #######################################################
    # Creae linkConfig
    #######################################################
    #Get color palet entrie
    diagrams_response = session.get(
        '/rest/dependency-map/1.0/colorPaletteEntry?paletteId=' + '1')
    assert diagrams_response.status_code == 200
    print(diagrams_response.json())

    colorPaletteEntryId = diagrams_response.json()[14]["id"]
    colorPaletteEntryId2 = diagrams_response.json()[10]["id"]
    colorPaletteEntryId3 = diagrams_response.json()[12]["id"]

    diagrams_response = session.get('/rest/api/2/issueLinkType')
    issueLinkTypeIdStr = diagrams_response.json()['issueLinkTypes'][0]['id']
    issueLinkTypeId = int(issueLinkTypeIdStr)
    issueLinkTypeId2Str = diagrams_response.json()['issueLinkTypes'][1]['id']
    issueLinkTypeId2 = int(issueLinkTypeId2Str)
    issueLinkTypeId3Str = diagrams_response.json()['issueLinkTypes'][2]['id']
    issueLinkTypeId3 = int(issueLinkTypeId3Str)
    payload = {
        'diagramId': diagramId,
        'linkKey': issueLinkTypeId,
        'visible': True,
        'dashType': 0,
        'width': 0,
        'colorPaletteEntryId': colorPaletteEntryId
    }

    diagrams_response = session.post(
        '/rest/dependency-map/1.0/linkConfig?diagramId=' + diagramIdStr,
        json=payload)
    assert (diagrams_response.status_code == 200)

    payload = {
        'diagramId': diagramId,
        'linkKey': issueLinkTypeId2,
        'visible': True,
        'dashType': 0,
        'width': 0,
        'colorPaletteEntryId': colorPaletteEntryId2
    }
    diagrams_response = session.post(
        '/rest/dependency-map/1.0/linkConfig?diagramId=' + diagramIdStr,
        json=payload)
    assert (diagrams_response.status_code == 200)

    payload = {
        'diagramId': diagramId,
        'linkKey': issueLinkTypeId3,
        'visible': True,
        'dashType': 0,
        'width': 0,
        'colorPaletteEntryId': colorPaletteEntryId3
    }
    diagrams_response = session.post(
        '/rest/dependency-map/1.0/linkConfig?diagramId=' + diagramIdStr,
        json=payload)
    assert (diagrams_response.status_code == 200)

    yield {
        'diagramId': diagramId,
        'projectId': projectId,
        'filterId': filterId
    }
    diagrams_response2 = session.delete('/rest/dependency-map/1.0/diagram/' +
                                        diagramIdStr)
    assert diagrams_response2.status_code == 200
    print_in_shell("Deleted diagram id=" + diagramIdStr)

    return {
        'diagramId': diagramId,
        'projectId': projectId,
        'filerId': filterId
    }
예제 #13
0
    def test_create_issue_link_flow_ci(self, base_url, session, create_data):
        projectId = create_data['projectId']
        filterIdStr = create_data['filterId']
        #  print_in_shell("projectId=" + projectId )

        #JIRA Get list of available issues
        # Get filter
        diagrams_response = session.get('/rest/api/2/filter/' + filterIdStr)
        assert diagrams_response.status_code == 200
        searchUrl = diagrams_response.json()['searchUrl']
        #remove everytning before '/rest/api/2/search'
        startPos = searchUrl.find("/rest/api/2/search?")
        endPos = len(searchUrl)
        shortSearchUrl = searchUrl[startPos:endPos]
        diagrams_response = session.get(
            shortSearchUrl +
            "&fields=priority,status,fixVersions,assignee,duedate,summary,issuelinks&startAt=0&maxResults=50"
        )
        assert diagrams_response.status_code == 200

        if len(diagrams_response.json()['issues']) >= 3:
            assert diagrams_response.status_code == 200
            to_issue_id = diagrams_response.json()['issues'][0]['id']
            to_issue_Key = diagrams_response.json()['issues'][0]['key']
            from_issue_id = diagrams_response.json()['issues'][2]['id']
            from_issue_Key = diagrams_response.json()['issues'][2]['key']

            #JIRA Get list of available link types
            issueLinkTypeId = get_link_type(session)

            #before
            diagrams_response = session.get('/rest/api/2/issue/' +
                                            from_issue_id)
            before_issue_links = diagrams_response.json(
            )['fields']['issuelinks']
            before_size = len(before_issue_links)

            #JIRA create link #
            payload = {
                'type': {
                    'id': issueLinkTypeId
                },
                'inwardIssue': {
                    'id': to_issue_id
                },
                'outwardIssue': {
                    'id': from_issue_id
                }
            }
            diagrams_response = session.post('/rest/api/2/issueLink',
                                             json=payload)
            assert diagrams_response.status_code == 201
            #after#
            diagrams_response = session.get('/rest/api/2/issue/' +
                                            from_issue_id)
            issue_links = diagrams_response.json()['fields']['issuelinks']
            if (len(issue_links) > before_size):
                issueLinksId = 0
                for issueLink in issue_links:
                    if 'inwardIssue' in issueLink and issueLink['inwardIssue']:
                        if issueLink['inwardIssue']['id'] == to_issue_id:
                            issueLinksId = issueLink['id']

                #issueLinksId = issueLinks[-1]['id']
                if issueLinksId != 0:
                    try:
                        saveRemoveIssueLinkCmd(issueLinksId)
                    except IOError:
                        print_in_shell("File not accessible")
예제 #14
0
    def test_delete_diagram(self, base_url, session):
        # Prepare
        # request list of diagrams using the session id
        HOSTNAME = os.environ.get('application_hostname')

        ##CREATE DIAGRAM
        # Get user
        diagrams_response = session.get('/rest/dependency-map/1.0/user')
        assert diagrams_response.status_code == 200
        userKey = diagrams_response.json()["key"]

        # Get filter key
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/filter?searchTerm=&page=0&resultsPerPage=25'
        )
        assert diagrams_response.status_code == 200

        # Get field status
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/field/status')
        assert diagrams_response.status_code == 200
        field = diagrams_response.json()["id"]

        # Get field priority
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/field/priority')
        assert diagrams_response.status_code == 200
        field2 = diagrams_response.json()["id"]

        #Get filterKey randomly among the project in the project file
        filterKey = getRandomFilter(session)

        # Create diagram
        payload = {
            'name': "F100",
            'author': userKey,
            'lastEditedBy': userKey,
            'layoutId': 2,
            'filterKey': filterKey,
            'boxColorFieldKey': field,
            'groupedLayoutFieldKey': field,
            'matrixLayoutHorizontalFieldKey': field,
            'matrixLayoutVerticalFieldKey': field2
        }

        diagrams_response = session.post('/rest/dependency-map/1.0/diagram',
                                         json=payload)
        assert diagrams_response.status_code == 200
        diagramId = diagrams_response.json()['id']

        print("Hej")

        ##FIND DIAGRAM

        # To make it thread save need to create the diagram before removing
        # Get user
        diagrams_response = session.get('/rest/dependency-map/1.0/user')
        assert diagrams_response.status_code == 200
        userKey = diagrams_response.json()["key"]

        # Get filter key
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/filter?searchTerm=&page=0&resultsPerPage=25'
        )
        assert diagrams_response.status_code == 200

        #Get favoritDiagram
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/favoriteDiagram')
        assert diagrams_response.status_code == 200

        #Get diagrams with filterKey
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/diagram?filterKey=' + filterKey +
            '&searchTerm=&sortBy=name&reverseSort=&startAt=0&maxResults=50')
        assert diagrams_response.status_code == 200

        #   #Get filter
        diagrams_response = session.get('/rest/api/2/filter/' + filterKey)
        assert diagrams_response.status_code == 200

        #Get diagram
        diagrams_response = session.get('/rest/dependency-map/1.0/diagram/' +
                                        str(diagramId))
        assert diagrams_response.status_code == 200

        ##REMOVE
        #remove
        diagrams_response2 = session.delete(
            '/rest/dependency-map/1.0/diagram/' + str(diagramId))
        assert diagrams_response2.status_code == 200
        print_in_shell("Diagram removed" + str(diagramId))
        #print_in_shell( diagrams_response.json() );

        #get all diagrams after delete
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/diagram?filterKey=' + filterKey +
            '&searchTerm=&sortBy=name&reverseSort=&startAt=0&maxResults=50')
        assert diagrams_response.status_code == 200
예제 #15
0
    def test_create_change_link(self, session):
        HOSTNAME = os.environ.get('application_hostname')

        # Get user
        diagrams_response = session.get('http://' + HOSTNAME +
                                        ':8080/rest/dependency-map/1.0/user')
        assert diagrams_response.status_code == 200
        userKey = diagrams_response.json()["key"]
        print("User key: " + userKey)

        # Create diagram
        payload = {
            'name': "D100",
            'author': userKey,
            'lastEditedBy': userKey,
            'layoutId': 0,
            'filterKey': 10000,
            'boxColorFieldKey': "priority",
            'groupedLayoutFieldKey': "priority",
            'matrixLayoutHorizontalFieldKey': 'fixVersions',
            'matrixLayoutVerticalFieldKey': 'fixVersions'
        }

        diagrams_response = session.post(
            'http://' + HOSTNAME + ':8080/rest/dependency-map/1.0/diagram',
            json=payload)

        newDiagram = diagrams_response.json()
        diagramId = str(newDiagram["id"])
        print("New diagram id: " + diagramId)

        # Get all link configs
        diagrams_response = session.get(
            'http://' + HOSTNAME +
            ':8080/rest/dependency-map/1.0/linkConfig?diagramId=' + diagramId)
        print(diagrams_response.json())

        # Create linkConfig
        payload = {
            'diagramId': diagramId,
            'linkKey': 10000,
            'visible': True,
            'dashType': 0,
            'width': 0,
            'colorPaletteEntryId': 20
        }

        diagrams_response = session.post(
            'http://' + HOSTNAME +
            ':8080/rest/dependency-map/1.0/linkConfig?diagramId=' + diagramId,
            json=payload)

        newLinkConfig = diagrams_response.json()
        linkConfigId = str(newLinkConfig["id"])
        print(linkConfigId)
        assert (diagrams_response.status_code == 200)

        # Get all link configs
        diagrams_response = session.get(
            'http://' + HOSTNAME +
            ':8080/rest/dependency-map/1.0/linkConfig?diagramId=' + diagramId)
        print(diagrams_response.json())
예제 #16
0
    def test_create_change_link(self, base_url, session):
        # Get project and filter  id from the list of projects we shall use, saved in a file
        projectId = getRandomProjectId()
        filterId = getFilterId(projectId)

        # Get user
        diagrams_response = session.get('/rest/dependency-map/1.0/user')
        assert diagrams_response.status_code == 200
        userKey = diagrams_response.json()["key"]
        print_in_shell("User key: " + userKey)

        # Create diagram
        payload = {
            'name': "E100",
            'author': userKey,
            'lastEditedBy': userKey,
            'layoutId': 0,
            'filterKey': filterId,
            'boxColorFieldKey': "priority",
            'groupedLayoutFieldKey': "priority",
            'matrixLayoutHorizontalFieldKey': 'fixVersions',
            'matrixLayoutVerticalFieldKey': 'fixVersions'
        }
        diagrams_response = session.post('/rest/dependency-map/1.0/diagram',
                                         json=payload)

        newDiagram = diagrams_response.json()
        diagramId = str(newDiagram["id"])
        saveRemoveDiagramCmd(diagramId)

        issueLinkTypeId = get_link_type(session)
        print(issueLinkTypeId)

        # Get all link configs
        #diagrams_response = session.get('/rest/dependency-map/1.0/linkConfig?diagramId=' + diagramId)
        #print_in_shell("all link configs")
        #print_in_shell( diagrams_response.json() )

        # Create linkConfig
        payload = {
            'diagramId': diagramId,
            'linkKey': issueLinkTypeId,
            'visible': True,
            'dashType': 0,
            'width': 0,
            'colorPaletteEntryId': 20
        }

        diagrams_response = session.post(
            '/rest/dependency-map/1.0/linkConfig?diagramId=' + diagramId,
            json=payload)

        newLinkConfig = diagrams_response.json()
        linkConfigId = str(newLinkConfig["id"])
        print_in_shell(linkConfigId)
        assert (diagrams_response.status_code == 200)

        # Update linkConfig
        payload = {
            'id': linkConfigId,
            'diagramId': diagramId,
            'linkKey': issueLinkTypeId,
            'visible': True,
            'dashType': 1,
            'width': 2,
            'colorPaletteEntryId': 39
        }

        diagrams_response = session.put(
            '/rest/dependency-map/1.0/linkConfig?diagramId=' + diagramId,
            json=payload)
        assert (diagrams_response.status_code == 200)

        # Get all link configs
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/linkConfig?diagramId=' + diagramId)
        print_in_shell(diagrams_response.json())
예제 #17
0
def create_diagram(filterKey, session):
    # Get filter key
    HOSTNAME = os.environ.get('application_hostname')

    # Get user
    diagrams_response = session.get('/rest/dependency-map/1.0/user')
    assert diagrams_response.status_code == 200
    userKey = diagrams_response.json()["key"]
    print("User key: " + userKey)

    # Get field priority
    diagrams_response = session.get('/rest/dependency-map/1.0/field/priority')
    assert diagrams_response.status_code == 200
    field = diagrams_response.json()["id"]
    print(field)

    # Get field status
    diagrams_response = session.get('/rest/dependency-map/1.0/field/status')
    assert diagrams_response.status_code == 200
    field2 = diagrams_response.json()["id"]
    print(field2)

    # Get field fix version
    diagrams_response = session.get(
        '/rest/dependency-map/1.0/field/fixVersions')
    assert diagrams_response.status_code == 200
    field3 = diagrams_response.json()["id"]
    print(field3)

    # Create diagram
    payload = {
        'name': "A100",
        'author': userKey,
        'lastEditedBy': userKey,
        'layoutId': 2,
        'filterKey': filterKey,
        'boxColorFieldKey': field,
        'groupedLayoutFieldKey': field2,
        'matrixLayoutHorizontalFieldKey': field2,
        'matrixLayoutVerticalFieldKey': field3
    }

    diagram_response = session.post('/rest/dependency-map/1.0/diagram',
                                    json=payload)
    assert diagram_response.status_code == 200
    diagramId = str(diagram_response.json()["id"])
    print("New diagram id: " + diagramId)

    # Create linkConfig
    payload = {
        'diagramId': diagramId,
        'linkKey': 10000,
        'visible': True,
        'dashType': 0,
        'width': 0,
        'colorPaletteEntryId': 20
    }

    diagrams_response = session.post(
        '/rest/dependency-map/1.0/linkConfig?diagramId=' + diagramId,
        json=payload)

    newLinkConfig = diagrams_response.json()
    linkConfigId = str(newLinkConfig["id"])
    print(linkConfigId)
    assert (diagrams_response.status_code == 200)

    change_color_mapping(session, diagramId)

    return diagramId
    def test_create_diagram(self, session):

        #GET /rest/api/2/issueLinkType HTTP/1.1" 200 229 3 "http://localhost:8080/plugins/servlet/dependency-map/diagram" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) A
        #GET /rest/dependency-map/1.0/filter?searchTerm=&page=0&resultsPerPage=25&_=1580893219884 HTTP/1.1" 200 153 2 "http://localhost:8080/plugins/servlet/dependenc
        #GET /rest/dependency-map/1.0/field?searchTerm=&page=0&resultsPerPage=25&_=1580893250444 HTTP/1.1" 200 243 1 "http://localhost:8080/plugins/servlet/dependency
        #GET /rest/dependency-map/1.0/field?searchTerm=&page=0&resultsPerPage=25&_=1580893254366 HTTP/1.1" 200 243 1 "http://localhost:8080/plugins/servlet/dependency
        #GET /rest/dependency-map/1.0/user HTTP/1.1" 200 96 1 "http://localhost:8080/plugins/servlet/dependency-map/diagram" "Mozilla/5.0 (Windows NT 10.0; Win64; x64
        #POST /rest/dependency-map/1.0/diagram HTTP/1.1" 200 226 2 "http://localhost:8080/plugins/servlet/dependency-map/diagram" "Mozilla/5.0 (Windows NT 10.0; Win64
        #POST /rest/dependency-map/1.0/linkConfig HTTP/1.1" 200 134 5 "http://localhost:8080/plugins/servlet/dependency-map/diagram" "Mozilla/5.0 (Windows NT 10.0; Wi

        # ??? POST /rest/webResources/1.0/resources HTTP/1.1" 200 494 3 "http://localhost:8080/plugins/servlet/dependency-map/diagram" "Mozilla/5.0 (Windows NT 10.0; Win64

        #GET /rest/dependency-map/1.0/diagram?searchTerm=&startAt=0&maxResults=50 HTTP/1.1" 200 960 3 "http://localhost:8080/plugins/servlet/dependency-map/diagram" "

        # Get filter key
        HOSTNAME = os.environ.get('application_hostname')
        diagrams_response = session.get(
            'http://' + HOSTNAME +
            ':8080/rest/dependency-map/1.0/filter?searchTerm=&page=0&resultsPerPage=25'
        )
        assert diagrams_response.status_code == 200
        filterKey = str(diagrams_response.json()["filters"][1]["filterKey"])
        print(filterKey)

        # Get field
        diagrams_response = session.get(
            'http://' + HOSTNAME +
            ':8080/rest/dependency-map/1.0/field?searchTerm=&page=0&resultsPerPage=25'
        )
        assert diagrams_response.status_code == 200
        field = diagrams_response.json()["fields"][0]["id"]
        print(field)

        # Get field
        diagrams_response = session.get(
            'http://' + HOSTNAME +
            ':8080/rest/dependency-map/1.0/field?searchTerm=&page=0&resultsPerPage=25'
        )
        assert diagrams_response.status_code == 200
        field = diagrams_response.json()["fields"][0]["id"]
        print(field)

        # Get user
        diagrams_response = session.get('http://' + HOSTNAME +
                                        ':8080/rest/dependency-map/1.0/user')
        assert diagrams_response.status_code == 200
        userKey = diagrams_response.json()["key"]
        print("User key: " + userKey)

        # Create diagram
        payload = {
            'name': "D100",
            'author': userKey,
            'lastEditedBy': userKey,
            'layoutId': 0,
            'filterKey': filterKey,
            'boxColorFieldKey': field,
            'groupedLayoutFieldKey': field,
            'matrixLayoutHorizontalFieldKey': 'fixVersions',
            'matrixLayoutVerticalFieldKey': 'fixVersions'
        }

        diagram_response = session.post(
            'http://' + HOSTNAME + ':8080/rest/dependency-map/1.0/diagram',
            json=payload)
        assert diagram_response.status_code == 200
        diagramId = str(diagram_response.json()["id"])
        print("New diagram id: " + diagramId)

        #    try:
        #       with open(out_file_path, "a") as f:
        #           diagrams_delete_request ='http://'  + HOSTNAME + ':8080/rest/dependency-map/1.0/diagram/' + diagramId
        #          f.write(diagrams_delete_request)
        #          f.write("\n")
        #          f.close()
        #   except IOError:
        #       print("File not accessible")

        # Create linkConfig
        payload = {
            'diagramId': diagramId,
            'linkKey': 10000,
            'visible': True,
            'dashType': 0,
            'width': 0,
            'colorPaletteEntryId': 20
        }

        diagrams_response = session.post(
            'http://' + HOSTNAME +
            ':8080/rest/dependency-map/1.0/linkConfig?diagramId=' + diagramId,
            json=payload)

        newLinkConfig = diagrams_response.json()
        linkConfigId = str(newLinkConfig["id"])
        print(linkConfigId)
        assert (diagrams_response.status_code == 200)

        # Get diagrams
        diagrams_response = session.get(
            'http://' + HOSTNAME +
            ':8080/rest/dependency-map/1.0/diagram?searchTerm=&startAt=0&maxResults=50'
        )
        assert diagrams_response.status_code == 200
def get_projects(nr_projects, session):
    resp = session.get('/rest/api/latest/project', auth=('admin', 'admin'))
    assert resp.status_code == 200
    result = resp.json()
    return result
    def test_create_diagram_flow_cd(self, base_url, session):

        #JIRA Get list of available link types
        HOSTNAME = os.environ.get('application_hostname')

        # Get field priority #
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/field/priority')
        assert diagrams_response.status_code == 200
        field = diagrams_response.json()["id"]

        # Get field option priority #
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/fieldOption/priority')
        assert diagrams_response.status_code == 200
        print(diagrams_response.json())

        # Get color palette entry#
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/colorPaletteEntry?palettId=' + '1')
        assert diagrams_response.status_code == 200

        # Get issue linktype #
        diagrams_response = session.get('/rest/api/2/issueLinkType')
        assert diagrams_response.status_code == 200

        # Get field #
        diagrams_response = session.get('/rest/api/2/field')
        assert diagrams_response.status_code == 200

        # Get field #
        diagrams_response = session.get('/rest/api/2/field')
        assert diagrams_response.status_code == 200

        # Get field fix version #
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/field/fixVersions')
        assert diagrams_response.status_code == 200
        field3 = diagrams_response.json()["id"]

        ############  Give name and select filter
        # Get filter
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/filter?searchTerm=&page=0&resultsPerPage=25'
        )
        assert diagrams_response.status_code == 200

        # Get color palette entry#
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/colorPaletteEntry?palettId=' + '0')
        assert diagrams_response.status_code == 200

        # Get field priority , repeat this because if some other value was selected such a call had been made#
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/field/priority')
        assert diagrams_response.status_code == 200
        field = diagrams_response.json()["id"]

        # Get field option priority #
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/fieldOption/priority')
        assert diagrams_response.status_code == 200

        ############# Select issue color field
        # Get filter -
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/filter?searchTerm=&page=0&resultsPerPage=25'
        )
        assert diagrams_response.status_code == 200

        #Get color palet entry
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/colorPaletteEntry?palettId=' + '0')
        assert diagrams_response.status_code == 200

        ############# Select Map layout matrix
        # Get field status
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/field/status')
        assert diagrams_response.status_code == 200
        field2 = diagrams_response.json()["id"]

        ############# Select filter
        # Get filter -
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/filter?searchTerm=&page=0&resultsPerPage=25'
        )
        assert diagrams_response.status_code == 200

        ############## Select columns field
        # Get filter -
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/filter?searchTerm=&page=0&resultsPerPage=25'
        )
        assert diagrams_response.status_code == 200

        ################ Create diagram #####################
        #Get filterKey randomly among the project in the project file
        filterKey = getRandomFilter(session)

        # Get user
        diagrams_response = session.get('/rest/dependency-map/1.0/user')
        assert diagrams_response.status_code == 200
        userKey = diagrams_response.json()["key"]

        # Create diagram
        payload = {
            'name': "F100",
            'author': userKey,
            'lastEditedBy': userKey,
            'layoutId': 2,
            'filterKey': filterKey,
            'boxColorFieldKey': field,
            'groupedLayoutFieldKey': field2,
            'matrixLayoutHorizontalFieldKey': field2,
            'matrixLayoutVerticalFieldKey': field3
        }

        diagrams_response = session.post('/rest/dependency-map/1.0/diagram',
                                         json=payload)
        assert diagrams_response.status_code == 200
        diagramId = diagrams_response.json()['id']
        guid = diagrams_response.json()['guid']
        diagramKey = str(diagramId)

        saveRemoveDiagramCmd(diagramId)

        #get diagram
        diagrams_response = session.get('/rest/dependency-map/1.0/diagram/' +
                                        diagramKey)

        ###### update issue colors

        # Get user
        diagrams_response = session.get('/rest/dependency-map/1.0/user')
        assert diagrams_response.status_code == 200
        userKey = diagrams_response.json()["key"]

        #Update diagram
        payload = {
            'name': "F200",
            'id': diagramId,
            'author': userKey,
            'lastEditedBy': userKey,
            'layoutId': 2,
            'filterKey': filterKey,
            'boxColorFieldKey': field,
            'groupedLayoutFieldKey': field2,
            'matrixLayoutHorizontalFieldKey': field2,
            'matrixLayoutVerticalFieldKey': field3,
            'guid': guid
        }

        diagrams_response = session.put('/rest/dependency-map/1.0/diagram',
                                        json=payload)
        print(diagrams_response.json())
        assert diagrams_response.status_code == 200

        #create box colore resource entries.
        payload = {
            "diagramId": diagramId,
            "fieldId": "priority",
            "fieldOptionId": 1,
            "colorPaletteEntryId": 5
        }
        diagrams_response = session.post('/rest/dependency-map/1.0/boxColor',
                                         json=payload)
        assert diagrams_response.status_code == 200

        payload = {
            "diagramId": diagramId,
            "fieldId": "priority",
            "fieldOptionId": 2,
            "colorPaletteEntryId": 6
        }
        diagrams_response = session.post('/rest/dependency-map/1.0/boxColor',
                                         json=payload)
        assert diagrams_response.status_code == 200

        payload = {
            "diagramId": diagramId,
            "fieldId": "priority",
            "fieldOptionId": 3,
            "colorPaletteEntryId": 7
        }
        diagrams_response = session.post('/rest/dependency-map/1.0/boxColor',
                                         json=payload)
        assert diagrams_response.status_code == 200

        payload = {
            "diagramId": diagramId,
            "fieldId": "priority",
            "fieldOptionId": 4,
            "colorPaletteEntryId": 8
        }
        diagrams_response = session.post('/rest/dependency-map/1.0/boxColor',
                                         json=payload)
        assert diagrams_response.status_code == 200

        ###############Create link config entries
        # Get user
        diagrams_response = session.get('/rest/dependency-map/1.0/user')
        assert diagrams_response.status_code == 200
        userKey = diagrams_response.json()["key"]

        #Update diagram
        payload = {
            'name': "F100",
            'id': diagramId,
            'author': userKey,
            'lastEditedBy': userKey,
            'layoutId': 2,
            'filterKey': filterKey,
            'boxColorFieldKey': field,
            'groupedLayoutFieldKey': field2,
            'matrixLayoutHorizontalFieldKey': field2,
            'matrixLayoutVerticalFieldKey': field3,
            'guid': guid
        }

        diagrams_response = session.put('/rest/dependency-map/1.0/diagram',
                                        json=payload)
        assert diagrams_response.status_code == 200

        #Get color palet entrie
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/colorPaletteEntry?paletteId=' + '1')
        assert diagrams_response.status_code == 200
        print(diagrams_response.json())

        colorPaletteEntryId = diagrams_response.json()[14]["id"]
        colorPaletteEntryId2 = diagrams_response.json()[10]["id"]
        colorPaletteEntryId3 = diagrams_response.json()[12]["id"]

        #Create linkConfig

        diagrams_response = session.get('/rest/api/2/issueLinkType')
        print(diagrams_response.json())
        issueLinkTypeIdStr = diagrams_response.json(
        )['issueLinkTypes'][0]['id']
        issueLinkTypeId = int(issueLinkTypeIdStr)
        issueLinkTypeId2Str = diagrams_response.json(
        )['issueLinkTypes'][1]['id']
        issueLinkTypeId2 = int(issueLinkTypeId2Str)
        issueLinkTypeId3Str = diagrams_response.json(
        )['issueLinkTypes'][2]['id']
        issueLinkTypeId3 = int(issueLinkTypeId3Str)
        payload = {
            'diagramId': diagramId,
            'linkKey': issueLinkTypeId,
            'visible': True,
            'dashType': 0,
            'width': 0,
            'colorPaletteEntryId': colorPaletteEntryId
        }

        diagrams_response = session.post(
            '/rest/dependency-map/1.0/linkConfig?diagramId=' + diagramKey,
            json=payload)
        assert (diagrams_response.status_code == 200)

        payload = {
            'diagramId': diagramId,
            'linkKey': issueLinkTypeId2,
            'visible': True,
            'dashType': 0,
            'width': 0,
            'colorPaletteEntryId': colorPaletteEntryId2
        }
        diagrams_response = session.post(
            '/rest/dependency-map/1.0/linkConfig?diagramId=' + diagramKey,
            json=payload)
        assert (diagrams_response.status_code == 200)

        payload = {
            'diagramId': diagramId,
            'linkKey': issueLinkTypeId3,
            'visible': True,
            'dashType': 0,
            'width': 0,
            'colorPaletteEntryId': colorPaletteEntryId3
        }
        diagrams_response = session.post(
            '/rest/dependency-map/1.0/linkConfig?diagramId=' + diagramKey,
            json=payload)
        assert (diagrams_response.status_code == 200)

        print("inside11")
예제 #21
0
    def test_show_diagram_flow_ci(self, base_url, session, create_data):
        print(create_data)
        diagramIdStr = create_data['diagramId']
        projectId = create_data['projectId']
        filterIdStr = create_data['filterId']
        print(filterIdStr)

        # To make it thread save need to create the diagram before removing
        # Get user
        diagrams_response = session.get('/rest/dependency-map/1.0/user')
        assert diagrams_response.status_code == 200
        userKey = diagrams_response.json()["key"]

        # Get filter key
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/filter?searchTerm=&page=0&resultsPerPage=25'
        )
        assert diagrams_response.status_code == 200

        #Get favoritDiagram
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/favoriteDiagram')
        assert diagrams_response.status_code == 200
        #Get diagrams with filterKey
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/diagram?filterKey=' + filterIdStr +
            '&searchTerm=&sortBy=name&reverseSort=&startAt=0&maxResults=50')
        assert diagrams_response.status_code == 200

        #   #Get filter
        diagrams_response = session.get('/rest/api/2/filter/' + filterIdStr)
        assert diagrams_response.status_code == 200

        ############# When opening diagram
        #Get diagram
        diagrams_response = session.get('/rest/dependency-map/1.0/diagram/' +
                                        diagramIdStr)
        assert diagrams_response.status_code == 200

        #Get color palet entrie
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/colorPaletteEntry?palettId=' + '0')
        assert diagrams_response.status_code == 200

        #Get color palet entrie
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/colorPaletteEntry?palettId=' + '1')
        assert diagrams_response.status_code == 200

        # Get issue linktype #
        diagrams_response = session.get('/rest/api/2/issueLinkType')
        assert diagrams_response.status_code == 200

        # Get field #
        diagrams_response = session.get('/rest/api/2/field')
        assert diagrams_response.status_code == 200

        # Get field #
        diagrams_response = session.get('/rest/api/2/field')
        assert diagrams_response.status_code == 200

        # Get field priority
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/field/status')
        assert diagrams_response.status_code == 200

        # Get field options - status
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/fieldOption/status')
        assert diagrams_response.status_code == 200

        # Get field options - fixVersions
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/fieldOption/fixVersions')
        assert diagrams_response.status_code == 200

        # Get issue linktype #
        diagrams_response = session.get('/rest/api/2/issueLinkType')
        assert diagrams_response.status_code == 200

        # Get filter moved to the next section
        #diagrams_response = session.get('/rest/dependency-map/1.0/filter' + filterIdStr)
        #assert diagrams_response.status_code == 200
        #searchUrl = diagrams_response.json()['searchUrl']
        ##remove everytning before '/rest/api/2/search'
        #shortSearchUrl = re.sub("/rest/api/2/search?", '', searchUrl)

        #diagrams_response = session.get(shortSearchUrl + "&fields=priority,status,fixVersions,assignee,duedate,summary,issuelinks&startAt=0&maxResults=50")
        #assert diagrams_response.status_code == 200

        # Get field priority
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/field/status')
        assert diagrams_response.status_code == 200

        # Get field options - status
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/fieldOption/status')
        assert diagrams_response.status_code == 200

        # Get field options - fixVersions
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/fieldOption/fixVersions')
        assert diagrams_response.status_code == 200
        #Get boxcolor, värden när dessa är explicit ändrade.
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/boxColor?diagramId=' + diagramIdStr +
            '&fieldId=priority')
        assert diagrams_response.status_code == 200
        value = diagrams_response.text
예제 #22
0
def create_data(session):
    # print_in_shell("Create diagram")
    # session = requests.session()

    # Get user
    diagrams_response = session.get('/rest/dependency-map/1.0/user')
    assert diagrams_response.status_code == 200
    userKey = diagrams_response.json()["key"]
    print_in_shell("User key: " + userKey)

    # Get filter key
    diagrams_response = session.get(
        '/rest/dependency-map/1.0/filter?searchTerm=&page=0&resultsPerPage=25')
    assert diagrams_response.status_code == 200

    # Get field priority
    diagrams_response = session.get('/rest/dependency-map/1.0/field/priority')
    assert diagrams_response.status_code == 200
    field = diagrams_response.json()["id"]

    # Get field fixVersions
    diagrams_response = session.get(
        '/rest/dependency-map/1.0/field/fixVersions')
    assert diagrams_response.status_code == 200
    field2 = diagrams_response.json()["id"]

    # Get project and filter  id from the list of projects we shall use, saved in a file
    projectId = getRandomProjectId()
    filterId = getFilterId(projectId)

    # Create diagram nedan går att skapa men inte att öppna
    #payload ={ 'name':"G100", 'author': userKey,
    #           'lastEditedBy':userKey, 'layoutId':0, 'filterKey': filterId,
    #           'boxColorFieldKey': field, 'groupedLayoutFieldKey': field,
    #           'matrixLayoutHorizontalFieldKey': field2, 'matrixLayoutVerticalFieldKey': field2}

    # Create diagram
    payload = {
        'name': "G100",
        'author': userKey,
        'lastEditedBy': userKey,
        'layoutId': 0,
        'filterKey': filterId,
        'boxColorFieldKey': field,
        'groupedLayoutFieldKey': field2,
        'matrixLayoutHorizontalFieldKey': 'status',
        'matrixLayoutVerticalFieldKey': field2
    }

    diagrams_response = session.post('/rest/dependency-map/1.0/diagram',
                                     json=payload)
    assert diagrams_response.status_code == 200
    diagramId = diagrams_response.json()['id']
    diagramIdStr = str(diagramId)

    #create box colore resource entries.
    payload = {
        "diagramId": diagramId,
        "fieldId": "status",
        "fieldOptionId": 1,
        "colorPaletteEntryId": 5
    }
    diagrams_response = session.post('/rest/dependency-map/1.0/boxColor',
                                     json=payload)
    assert diagrams_response.status_code == 200

    payload = {
        "diagramId": diagramId,
        "fieldId": "status",
        "fieldOptionId": 2,
        "colorPaletteEntryId": 6
    }
    diagrams_response = session.post('/rest/dependency-map/1.0/boxColor',
                                     json=payload)
    assert diagrams_response.status_code == 200

    payload = {
        "diagramId": diagramId,
        "fieldId": "status",
        "fieldOptionId": 3,
        "colorPaletteEntryId": 7
    }
    diagrams_response = session.post('/rest/dependency-map/1.0/boxColor',
                                     json=payload)
    assert diagrams_response.status_code == 200

    payload = {
        "diagramId": diagramId,
        "fieldId": "status",
        "fieldOptionId": 4,
        "colorPaletteEntryId": 8
    }
    diagrams_response = session.post('/rest/dependency-map/1.0/boxColor',
                                     json=payload)
    assert diagrams_response.status_code == 200

    #Create link config entries
    # Create linkConfig

    #Get color palet entrie
    diagrams_response = session.get(
        '/rest/dependency-map/1.0/colorPaletteEntry?paletteId=' + '1')
    assert diagrams_response.status_code == 200
    print(diagrams_response.json())

    colorPaletteEntryId = diagrams_response.json()[14]["id"]
    colorPaletteEntryId2 = diagrams_response.json()[10]["id"]
    colorPaletteEntryId3 = diagrams_response.json()[12]["id"]

    diagrams_response = session.get('/rest/api/2/issueLinkType')
    issueLinkTypeIdStr = diagrams_response.json()['issueLinkTypes'][0]['id']
    issueLinkTypeId = int(issueLinkTypeIdStr)
    issueLinkTypeId2Str = diagrams_response.json()['issueLinkTypes'][1]['id']
    issueLinkTypeId2 = int(issueLinkTypeId2Str)
    issueLinkTypeId3Str = diagrams_response.json()['issueLinkTypes'][2]['id']
    issueLinkTypeId3 = int(issueLinkTypeId3Str)
    payload = {
        'diagramId': diagramId,
        'linkKey': issueLinkTypeId,
        'visible': True,
        'dashType': 0,
        'width': 0,
        'colorPaletteEntryId': colorPaletteEntryId
    }

    diagrams_response = session.post(
        '/rest/dependency-map/1.0/linkConfig?diagramId=' + diagramIdStr,
        json=payload)
    assert (diagrams_response.status_code == 200)

    payload = {
        'diagramId': diagramId,
        'linkKey': issueLinkTypeId2,
        'visible': True,
        'dashType': 0,
        'width': 0,
        'colorPaletteEntryId': colorPaletteEntryId2
    }
    diagrams_response = session.post(
        '/rest/dependency-map/1.0/linkConfig?diagramId=' + diagramIdStr,
        json=payload)
    assert (diagrams_response.status_code == 200)

    payload = {
        'diagramId': diagramId,
        'linkKey': issueLinkTypeId3,
        'visible': True,
        'dashType': 0,
        'width': 0,
        'colorPaletteEntryId': colorPaletteEntryId3
    }
    diagrams_response = session.post(
        '/rest/dependency-map/1.0/linkConfig?diagramId=' + diagramIdStr,
        json=payload)
    assert (diagrams_response.status_code == 200)

    yield {
        'diagramId': diagramIdStr,
        'projectId': projectId,
        'filterId': filterId
    }
    diagrams_response2 = session.delete('/rest/dependency-map/1.0/diagram/' +
                                        diagramIdStr)
    assert diagrams_response2.status_code == 200
    print_in_shell("Deleted diagram id=" + diagramIdStr)

    return {
        'diagramId': diagramIdStr,
        'projectId': projectId,
        'filerId': filterId
    }
    def test_show_diagram_flow_sd(self, base_url, session, create_data):
        filterIdStr = create_data['filterId']
        diagramId = create_data['diagramId']
        diagramIdStr = str(diagramId)
        # Get user
        diagrams_response = session.get('/rest/dependency-map/1.0/user')
        assert diagrams_response.status_code == 200
        userKey = diagrams_response.json()["key"]
        print_in_shell("User key: " + userKey)
        #Get favoritDiagram
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/favoriteDiagram')
        assert diagrams_response.status_code == 200
        favoritDiagrams = diagrams_response.json()
        print(favoritDiagrams)
        # firstDiagId = favoritDiagrams[0]["diagramId"]

        for diag in favoritDiagrams:
            id = diag["diagramId"]

            diagrams_response = session.get(
                '/rest/dependency-map/1.0/diagram/' + str(id))
            print(diagrams_response.json())
            filterKey = diagrams_response.json()['filterKey']
            assert diagrams_response.status_code == 200

            # Get filter key
            diagrams_response = session.get("/rest/api/2/filter/" +
                                            str(filterKey))
            assert diagrams_response.status_code == 200

        print(diagramIdStr)
        #Selecting and opening diagram
        diagrams_response = session.get('/rest/dependency-map/1.0/diagram/' +
                                        diagramIdStr)
        assert diagrams_response.status_code == 200

        #Get color palet entrie
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/colorPaletteEntry?paletteId=' + '0')
        assert diagrams_response.status_code == 200

        #Get color palet entrie
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/colorPaletteEntry?paletteId=' + '1')
        assert diagrams_response.status_code == 200

        # Get issue linktype #
        diagrams_response = session.get('/rest/api/2/issueLinkType')
        assert diagrams_response.status_code == 200

        # Get field #
        diagrams_response = session.get('/rest/api/2/field')
        assert diagrams_response.status_code == 200

        # Get field #
        diagrams_response = session.get('/rest/api/2/field')
        assert diagrams_response.status_code == 200

        # Get linkConfig #
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/linkConfig?diagramId=' + diagramIdStr)
        assert diagrams_response.status_code == 200

        # Get field priority
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/field/priority')
        assert diagrams_response.status_code == 200

        # Get field options - status
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/fieldOption/status')
        assert diagrams_response.status_code == 200

        # Get field options - fixVersions
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/fieldOption/fixVersions')
        assert diagrams_response.status_code == 200

        # Get issue linktype #
        diagrams_response = session.get('/rest/api/2/issueLinkType')
        assert diagrams_response.status_code == 200

        # Get field priority
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/field/status')
        assert diagrams_response.status_code == 200

        diagrams_response = session.get("/rest/api/2/filter/" + filterIdStr)
        assert diagrams_response.status_code == 200

        # Get field options - priority
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/fieldOption/priority')
        assert diagrams_response.status_code == 200

        # Get field options - status
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/fieldOption/status')
        assert diagrams_response.status_code == 200

        # Get field options - fixVersions
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/fieldOption/fixVersions')
        assert diagrams_response.status_code == 200

        #Get boxcolor, värden när dessa är explicit ändrade.
        diagrams_response = session.get(
            '/rest/dependency-map/1.0/boxColor?diagramId=' + diagramIdStr +
            '&fieldId=priority')
        assert diagrams_response.status_code == 200
        value = diagrams_response.text