From 2a7e457842c9bc6ab23de31a0b5d6a977adf4230 Mon Sep 17 00:00:00 2001 From: Elian Kraja Date: Tue, 5 Nov 2019 17:39:05 +0100 Subject: [PATCH] Adding MockServerLibrary to the dockerFile. Fixing running process --- extensions/mockserverlibrary.patch | 59 ++++++++++++++++++++++++++++++ scripts/docker/Dockerfile | 8 +++- scripts/run-all.bash | 6 +-- variables.txt | 10 ----- 4 files changed, 68 insertions(+), 15 deletions(-) create mode 100644 extensions/mockserverlibrary.patch delete mode 100644 variables.txt diff --git a/extensions/mockserverlibrary.patch b/extensions/mockserverlibrary.patch new file mode 100644 index 0000000..8097a9d --- /dev/null +++ b/extensions/mockserverlibrary.patch @@ -0,0 +1,59 @@ +diff --git a/src/MockServerLibrary/library.py b/src/MockServerLibrary/library.py +index a9e6227..7ba1eed 100644 +--- a/src/MockServerLibrary/library.py ++++ b/src/MockServerLibrary/library.py +@@ -66,6 +66,9 @@ class MockServerLibrary(object): + match_type = 'STRICT' if exact else 'ONLY_MATCHING_FIELDS' + req['body'] = {'type': body_type, 'json': json.dumps(body), 'matchType': match_type} + ++ if body_type is 'JSON_SCHEMA' and body: ++ req['body'] = {'type': body_type, 'json': json.dumps(body)} ++ + return req + + def create_mock_response(self, status_code, headers=None, body_type='JSON', body=None): +@@ -97,6 +100,42 @@ class MockServerLibrary(object): + + return rsp + ++ def create_mock_http_forward(self, path, delay=1, unit='SECONDS'): ++ """Creates a mock http override forward to be used by mockserver. ++ ++ Returns the http forward in a dictionary format. ++ ++ `path` is the new url where to forward the request ++ ++ `delay` is the delay of the forward action ++ ++ `unit` is the unit of the delay time (default "SECONDS") ++ """ ++ fwd = {} ++ fwd['httpRequest'] = {'path': path} ++ fwd['delay'] = {'timeUnit': unit, 'value': delay} ++ ++ return fwd ++ ++ def create_mock_expectation_with_http_forward(self, request, forward, count=1, unlimited=True): ++ """Creates a mock expectation with request and forward action to be used by mockserver. ++ ++ `request` is a mock request matcher in a dictionary format. ++ ++ `forward` is a mock forward in a dictionary format. ++ ++ `count` is the number of expected requests ++ ++ `unlimited` is a boolean value which, if enabled, allows unspecified number of ++ requests to reply to ++ """ ++ data = {} ++ data['httpRequest'] = request ++ data['httpOverrideForwardedRequest'] = forward ++ data['times'] = {'remainingTimes': int(count), 'unlimited': unlimited} ++ ++ self.create_mock_expectation_with_data(data) ++ + def create_mock_expectation(self, request, response, count=1, unlimited=True): + """Creates a mock expectation to be used by mockserver. + + + diff --git a/scripts/docker/Dockerfile b/scripts/docker/Dockerfile index d770424..6b9bf39 100644 --- a/scripts/docker/Dockerfile +++ b/scripts/docker/Dockerfile @@ -13,7 +13,7 @@ ARG ssh_prv_key RUN DEBIAN_FRONTEND=noninteractive apt update \ - && apt install python3 -y \ + && apt install python3 git -y \ && apt install python3-pip -y \ && apt install openssh-server -y \ && DEBIAN_FRONTEND=noninteractive apt-get autoremove --purge -y \ @@ -42,7 +42,11 @@ RUN pip3 install robotframework RUN DEBIAN_FRONTEND=noninteractive \ && cd /home/etsi/dev/robot \ && pip3 install -r requirements.txt \ - && chmod +x /home/etsi/dev/robot/scripts/* + && chmod +x /home/etsi/dev/robot/scripts/* \ + && git clone https://github.com/etsi-cti-admin/robotframework-mockserver \ + && cd robotframework-mockserver \ + && patch -p1 < ../extensions/mockserverlibrary.patch \ + && python3 -m pip install -e . CMD tail -f /dev/null diff --git a/scripts/run-all.bash b/scripts/run-all.bash index 38edbc4..793febd 100755 --- a/scripts/run-all.bash +++ b/scripts/run-all.bash @@ -23,15 +23,15 @@ if [ "${ERRORS}" -eq 0 ]; then fi -if [ ! -z logs/errors.log ]; then +if [ -f logs/errors.log ]; then cat logs/errors.log fi -if [ ! -z logs/failures.log ]; then +if [ -f logs/failures.log ]; then cat logs/failures.log fi -if [ ! -z logs/erros.log ] || [ ! -z logs.failures.log ]; then +if [ -f logs/erros.log ] || [ -f logs.failures.log ]; then echo "Errors are found. Job failed" exit 1 fi diff --git a/variables.txt b/variables.txt deleted file mode 100644 index 79de30b..0000000 --- a/variables.txt +++ /dev/null @@ -1,10 +0,0 @@ -*** Variables *** - -MEC_SERVER_SCHEMA = "http" -MEC_SERVER_HOST = "localhost" -MEC_SERVER_PORT = 8000 -MEC_SERVER_SSL_VERITY = "false" - -MEC_SERVER_IUT = "{}://{}:{}".format(MEC_SERVER_SCHEMA, MEC_SERVER_HOST, MEC_SERVER_PORT) - -JSONS_SCHEMAS = "schemas" -- GitLab