mirror of
https://github.com/webrecorder/pywb.git
synced 2025-03-24 06:59:52 +01:00
rename for 0.9.0:
rename default templates package from ui/* templates to templates/* rename default subdirs: warcs -> archive, cdx -> indexes
This commit is contained in:
parent
19b8650891
commit
2f6780a576
@ -6,8 +6,8 @@
|
|||||||
collections_root: collections
|
collections_root: collections
|
||||||
|
|
||||||
paths:
|
paths:
|
||||||
archive_paths: warcs
|
archive_paths: archive
|
||||||
index_paths: cdx
|
index_paths: indexes
|
||||||
static_path: static
|
static_path: static
|
||||||
|
|
||||||
templates_dir: templates
|
templates_dir: templates
|
||||||
@ -28,20 +28,20 @@ paths:
|
|||||||
proxy_cert_download_html: proxy_cert_download.html
|
proxy_cert_download_html: proxy_cert_download.html
|
||||||
proxy_select_html: proxy_select.html
|
proxy_select_html: proxy_select.html
|
||||||
|
|
||||||
head_insert_html: ui/head_insert.html
|
head_insert_html: templates/head_insert.html
|
||||||
frame_insert_html: ui/frame_insert.html
|
frame_insert_html: templates/frame_insert.html
|
||||||
banner_html: banner.html
|
banner_html: banner.html
|
||||||
|
|
||||||
home_html: ui/index.html
|
home_html: templates/index.html
|
||||||
|
|
||||||
query_html: ui/query.html
|
query_html: templates/query.html
|
||||||
search_html: ui/search.html
|
search_html: templates/search.html
|
||||||
|
|
||||||
error_html: ui/error.html
|
error_html: templates/error.html
|
||||||
not_found_html: ui/not_found.html
|
not_found_html: templates/not_found.html
|
||||||
|
|
||||||
proxy_cert_download_html: ui/proxy_cert_download.html
|
proxy_cert_download_html: templates/proxy_cert_download.html
|
||||||
proxy_select_html: ui/proxy_select.html
|
proxy_select_html: templates/proxy_select.html
|
||||||
|
|
||||||
template_globals:
|
template_globals:
|
||||||
static_path: static/default
|
static_path: static/default
|
||||||
|
@ -35,7 +35,7 @@ class SearchPageWbUrlHandler(WbUrlHandler):
|
|||||||
self.response_class = WbResponse
|
self.response_class = WbResponse
|
||||||
|
|
||||||
if self.is_frame_mode:
|
if self.is_frame_mode:
|
||||||
html = config.get('frame_insert_html', 'ui/frame_insert.html')
|
html = config.get('frame_insert_html', 'templates/frame_insert.html')
|
||||||
self.frame_insert_view = (J2TemplateView.
|
self.frame_insert_view = (J2TemplateView.
|
||||||
create_template(html, 'Frame Insert'))
|
create_template(html, 'Frame Insert'))
|
||||||
|
|
||||||
|
@ -157,7 +157,7 @@ class HeadInsertView(J2TemplateView):
|
|||||||
def init_from_config(config):
|
def init_from_config(config):
|
||||||
view = config.get('head_insert_view')
|
view = config.get('head_insert_view')
|
||||||
if not view:
|
if not view:
|
||||||
html = config.get('head_insert_html', 'ui/head_insert.html')
|
html = config.get('head_insert_html', 'templates/head_insert.html')
|
||||||
|
|
||||||
if html:
|
if html:
|
||||||
banner_html = config.get('banner_html', 'banner.html')
|
banner_html = config.get('banner_html', 'banner.html')
|
||||||
|
6
setup.py
6
setup.py
@ -34,7 +34,7 @@ class PyTest(TestCommand):
|
|||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='pywb',
|
name='pywb',
|
||||||
version='0.9.0-beta',
|
version='0.9.0b',
|
||||||
url='https://github.com/ikreymer/pywb',
|
url='https://github.com/ikreymer/pywb',
|
||||||
author='Ilya Kreymer',
|
author='Ilya Kreymer',
|
||||||
author_email='ikreymer@gmail.com',
|
author_email='ikreymer@gmail.com',
|
||||||
@ -56,7 +56,7 @@ setup(
|
|||||||
'pywb.apps'
|
'pywb.apps'
|
||||||
],
|
],
|
||||||
package_data={
|
package_data={
|
||||||
'pywb': ['static/flowplayer/*', 'static/*.*', 'ui/*', '*.yaml'],
|
'pywb': ['static/flowplayer/*', 'static/*.*', 'templates/*', '*.yaml'],
|
||||||
},
|
},
|
||||||
data_files=[
|
data_files=[
|
||||||
('sample_archive/cdx', glob.glob('sample_archive/cdx/*')),
|
('sample_archive/cdx', glob.glob('sample_archive/cdx/*')),
|
||||||
@ -90,7 +90,7 @@ setup(
|
|||||||
cdx-indexer = pywb.warc.cdxindexer:main
|
cdx-indexer = pywb.warc.cdxindexer:main
|
||||||
live-rewrite-server = pywb.apps.live_rewrite_server:main
|
live-rewrite-server = pywb.apps.live_rewrite_server:main
|
||||||
proxy-cert-auth = pywb.framework.certauth:main
|
proxy-cert-auth = pywb.framework.certauth:main
|
||||||
wb-manager = pywb.manager.manager:main_wrap_exc
|
wayback-manager = pywb.manager.manager:main_wrap_exc
|
||||||
""",
|
""",
|
||||||
classifiers=[
|
classifiers=[
|
||||||
'Development Status :: 4 - Beta',
|
'Development Status :: 4 - Beta',
|
||||||
|
@ -17,6 +17,10 @@ from pytest import raises
|
|||||||
from mock import patch
|
from mock import patch
|
||||||
|
|
||||||
|
|
||||||
|
#=============================================================================
|
||||||
|
ARCHIVE_DIR = 'archive'
|
||||||
|
INDEX_DIR = 'indexes'
|
||||||
|
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
root_dir = None
|
root_dir = None
|
||||||
orig_cwd = None
|
orig_cwd = None
|
||||||
@ -40,14 +44,6 @@ def teardown_module():
|
|||||||
os.chdir(orig_cwd)
|
os.chdir(orig_cwd)
|
||||||
|
|
||||||
|
|
||||||
#=============================================================================
|
|
||||||
mock_input_value = ''
|
|
||||||
|
|
||||||
def mock_raw_input(*args):
|
|
||||||
global mock_input_value
|
|
||||||
return mock_input_value
|
|
||||||
|
|
||||||
|
|
||||||
#=============================================================================
|
#=============================================================================
|
||||||
class TestManagedColls(object):
|
class TestManagedColls(object):
|
||||||
def setup(self):
|
def setup(self):
|
||||||
@ -62,6 +58,9 @@ class TestManagedColls(object):
|
|||||||
for dir_ in dirlist:
|
for dir_ in dirlist:
|
||||||
assert os.path.isdir(os.path.join(base, dir_))
|
assert os.path.isdir(os.path.join(base, dir_))
|
||||||
|
|
||||||
|
def _get_sample_warc(self, name):
|
||||||
|
return os.path.join(get_test_dir(), 'warcs', name)
|
||||||
|
|
||||||
def test_create_first_coll(self):
|
def test_create_first_coll(self):
|
||||||
""" Test first collection creation, with all required dirs
|
""" Test first collection creation, with all required dirs
|
||||||
"""
|
"""
|
||||||
@ -73,12 +72,12 @@ class TestManagedColls(object):
|
|||||||
test = os.path.join(colls, 'test')
|
test = os.path.join(colls, 'test')
|
||||||
assert os.path.isdir(test)
|
assert os.path.isdir(test)
|
||||||
|
|
||||||
self._check_dirs(test, ['cdx', 'warcs', 'static', 'templates'])
|
self._check_dirs(test, [INDEX_DIR, ARCHIVE_DIR, 'static', 'templates'])
|
||||||
|
|
||||||
def test_add_warcs(self):
|
def test_add_warcs(self):
|
||||||
""" Test adding warc to new coll, check replay
|
""" Test adding warc to new coll, check replay
|
||||||
"""
|
"""
|
||||||
warc1 = os.path.join(get_test_dir(), 'warcs', 'example.warc.gz')
|
warc1 = self._get_sample_warc('example.warc.gz')
|
||||||
|
|
||||||
main(['add', 'test', warc1])
|
main(['add', 'test', warc1])
|
||||||
|
|
||||||
@ -89,7 +88,7 @@ class TestManagedColls(object):
|
|||||||
def test_another_coll(self):
|
def test_another_coll(self):
|
||||||
""" Test adding warc to a new coll, check replay
|
""" Test adding warc to a new coll, check replay
|
||||||
"""
|
"""
|
||||||
warc1 = os.path.join(get_test_dir(), 'warcs', 'example.warc.gz')
|
warc1 = self._get_sample_warc('example.warc.gz')
|
||||||
|
|
||||||
main(['init', 'foo'])
|
main(['init', 'foo'])
|
||||||
|
|
||||||
@ -102,8 +101,8 @@ class TestManagedColls(object):
|
|||||||
def test_add_more_warcs(self):
|
def test_add_more_warcs(self):
|
||||||
""" Test adding additional warcs, check replay of added content
|
""" Test adding additional warcs, check replay of added content
|
||||||
"""
|
"""
|
||||||
warc1 = os.path.join(get_test_dir(), 'warcs', 'iana.warc.gz')
|
warc1 = self._get_sample_warc('iana.warc.gz')
|
||||||
warc2 = os.path.join(get_test_dir(), 'warcs', 'example-extra.warc')
|
warc2 = self._get_sample_warc('example-extra.warc')
|
||||||
|
|
||||||
main(['add', 'test', warc1, warc2])
|
main(['add', 'test', warc1, warc2])
|
||||||
|
|
||||||
@ -127,15 +126,15 @@ class TestManagedColls(object):
|
|||||||
|
|
||||||
main(['init', 'nested'])
|
main(['init', 'nested'])
|
||||||
|
|
||||||
nested_root = os.path.join(self.root_dir, 'collections', 'nested', 'warcs')
|
nested_root = os.path.join(self.root_dir, 'collections', 'nested', ARCHIVE_DIR)
|
||||||
nested_a = os.path.join(nested_root, 'A')
|
nested_a = os.path.join(nested_root, 'A')
|
||||||
nested_b = os.path.join(nested_root, 'B', 'sub')
|
nested_b = os.path.join(nested_root, 'B', 'sub')
|
||||||
|
|
||||||
os.makedirs(nested_a)
|
os.makedirs(nested_a)
|
||||||
os.makedirs(nested_b)
|
os.makedirs(nested_b)
|
||||||
|
|
||||||
warc1 = os.path.join(get_test_dir(), 'warcs', 'iana.warc.gz')
|
warc1 = self._get_sample_warc('iana.warc.gz')
|
||||||
warc2 = os.path.join(get_test_dir(), 'warcs', 'example.warc.gz')
|
warc2 = self._get_sample_warc('example.warc.gz')
|
||||||
|
|
||||||
shutil.copy2(warc1, nested_a)
|
shutil.copy2(warc1, nested_a)
|
||||||
shutil.copy2(warc2, nested_b)
|
shutil.copy2(warc2, nested_b)
|
||||||
@ -146,7 +145,7 @@ class TestManagedColls(object):
|
|||||||
os.path.join(nested_b, 'example.warc.gz')
|
os.path.join(nested_b, 'example.warc.gz')
|
||||||
])
|
])
|
||||||
|
|
||||||
nested_cdx = os.path.join(self.root_dir, 'collections', 'nested', 'cdx', 'index.cdx')
|
nested_cdx = os.path.join(self.root_dir, 'collections', 'nested', INDEX_DIR, 'index.cdx')
|
||||||
with open(nested_cdx) as fh:
|
with open(nested_cdx) as fh:
|
||||||
nested_cdx_index = fh.read()
|
nested_cdx_index = fh.read()
|
||||||
|
|
||||||
@ -165,7 +164,7 @@ class TestManagedColls(object):
|
|||||||
to ensure equality of indexes
|
to ensure equality of indexes
|
||||||
"""
|
"""
|
||||||
# ensure merged index is same as full reindex
|
# ensure merged index is same as full reindex
|
||||||
coll_dir = os.path.join(self.root_dir, 'collections', 'test', 'cdx')
|
coll_dir = os.path.join(self.root_dir, 'collections', 'test', INDEX_DIR)
|
||||||
orig = os.path.join(coll_dir, 'index.cdx')
|
orig = os.path.join(coll_dir, 'index.cdx')
|
||||||
bak = os.path.join(coll_dir, 'index.bak')
|
bak = os.path.join(coll_dir, 'index.bak')
|
||||||
|
|
||||||
@ -263,7 +262,7 @@ class TestManagedColls(object):
|
|||||||
fh.write('config.yaml overriden search page: ')
|
fh.write('config.yaml overriden search page: ')
|
||||||
fh.write('{{ wbrequest.user_metadata | tojson }}\n')
|
fh.write('{{ wbrequest.user_metadata | tojson }}\n')
|
||||||
|
|
||||||
os.rename(os.path.join(self.root_dir, 'collections', 'test', 'cdx'),
|
os.rename(os.path.join(self.root_dir, 'collections', 'test', INDEX_DIR),
|
||||||
os.path.join(self.root_dir, 'collections', 'test', 'cdx2'))
|
os.path.join(self.root_dir, 'collections', 'test', 'cdx2'))
|
||||||
|
|
||||||
self._create_app()
|
self._create_app()
|
||||||
@ -297,7 +296,6 @@ class TestManagedColls(object):
|
|||||||
def test_add_template_input_yes(self):
|
def test_add_template_input_yes(self):
|
||||||
""" Test answer 'yes' to overwrite
|
""" Test answer 'yes' to overwrite
|
||||||
"""
|
"""
|
||||||
mock_raw_input_value = 'y'
|
|
||||||
main(['template', 'foo', '--add', 'query_html'])
|
main(['template', 'foo', '--add', 'query_html'])
|
||||||
|
|
||||||
|
|
||||||
@ -379,14 +377,14 @@ class TestManagedColls(object):
|
|||||||
def test_err_no_such_coll(self):
|
def test_err_no_such_coll(self):
|
||||||
""" Test error adding warc to non-existant collection
|
""" Test error adding warc to non-existant collection
|
||||||
"""
|
"""
|
||||||
warc1 = os.path.join(get_test_dir(), 'warcs', 'example.warc.gz')
|
warc1 = self._get_sample_warc('example.warc.gz')
|
||||||
|
|
||||||
with raises(IOError):
|
with raises(IOError):
|
||||||
main(['add', 'bar', warc1])
|
main(['add', 'bar', warc1])
|
||||||
|
|
||||||
def test_err_wrong_warcs(self):
|
def test_err_wrong_warcs(self):
|
||||||
warc1 = os.path.join(get_test_dir(), 'warcs', 'example.warc.gz')
|
warc1 = self._get_sample_warc('example.warc.gz')
|
||||||
invalid_warc = os.path.join(self.root_dir, 'collections', 'test', 'warcs', 'invalid.warc.gz')
|
invalid_warc = os.path.join(self.root_dir, 'collections', 'test', ARCHIVE_DIR, 'invalid.warc.gz')
|
||||||
|
|
||||||
# Empty warc list, argparse calls exit
|
# Empty warc list, argparse calls exit
|
||||||
with raises(SystemExit):
|
with raises(SystemExit):
|
||||||
@ -411,14 +409,14 @@ class TestManagedColls(object):
|
|||||||
self._create_app()
|
self._create_app()
|
||||||
|
|
||||||
# No WARCS
|
# No WARCS
|
||||||
warcs_path = os.path.join(colls, 'foo', 'warcs')
|
warcs_path = os.path.join(colls, 'foo', ARCHIVE_DIR)
|
||||||
shutil.rmtree(warcs_path)
|
shutil.rmtree(warcs_path)
|
||||||
|
|
||||||
with raises(IOError):
|
with raises(IOError):
|
||||||
main(['add', 'foo', 'somewarc'])
|
main(['add', 'foo', 'somewarc'])
|
||||||
|
|
||||||
# No CDX
|
# No CDX
|
||||||
cdx_path = os.path.join(colls, 'foo', 'cdx')
|
cdx_path = os.path.join(colls, 'foo', INDEX_DIR)
|
||||||
shutil.rmtree(cdx_path)
|
shutil.rmtree(cdx_path)
|
||||||
|
|
||||||
with raises(Exception):
|
with raises(Exception):
|
||||||
|
@ -70,31 +70,31 @@ archive_paths: ['./invalid/path/to/ignore/', './sample_archive/warcs/']
|
|||||||
# ==== Optional UI: HTML/Jinja2 Templates ====
|
# ==== Optional UI: HTML/Jinja2 Templates ====
|
||||||
|
|
||||||
# template for <head> insert into replayed html content
|
# template for <head> insert into replayed html content
|
||||||
head_insert_html: ui/head_insert.html
|
head_insert_html: templates/head_insert.html
|
||||||
|
|
||||||
# template to for 'calendar' query,
|
# template to for 'calendar' query,
|
||||||
# eg, a listing of captures in response to a ../*/<url>
|
# eg, a listing of captures in response to a ../*/<url>
|
||||||
#
|
#
|
||||||
# may be a simple listing or a more complex 'calendar' UI
|
# may be a simple listing or a more complex 'calendar' UI
|
||||||
# if omitted, will list raw cdx in plain text
|
# if omitted, will list raw cdx in plain text
|
||||||
query_html: ui/query.html
|
query_html: templates/query.html
|
||||||
|
|
||||||
# template for search page, which is displayed when no search url is entered
|
# template for search page, which is displayed when no search url is entered
|
||||||
# in a collection
|
# in a collection
|
||||||
search_html: ui/search.html
|
search_html: templates/search.html
|
||||||
|
|
||||||
# template for home page.
|
# template for home page.
|
||||||
# if no other route is set, this will be rendered at /, /index.htm and /index.html
|
# if no other route is set, this will be rendered at /, /index.htm and /index.html
|
||||||
home_html: ui/index.html
|
home_html: templates/index.html
|
||||||
|
|
||||||
|
|
||||||
# error page temlpate for may formatting error message and details
|
# error page temlpate for may formatting error message and details
|
||||||
# if omitted, a text response is returned
|
# if omitted, a text response is returned
|
||||||
error_html: ui/error.html
|
error_html: templates/error.html
|
||||||
|
|
||||||
|
|
||||||
# template for 404 not found error, may be customized per collection
|
# template for 404 not found error, may be customized per collection
|
||||||
not_found_html: ui/not_found.html
|
not_found_html: templates/not_found.html
|
||||||
|
|
||||||
# ==== Other Paths ====
|
# ==== Other Paths ====
|
||||||
|
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
collections:
|
collections:
|
||||||
all:
|
all:
|
||||||
- ./sample_archive/cdx/iana.cdx
|
- ./sample_archive/cdx/iana.cdx
|
||||||
- ./sample_archive/cdx/dupes.cdx
|
- ./sample_archive/cdx/dupes.cdx
|
||||||
- ./sample_archive/cdx/post-test.cdx
|
- ./sample_archive/cdx/post-test.cdx
|
||||||
|
|
||||||
older:
|
older:
|
||||||
- ./sample_archive/cdx/iana.cdx
|
- ./sample_archive/cdx/iana.cdx
|
||||||
|
|
||||||
newer:
|
newer:
|
||||||
- ./sample_archive/cdx/dupes.cdx
|
- ./sample_archive/cdx/dupes.cdx
|
||||||
|
|
||||||
archive_paths: ./sample_archive/warcs/
|
archive_paths: ./sample_archive/warcs/
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user