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

Unified Diff: tests/crowdin_mock_api.py

Issue 29355396: Issue 4380 - Add Mock Crowdin API and Sync Test (Closed)
Patch Set: formatting fix Created Oct. 25, 2016, 8:15 a.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 | « tests/conftest.py ('k') | tests/expected_output/translate » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/crowdin_mock_api.py
===================================================================
new file mode 100644
--- /dev/null
+++ b/tests/crowdin_mock_api.py
@@ -0,0 +1,120 @@
+from flask import Flask, send_from_directory, jsonify, request
+
+app = Flask(__name__)
+app.request_log = []
+
+
+@app.before_request
+def log_request_info():
+ log = (request.url, str(request.get_data()))
+ app.request_log.append(log)
+
+
+@app.route('/api/project/test/info', methods=['GET'])
+def info():
+ return jsonify(
+ {
+ 'languages': [
+ {
+ 'name': 'German',
+ 'code': 'de',
+ 'can_translate': 1,
+ 'can_approve': 1,
+
+ },
+ {
+ '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/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'
+ },
+ ]
+ )
+
+
+@app.route('/api/project/test/add-file', methods=['POST'])
+def add_file():
+ app.string = request.get_data()
+ return jsonify()
+
+
+@app.route('/api/project/test/upload-translation', methods=['POST'])
+def upload_translation():
+ return jsonify()
+
+
+@app.route('/api/project/test/delete-directory', methods=['POST'])
+def delete_directory():
+ return jsonify()
+
+
+@app.route('/api/project/test/delete-file', methods=['POST'])
+def delete_file():
+ return jsonify()
+
+
+@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')
« no previous file with comments | « tests/conftest.py ('k') | tests/expected_output/translate » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld