| LEFT | RIGHT |
| 1 from __future__ import unicode_literals | 1 from __future__ import unicode_literals |
| 2 | 2 |
| 3 import os | 3 import os |
| 4 import pytest | 4 import pytest |
| 5 import shutil | 5 import shutil |
| 6 import json | |
| 7 | 6 |
| 8 from wsgi_intercept import add_wsgi_intercept | 7 pytest_plugins = [ |
| 9 from wsgi_intercept import remove_wsgi_intercept | 8 'tests.xtm_conftest', |
| 10 from wsgi_intercept import requests_intercept | 9 ] |
| 11 | |
| 12 from tests.xtm_mock_api import get_configured_app | |
| 13 from cms.sources import FileSource | |
| 14 | 10 |
| 15 _INTERCEPT_PORT = 443 | 11 _INTERCEPT_PORT = 443 |
| 16 _INTERCEPT_HOST = 'wstest2.xtm-intl.com' | 12 _INTERCEPT_HOST = 'wstest2.xtm-intl.com' |
| 17 | 13 |
| 18 ROOTPATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) | 14 ROOTPATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) |
| 19 | 15 |
| 20 | 16 |
| 21 @pytest.fixture(scope='session') | 17 @pytest.fixture(scope='session') |
| 22 def temp_site(tmpdir_factory): | 18 def temp_site(tmpdir_factory): |
| 23 out_dir = tmpdir_factory.mktemp('temp_out') | 19 out_dir = tmpdir_factory.mktemp('temp_out') |
| 24 site_dir = out_dir.join('test_site').strpath | 20 site_dir = out_dir.join('test_site').strpath |
| 25 | 21 |
| 26 shutil.copytree(os.path.join(ROOTPATH, 'tests', 'test_site'), site_dir) | 22 shutil.copytree(os.path.join(ROOTPATH, 'tests', 'test_site'), site_dir) |
| 27 yield site_dir | 23 yield site_dir |
| 28 | |
| 29 | |
| 30 @pytest.fixture(scope='session') | |
| 31 def temp_site_invalid_locales(tmpdir_factory): | |
| 32 out_dir = tmpdir_factory.mktemp('temp_out_invalid_locales') | |
| 33 site_dir = out_dir.join('test_site').strpath | |
| 34 | |
| 35 shutil.copytree(os.path.join(ROOTPATH, 'tests', 'test_site'), site_dir) | |
| 36 invalid_locale = site_dir.join('locales').mktemp('foo') | |
| 37 invalid_locale.join('test.json').write(json.dumps({'a': 'b'})) | |
| 38 yield site_dir | |
| 39 | |
| 40 | |
| 41 @pytest.fixture(scope='session') | |
| 42 def temp_site_invalid_project(tmpdir_factory): | |
| 43 out_dir = tmpdir_factory.mktemp('temp_out_invalid') | |
| 44 site_dir = out_dir.join('test_site').strpath | |
| 45 | |
| 46 shutil.copytree(os.path.join(ROOTPATH, 'tests', 'test_site'), site_dir) | |
| 47 with FileSource(str(site_dir)) as fs: | |
| 48 fs.write_to_config('XTM', 'project_id', '1111') | |
| 49 | |
| 50 yield site_dir | |
| 51 | |
| 52 | |
| 53 @pytest.fixture(scope='session') | |
| 54 def temp_site_valid_project(tmpdir_factory): | |
| 55 out_dir = tmpdir_factory.mktemp('temp_out_valid') | |
| 56 site_dir = out_dir.join('test_site').strpath | |
| 57 | |
| 58 shutil.copytree(os.path.join(ROOTPATH, 'tests', 'test_site'), site_dir) | |
| 59 with FileSource(str(site_dir)) as fs: | |
| 60 fs.write_to_config('XTM', 'project_id', '1234') | |
| 61 | |
| 62 yield site_dir | |
| 63 | |
| 64 | |
| 65 @pytest.fixture(scope='session') | |
| 66 def temp_site_no_target_files(tmpdir_factory): | |
| 67 out_dir = tmpdir_factory.mktemp('temp_out_no_targets') | |
| 68 site_dir = out_dir.join('test_site').strpath | |
| 69 | |
| 70 shutil.copytree(os.path.join(ROOTPATH, 'tests', 'test_site'), site_dir) | |
| 71 with FileSource(str(site_dir)) as fs: | |
| 72 fs.write_to_config('XTM', 'project_id', '9999') | |
| 73 | |
| 74 yield site_dir | |
| 75 | |
| 76 | |
| 77 @pytest.fixture | |
| 78 def intercept(): | |
| 79 app = get_configured_app() | |
| 80 requests_intercept.install() | |
| 81 add_wsgi_intercept(_INTERCEPT_HOST, _INTERCEPT_PORT, lambda: app) | |
| 82 yield app | |
| 83 remove_wsgi_intercept() | |
| 84 | |
| 85 | |
| 86 @pytest.fixture | |
| 87 def intercept_populated(): | |
| 88 files = [ | |
| 89 { | |
| 90 'name': 'file.json', | |
| 91 'data': json.dumps({'foo': 'bar', 'faz': 'baz'}), | |
| 92 }, | |
| 93 { | |
| 94 'name': '___foo___file-utf8.json', | |
| 95 'data': json.dumps({'foo': '\u1234'}), | |
| 96 }, | |
| 97 ] | |
| 98 targets = ['de_DE'] | |
| 99 app = get_configured_app(files=files, target_langs=targets) | |
| 100 requests_intercept.install() | |
| 101 add_wsgi_intercept(_INTERCEPT_HOST, _INTERCEPT_PORT, lambda: app) | |
| 102 yield app | |
| 103 remove_wsgi_intercept() | |
| 104 | |
| 105 | |
| 106 @pytest.fixture | |
| 107 def intercept_too_many_targets(): | |
| 108 targets = ['de_DE', 'es_ES'] | |
| 109 app = get_configured_app(target_langs=targets) | |
| 110 requests_intercept.install() | |
| 111 add_wsgi_intercept(_INTERCEPT_HOST, _INTERCEPT_PORT, lambda: app) | |
| 112 yield app | |
| 113 remove_wsgi_intercept() | |
| LEFT | RIGHT |