| LEFT | RIGHT |
| 1 import os | 1 import os |
| 2 import shutil | 2 import shutil |
| 3 import pytest | 3 import pytest |
| 4 from wsgi_intercept import urllib3_intercept | 4 from wsgi_intercept import urllib3_intercept |
| 5 from wsgi_intercept import add_wsgi_intercept | 5 from wsgi_intercept import add_wsgi_intercept |
| 6 from wsgi_intercept import remove_wsgi_intercept | 6 from wsgi_intercept import remove_wsgi_intercept |
| 7 | 7 |
| 8 from crowdin_mock_api import app | 8 from crowdin_mock_api import app |
| 9 from cms.bin import translate | 9 from cms.bin import translate |
| 10 | 10 |
| 11 | 11 |
| 12 @pytest.fixture(scope='module') | 12 @pytest.fixture(scope='module') |
| 13 def expect_requests(): | 13 def expect_requests(): |
| 14 return [ | 14 return [ |
| 15 ('info?key=test_key&json=1', ''), | 15 ('info?key=test_key&json=1', ''), |
| 16 ('supported-languages?key=test_key&json=1', ''), | 16 ('supported-languages?key=test_key&json=1', ''), |
| 17 ('add-file?key=test_key&json=1', 'translate.json'), | 17 ('add-file?key=test_key&json=1', 'translate.json'), |
| 18 ('upload-translation?key=test_key&json=1', 'test_sample'), | 18 ('upload-translation?key=test_key&json=1', 'test_sample'), |
| 19 ('delete-file?key=test_key&json=1', 'translate.json'), | 19 ('delete-file?key=test_key&json=1', 'translate.json'), |
| 20 ('delete-file?key=test_key&json=1', 'translate.json'), | 20 ('delete-file?key=test_key&json=1', 'translate.json'), |
| 21 ('delete-directory?key=test_key&json=1', 'de'), | 21 ('delete-directory?key=test_key&json=1', 'de'), |
| 22 ('delete-directory?key=test_key&json=1', 'en'), | 22 ('delete-directory?key=test_key&json=1', 'en'), |
| 23 ('export?key=test_key&json=1', ''), | 23 ('export?key=test_key&json=1', ''), |
| 24 ('download/all.zip?key=test_key', ''), | 24 ('download/all.zip?key=test_key', ''), |
| 25 ] | 25 ] |
| 26 | 26 |
| 27 | 27 |
| 28 @pytest.fixture(scope='module') | 28 @pytest.fixture(scope='module') |
| 29 def make_crowdin_zip(temp_site): | 29 def make_crowdin_zip(temp_site): |
| 30 zip_name = os.path.join('tests', 'all') | 30 zip_name = os.path.join('tests', 'all') |
| 31 input_dir = os.path.join(temp_site, 'locales') | 31 input_dir = os.path.join(temp_site, 'locales') |
| 32 shutil.make_archive(zip_name, 'zip', input_dir) | 32 shutil.make_archive(zip_name, 'zip', input_dir) |
| 33 yield None | 33 yield None |
| 34 os.remove(zip_name + '.zip') | 34 os.remove(zip_name + '.zip') |
| 35 | 35 |
| 36 | 36 |
| 37 @pytest.fixture() | 37 @pytest.fixture() |
| 38 def make_intercept(scope='module'): | 38 def make_intercept(scope='module'): |
| 39 host = 'api.crowdin.com' | 39 host = 'api.crowdin.com' |
| 40 port = 443 | 40 port = 443 |
| 41 urllib3_intercept.install() | 41 urllib3_intercept.install() |
| 42 add_wsgi_intercept(host, port, lambda: app.wsgi_app) | 42 add_wsgi_intercept(host, port, lambda: app.wsgi_app) |
| 43 yield None | 43 yield None |
| 44 remove_wsgi_intercept() | 44 remove_wsgi_intercept() |
| 45 | 45 |
| 46 | 46 |
| 47 def test_sync(temp_site, make_intercept, make_crowdin_zip, expect_requests): | 47 def test_sync(temp_site, make_intercept, make_crowdin_zip, expect_requests): |
| 48 translate.crowdin_sync(temp_site, 'test_key') | 48 translate.crowdin_sync(temp_site, 'test_key') |
| 49 for (url, data), (expect_url, expect_data) in zip( | 49 for (url, data), (expect_url, expect_data) in zip( |
| 50 app.request_log, | 50 app.request_log, |
| 51 expect_requests): | 51 expect_requests): |
| 52 assert expect_url in url | 52 assert expect_url in url |
| 53 assert expect_data in data | 53 assert expect_data in data |
| LEFT | RIGHT |