Index: tests/crowdin_mock_api.py |
=================================================================== |
--- a/tests/crowdin_mock_api.py |
+++ b/tests/crowdin_mock_api.py |
@@ -1,97 +1,61 @@ |
+import os |
+ |
from flask import Flask, send_from_directory, jsonify, request |
-app = Flask(__name__) |
-app.request_log = [] |
+app = Flask('mock_api') |
+ |
+ |
+def load(rootdir, zipdir): |
+ app.request_log = [] |
+ app.config['zipdir'] = zipdir |
+ app.config['info'] = {'files': [], 'languages': []} |
+ app.config['supported_languages'] = [] |
+ |
+ for root, locales, files in os.walk(rootdir): |
+ for locale in locales: |
+ files = [] |
+ app.config['supported_languages'].append({'crowdin_code': locale}) |
+ app.config['info']['languages'].append({ |
+ 'code': locale, |
+ 'can_translate': 1, |
+ 'can_approve': 1, |
+ }) |
+ |
+ for translations in os.listdir(os.path.join(root, locale)): |
+ files.append({'name': translations, 'node_type': 'file'}) |
+ |
+ app.config['info']['files'].append({ |
+ 'name': locale, |
+ 'files': files, |
+ 'node_type': 'directory', |
+ }) |
+ |
+ return app |
@app.before_request |
def log_request_info(): |
- log = (request.url, str(request.get_data())) |
- app.request_log.append(log) |
+ app.request_log.append((request.url, str(request.get_data()))) |
@app.route('/api/project/test/info', methods=['GET']) |
def info(): |
- return jsonify( |
- { |
- 'languages': [ |
- { |
- 'name': 'German', |
- 'code': 'de', |
- 'can_translate': 1, |
- 'can_approve': 1, |
+ return jsonify(app.config['info']) |
- }, |
- { |
- 'name': 'English', |
- 'code': 'en', |
- 'can_translate': 1, |
- 'can_approve': 1, |
- |
- }, |
- ], |
- 'files': [ |
- { |
- 'node_type': 'directory', |
- 'name': 'en', |
- 'files': [ |
- { |
- 'node_type': 'file', |
- 'name': 'translate.json', |
- 'created': '2016-09-26 08:30:07', |
- 'last_updated': '2016-09-26 08:30:08', |
- 'last_accessed': None, |
- 'last_revision': '1' |
- }, |
- ] |
- }, |
- { |
- 'node_type': 'directory', |
- 'name': 'de', |
- 'files': [ |
- { |
- 'node_type': 'file', |
- 'name': 'translate.json', |
- 'created': '2016-09-26 08:30:07', |
- 'last_updated': '2016-09-26 08:30:08', |
- 'last_accessed': None, |
- 'last_revision': '1' |
- } |
- ] |
- } |
- ] |
- } |
- ) |
+@app.route('/api/project/test/edit-project', methods=['POST']) |
+def edit(): |
+ return jsonify() |
@app.route('/api/project/test/supported-languages', methods=['GET']) |
def supported_langs(): |
- return jsonify( |
- [ |
- { |
- 'name': 'German', |
- 'crowdin_code': 'de', |
- 'editor_code': 'de', |
- 'iso_639_1': 'de', |
- 'iso_639_3': 'deu', |
- 'locale': 'de-DE' |
- }, |
- { |
- 'name': 'English', |
- 'crowdin_code': 'en', |
- 'editor_code': 'en', |
- 'iso_639_1': 'en', |
- 'iso_639_3': 'eng', |
- 'locale': 'en-US' |
- }, |
- ] |
- ) |
+ return jsonify(app.config['supported_languages']) |
@app.route('/api/project/test/add-file', methods=['POST']) |
def add_file(): |
app.string = request.get_data() |
return jsonify() |
@@ -112,9 +76,9 @@ |
@app.route('/api/project/test/export', methods=['GET']) |
def export(): |
return jsonify({'success': {'status': 'skipped'}}) |
@app.route('/api/project/test/download/all.zip', methods=['GET']) |
def get_zip(): |
- return send_from_directory('', 'all.zip') |
+ return send_from_directory(app.config['zipdir'], 'all.zip') |