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

Unified Diff: tests/test_translations.py

Issue 29647615: Noissue - Refactor translation tests to validate sync (Closed)
Patch Set: Created Dec. 22, 2017, 3:43 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 | « tests/crowdin_mock_api.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/test_translations.py
===================================================================
--- a/tests/test_translations.py
+++ b/tests/test_translations.py
@@ -1,52 +1,38 @@
import os
+import sys
+import runpy
import shutil
import pytest
+import zipfile
from wsgi_intercept import urllib3_intercept
from wsgi_intercept import add_wsgi_intercept
from wsgi_intercept import remove_wsgi_intercept
from crowdin_mock_api import app
-from cms.bin import translate
@pytest.fixture(scope='module')
-def expect_requests():
- return [
- ('info?key=test_key&json=1', ''),
- ('supported-languages?key=test_key&json=1', ''),
- ('add-file?key=test_key&json=1', 'translate.json'),
- ('upload-translation?key=test_key&json=1', 'test_sample'),
- ('delete-file?key=test_key&json=1', 'translate.json'),
- ('delete-file?key=test_key&json=1', 'translate.json'),
- ('delete-directory?key=test_key&json=1', ''),
- ('delete-directory?key=test_key&json=1', ''),
- ('export?key=test_key&json=1', ''),
- ('download/all.zip?key=test_key', ''),
- ]
-
-
-@pytest.fixture(scope='module')
-def make_crowdin_zip(temp_site):
+def api_zip(temp_site, request):
Vasily Kuznetsov 2018/01/02 15:10:04 Am I right that the purpose of this fixture is to
Jon Sonesen 2018/01/05 10:27:07 No, this generated the zips that the test validate
Vasily Kuznetsov 2018/01/05 14:30:16 Ok, I see. But then I'm not sure what this test is
zip_name = os.path.join('tests', 'all')
input_dir = os.path.join(temp_site, 'locales')
shutil.make_archive(zip_name, 'zip', input_dir)
- yield None
+ yield zipfile.ZipFile(zip_name + '.zip')
os.remove(zip_name + '.zip')
+ return
@pytest.fixture()
def make_intercept(scope='module'):
host = 'api.crowdin.com'
port = 443
urllib3_intercept.install()
add_wsgi_intercept(host, port, lambda: app.wsgi_app)
yield None
remove_wsgi_intercept()
-def test_sync(temp_site, make_intercept, make_crowdin_zip, expect_requests):
- translate.crowdin_sync(temp_site, 'test_key')
- for (url, data), (expect_url, expect_data) in zip(app.request_log,
- expect_requests):
- assert expect_url in url
- assert expect_data in data
+def test_sync(temp_site, make_intercept, api_zip):
+ sys.argv = [None, temp_site, 'test_key']
+ runpy.run_module('cms.bin.translate', run_name='__main__')
+ for locale in [os.path.dirname(x) for x in api_zip.namelist()]:
+ assert locale in os.listdir(os.path.join(temp_site, 'locales'))
Vasily Kuznetsov 2018/01/02 15:10:04 I get an error here: def test_sync(temp_site,
Jon Sonesen 2018/01/05 10:27:07 odd, i dont, but will look into it
Vasily Kuznetsov 2018/01/05 14:30:16 I printed `api_zip.namelist()` in this test and it
« no previous file with comments | « tests/crowdin_mock_api.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld