mirror of
https://github.com/webrecorder/pywb.git
synced 2025-03-15 00:03:28 +01:00
- Split wombat and auto-fetch worker into two files (proxy mode and non-proxy mode) - Renamed preservationWorker to autoFetchWorker in order to better convey what it does - Root config file control over including wombat and auto-fetch worker in proxy or non-proxy mode - Added additional proxy mode + auto-fetch worker only route for fetching the auto-fetch worker code nicely for CORS - templateview: add 'tobool' formatter to more cleanly format python bools to JS 'true'/'false' - proxy options: config and command line: 'use_auto_fetch_worker' and '--proxy-with-auto-fetch' 'use_wombat' and '--proxy-with-wombat' - head_insert.html: only include wombat in proxy mode when use_wombat or use_auto_fetch_worker are set. - wombatProxyMode.js: slimmed down wombat for proxy mode only including auto-fetch support. - more consistent naming: rename 'preserveWorker' and 'autoArchive' to 'auto-fetch' Updated tests: - test_wbrequestresponse.py: added tests covering constructor defaults, _init_derived, options_response, json_response, encode_stream, text_stream - test_auto_colls.py: fixed broken test test_more_custom_templates, reason using ujson now not json so spacing was off - test_proxy.py: updated existing tests to reflect splitting wombat into proxy and non-proxy mode, added tests covering auto-fetch worker specific endpoints in proxy mode removed duplicate addons key in .travis.yml - test_cli.py: updated to properly test the cli with these changes added ultrajon dep to tests_require in setup.py to reflect its usage by wbrequestresponse.py Fully documented: - cli.py - frontendapp.py - templateview.py - wbrequestresponse.py Removed duplicate addons key in .travis.yml Added ultrajson dependency to tests_require in setup.py to reflect its usage by wbrequestresponse.py Fixes #371
45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
import os
|
|
from mock import patch
|
|
|
|
import pytest
|
|
|
|
from pywb.apps.cli import wayback
|
|
from .base_config_test import CollsDirMixin, BaseTestClass
|
|
|
|
|
|
# ============================================================================
|
|
def _run_patch(self):
|
|
return self
|
|
|
|
|
|
@patch('pywb.apps.cli.ReplayCli.run', _run_patch)
|
|
class TestProxyCLIConfig(CollsDirMixin, BaseTestClass):
|
|
def test_proxy_cli(self):
|
|
res = wayback(['--proxy', 'test'])
|
|
exp = {'ca_file_cache': os.path.join('proxy-certs', 'pywb-ca.pem'),
|
|
'ca_name': 'pywb HTTPS Proxy CA',
|
|
'coll': 'test',
|
|
'recording': False,
|
|
'use_wombat': False,
|
|
'use_auto_fetch_worker': False}
|
|
assert res.extra_config['proxy'] == exp
|
|
|
|
def test_proxy_cli_rec(self):
|
|
res = wayback(['--proxy', 'test', '--proxy-record'])
|
|
assert res.extra_config['proxy']['recording'] == True
|
|
assert res.extra_config['collections']['live'] == {'index': '$live'}
|
|
|
|
def test_proxy_cli_err_coll(self):
|
|
with pytest.raises(Exception):
|
|
res = wayback(['--proxy', 'test/foo'])
|
|
|
|
def test_all_cli(self):
|
|
res = wayback(['--all-coll', 'all'])
|
|
assert res.extra_config['collections']['all'] == '$all'
|
|
|
|
def test_live_all_cli(self):
|
|
res = wayback(['--all-coll', 'all', '--live'])
|
|
assert res.extra_config['collections'] == {'live': {'index': '$live'},
|
|
'all': '$all'}
|
|
|