From 1201a8b0f264d7936b139210afc3894c0a24dfe9 Mon Sep 17 00:00:00 2001 From: Nicolas Arenas Date: Mon, 16 Sep 2024 17:42:28 +0200 Subject: [PATCH] Add mock api for testing dockerfile --- Dockerfile | 4 --- docker/test/mock_api.py | 76 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+), 4 deletions(-) create mode 100644 docker/test/mock_api.py diff --git a/Dockerfile b/Dockerfile index 832c3e3..2da5983 100644 --- a/Dockerfile +++ b/Dockerfile @@ -42,10 +42,6 @@ COPY src/ src/ COPY config/ config/ COPY composer.json . - - - - # Install dependencies RUN composer install COPY .env .env diff --git a/docker/test/mock_api.py b/docker/test/mock_api.py new file mode 100644 index 0000000..533cbe3 --- /dev/null +++ b/docker/test/mock_api.py @@ -0,0 +1,76 @@ +from flask import Flask, jsonify, request + +app = Flask(__name__) + +# Simulación de /repositories - Obtención de lista de repositorios +@app.route('/repositories', methods=['GET']) +def get_repositories(): + # Mock de respuesta exitosa + return jsonify({ + "repositories": ["repo1", "repo2", "repo3"] + }), 200 + +# Simulación de /repositories/ - Creación de repositorio +@app.route('/repositories/', methods=['PUT']) +def create_repo(repo): + # Mock de respuesta de repositorio ya existente + return jsonify({"status": "Repository already exists"}), 200 + +# Simulación de /repositories//sync - Sincronización de repositorio +@app.route('/repositories//sync', methods=['POST']) +def sync_repo(repo): + data = request.json + dest_repo = data["remote_repository"] + + # Mock de respuesta exitosa + return jsonify({ + "status": "Started synchronization", + "repository": repo, + "destination_repository": dest_repo + }), 200 + +# Simulación de /repositories//backup - Realización de backup +@app.route('/repositories//backup', methods=['POST']) +def backup_repo(repo): + data = request.json + dest_server = data["ssh_server"] + dest_user = data["ssh_user"] + dest_file = data["filename"] + + # Mock de respuesta exitosa + return jsonify({ + "status": "Started backup", + "repository": repo, + "ssh_server": dest_server, + "ssh_user": dest_user, + "filename": dest_file + }), 200 + +# Simulación de /repositories/ - Eliminación de repositorio +@app.route('/repositories/', methods=['DELETE']) +def delete_repo(repo): + # Mock de respuesta exitosa + return jsonify({"status": "Repository deleted"}), 200 + +# Simulación de /repositories//branches - Obtención de branches del repositorio +@app.route('/repositories//branches', methods=['GET']) +def get_repository_branches(repo): + # Mock de respuesta con branches de ejemplo + return jsonify({ + "branches": ["main", "dev", "feature-xyz"] + }), 200 + +# Simulación de la verificación de salud del servicio +@app.route('/health', methods=['GET']) +def health_check(): + return jsonify({"status": "OK"}), 200 + +# Simulación de la raíz de la API +@app.route('/', methods=['GET']) +def home(): + return jsonify({ + "message": "OpenGnsys Git API Mock" + }), 200 + +if __name__ == '__main__': + app.run(host='0.0.0.0', port=5001, debug=True)