| 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') |