Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: tests/crowdin_mock_api.py

Issue 29693633: Noissue - Add crowdin api config support (Closed) Base URL: https://hg.adblockplus.org/cms
Patch Set: Address PS6 Created March 9, 2018, 7:21 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tests/test_translations.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/crowdin_mock_api.py
===================================================================
--- a/tests/crowdin_mock_api.py
+++ b/tests/crowdin_mock_api.py
@@ -1,97 +1,59 @@
+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 +74,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')
« no previous file with comments | « no previous file | tests/test_translations.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld