Loading extensions/mockserverlibrary.patch 0 → 100644 +59 −0 Original line number Diff line number Diff line 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. scripts/docker/Dockerfile +6 −2 Original line number Diff line number Diff line Loading @@ -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 \ Loading Loading @@ -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 Loading scripts/run-all.bash +3 −3 Original line number Diff line number Diff line Loading @@ -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 Loading variables.txtdeleted 100644 → 0 +0 −10 Original line number Diff line number Diff line *** 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" Loading
extensions/mockserverlibrary.patch 0 → 100644 +59 −0 Original line number Diff line number Diff line 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.
scripts/docker/Dockerfile +6 −2 Original line number Diff line number Diff line Loading @@ -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 \ Loading Loading @@ -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 Loading
scripts/run-all.bash +3 −3 Original line number Diff line number Diff line Loading @@ -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 Loading
variables.txtdeleted 100644 → 0 +0 −10 Original line number Diff line number Diff line *** 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"