oggit/docker/test/mock_api.py

77 lines
2.4 KiB
Python

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/<repo> - Creación de repositorio
@app.route('/repositories/<repo>', methods=['PUT'])
def create_repo(repo):
# Mock de respuesta de repositorio ya existente
return jsonify({"status": "Repository already exists"}), 200
# Simulación de /repositories/<repo>/sync - Sincronización de repositorio
@app.route('/repositories/<repo>/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/<repo>/backup - Realización de backup
@app.route('/repositories/<repo>/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/<repo> - Eliminación de repositorio
@app.route('/repositories/<repo>', methods=['DELETE'])
def delete_repo(repo):
# Mock de respuesta exitosa
return jsonify({"status": "Repository deleted"}), 200
# Simulación de /repositories/<repo>/branches - Obtención de branches del repositorio
@app.route('/repositories/<repo>/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)