Commit d9ee0559 authored by Benoit Orihuela's avatar Benoit Orihuela
Browse files

Merge branch 'develop' into 'master'

Resolve script problems executed from cli

See merge request !137
parents 6394cb3b d3057461
Loading
Loading
Loading
Loading

doc/__init__.py

deleted100644 → 0
+0 −0

Empty file deleted.

+4 −4
Original line number Diff line number Diff line
from os.path import dirname
from robot.api import TestSuiteBuilder
from doc.analysis.parserobotfile import ParseRobotFile
from doc.analysis.parseapiutilsfile import ParseApiUtilsFile
from doc.analysis.parsevariablesfile import ParseVariablesFile
from doc.analysis.initial_setup import InitialSetup
from analysis.parserobotfile import ParseRobotFile
from analysis.parseapiutilsfile import ParseApiUtilsFile
from analysis.parsevariablesfile import ParseVariablesFile
from analysis.initial_setup import InitialSetup
from re import match, findall, finditer, sub, MULTILINE


+2 −2
Original line number Diff line number Diff line
import re
import os
from doc.analysis.checks import Checks
from doc.analysis.requests import Requests
from analysis.checks import Checks
from analysis.requests import Requests


class ParseRobotFile:
+6 −1
Original line number Diff line number Diff line
@@ -14,6 +14,10 @@ def create_json_of_robotfile(robot_file_to_be_processed: str, computestatistics:
    robot_path_to_be_processed, robot_file = find_robot_file(basedir=folder_test_suites,
                                                             filename=robot_file_to_be_processed)

    if robot_path_to_be_processed is None and robot_file is None:
        print(f'No robot file found with name: {robot_file_to_be_processed}')
        exit(1)

    # Check that the folder '/results' exists and if not, create it
    if not exists(folder_result_path):
        makedirs(folder_result_path)
@@ -58,4 +62,5 @@ if __name__ == "__main__":
    args = argv[1:]
    robot_file_tbp = args[0]
    resulting_json = create_json_of_robotfile(robot_file_tbp)
    print("Correctly exiting")

    print("\nCorrectly exiting")
+40 −28
Original line number Diff line number Diff line
from generateDocumentationData import create_json_of_robotfile
from os.path import dirname
from os.path import dirname, join
from os import walk
import requests
from requests import delete, post
import json
import re

@@ -28,9 +28,9 @@ if __name__ == "__main__":
                if "error_while_parsing" in json_of_test_case and json_of_test_case["error_while_parsing"]:
                    statistics[name_of_test_case]["failed"] = True
                    number_of_failures += 1
                    # we create a dummy entry in the "sub" test_cases, which has a "permutation_tp_id" equal to the robotfile
                    # We do not forget to add a trailing slash that will be removed later, and a tail _XX which will
                    # allow matching from the googlesheet?
                    # we create a dummy entry in the "sub" test_cases, which has a "permutation_tp_id" equal to the
                    # robotfile. We do not forget to add a trailing slash that will be removed later, and a tail _XX
                    # which will allow matching from the googlesheet?
                    json_of_test_case["test_cases"] = [{"permutation_tp_id": "/"+json_of_test_case["robotfile"]+"_XX"}]
                else:
                    statistics[name_of_test_case]["failed"] = False
@@ -42,8 +42,11 @@ if __name__ == "__main__":
                        json_of_test_case["config_id"] = "CF_05"
                    else:
                        json_of_test_case["config_id"] = "CF_01"

                    # upgrade the version and add the reference in square brackets
                    json_of_test_case["reference"] = re.sub(r"V1.3.1 \[\]", "version 1.5.1 [1]", json_of_test_case["reference"])
                    json_of_test_case["reference"] = (
                        re.sub(r"V1.3.1 \[\]", "version 1.5.1 [1]", json_of_test_case["reference"]))

                    # now for each permutation inside this test case, create the permutation's correct parent_release
                    if "test_cases" in json_of_test_case:
                        # grab everything that is a permutation_body inside the "sub" test_cases,
@@ -71,13 +74,14 @@ if __name__ == "__main__":
    
    print(f"Out of {number_of_all_testcases} testcases, {number_of_failures} of them failed to be correctly parsed.")

    with open("testcases.json", 'w') as fp:
    testcases_file = join(basedir, "doc", "results", "testcases.json")
    with open(testcases_file, 'w') as fp:
        json.dump(obj=testcases, indent=2, fp=fp)
    
    # determine the structure/schema of a successfully parsed testcase
    permutation_template = {}
    for testcase in testcases:
        if testcase["error_while_parsing"] == False:
        if not testcase["error_while_parsing"]:
            permutation_metadata_template = {}
            # everything that is at the top level shall be extracted
            for key, value in testcase.items():
@@ -137,12 +141,16 @@ if __name__ == "__main__":
    for testcase in testcases:
        # print("--parsing "+testcase["robotfile"])
        permutation_metadata = {}

        # everything that is at the top level shall be extracted
        for key, value in testcase.items():
            if key != "test_cases":
                permutation_metadata[key] = value

        # start creating HTML link to robot file in repo
        fullurl = BASE_URL_OF_FORGE + permutation_metadata["robotpath"] + "/" + permutation_metadata["robotfile"] + ROBOT_FILE_EXTENSION
        fullurl = (BASE_URL_OF_FORGE + permutation_metadata["robotpath"] +
                   "/" + permutation_metadata["robotfile"] + ROBOT_FILE_EXTENSION)

        if "test_cases" in testcase:
            # everything that is a permutation_body inside the "sub" test_cases,
            # shall rise on its own existenz and be joined with its permutation_metadata
@@ -153,15 +161,20 @@ if __name__ == "__main__":
                        print(" no then in " + ptpid)
                    if "when" not in permutation_body:
                        print(" no when in " + ptpid)

                    # print("::: "+ptpid)
                    # strip from beginning up to including the last "/"
                    permutation_body["stripped_permutation_tp_id"] = ptpid[ptpid.rindex("/")+1:]

                    # use the stripped_permutation_tp_id as text of the link
                    permutation_body["robotlink"] = "<a href=\""+fullurl+"\">" + permutation_body["stripped_permutation_tp_id"] + "</a>"
                    permutation_body["robotlink"] = (
                            "<a href=\""+fullurl+"\">" + permutation_body["stripped_permutation_tp_id"] + "</a>")

                    # So basically we append to the permutations a new dict that is the | union merge of the
                    # items of the template merged with the items of the concatenation of {**permutation_metadata, **permutation_body}
                    # For this last concatenation we use the unpacking python operator ** that strips the container dict from both
                    #permutations.append(dict(permutation_template.items() | {**permutation_metadata, **permutation_body}.items()))
                    # items of the template merged with the items of the concatenation of {**permutation_metadata,
                    # **permutation_body}. For this last concatenation we use the unpacking python operator ** that
                    # strips the container dict from both permutations.append(dict(permutation_template.items() |
                    # {**permutation_metadata, **permutation_body}.items()))
                    a = {**permutation_metadata, **permutation_body}
                    unpacked_testcase = {**permutation_template, **a}
                    # Perform a check on the clauses that must be equal to the
@@ -177,25 +190,24 @@ if __name__ == "__main__":
                    exit(1)
        else:
            # there is no "sub" test_cases, it likely is a failed parsing
            if testcase["error_while_parsing"] == False:
            if not testcase["error_while_parsing"]:
                print("PARSING NOT FAILED, BUT no permutations??")
                exit(1)





    with open("permutations.json", 'w') as fp:
    permutations_file = join(basedir, "doc", "results", "permutations.json")
    with open(permutations_file, 'w') as fp:
        json.dump(obj=permutations, indent=2, fp=fp)

    # The URL of the REST endpoint of the NoSQL database
    dburl = 'http://ec2-18-153-159-20.eu-central-1.compute.amazonaws.com:5555/fromrobot'
    requests.delete(dburl)
    delete(dburl)

    # Set the appropriate headers for JSON, if required by the endpoint
    headers = {
        'Content-Type': 'application/json',
        'Accept': 'application/json',
        # Include any other headers the API requires
    }

    # Make the POST request
    response = requests.post(dburl, data=json.dumps(permutations), headers=headers)
    response = post(dburl, data=json.dumps(permutations), headers=headers)