1
0
mirror of https://github.com/webrecorder/pywb.git synced 2025-03-15 00:03:28 +01:00
pywb/tests/base_config_test.py
Ilya Kreymer 97182b71b7 refactor:
- merge pywb.urlrewrite -> pywb.rewrite, remove obsolete stuff (rewrite_content.py, rewrite_live.py, dsrules.py)
- move wbrequestresponse -> pywb.apps
- move pywb.webapp.handlers -> pywb.apps.static_handler
- remove pywb.webapp, pywb.framework packages
- disable old header_rewriter, content_rewriter tests
- finish renaming from previous warcserver refactor
- all other tests passing!
2017-05-23 19:08:29 -07:00

64 lines
2.2 KiB
Python

from gevent import monkey; monkey.patch_all(thread=False)
import pytest
import webtest
from pywb.warcserver.test.testutils import BaseTestClass
from pywb.apps.frontendapp import FrontEndApp
import os
@pytest.fixture(params=['mp_', ''], ids=['frame', 'non-frame'])
def fmod(request):
return request.param
@pytest.fixture(params=['mp_', ''], ids=['frame', 'non-frame'])
def fmod_sl(request):
return request.param + '/' if request.param else ''
# ============================================================================
class BaseConfigTest(BaseTestClass):
@classmethod
def get_test_app(cls, config_file, override=None):
config_file = os.path.join(os.path.dirname(os.path.realpath(__file__)), config_file)
return webtest.TestApp(FrontEndApp(config_file=config_file, custom_config=override))
@classmethod
def setup_class(cls, config_file, include_non_frame=True):
super(BaseConfigTest, cls).setup_class()
cls.testapp = cls.get_test_app(config_file)
if include_non_frame:
cls.testapp_non_frame = cls.get_test_app(config_file,
override={'framed_replay': False})
def _assert_basic_html(self, resp):
assert resp.status_int == 200
assert resp.content_type == 'text/html'
assert resp.content_length > 0
def _assert_basic_text(self, resp):
assert resp.status_int == 200
assert resp.content_type == 'text/plain'
assert resp.content_length > 0
def get(self, url, fmod, *args, **kwargs):
app = self.testapp if fmod else self.testapp_non_frame
return app.get(url.format(fmod), *args, **kwargs)
def post(self, url, fmod, *args, **kwargs):
app = self.testapp if fmod else self.testapp_non_frame
return app.post(url.format(fmod), *args, **kwargs)
def post_json(self, url, fmod, *args, **kwargs):
app = self.testapp if fmod else self.testapp_non_frame
return app.post_json(url.format(fmod), *args, **kwargs)
def head(self, url, fmod, *args, **kwargs):
app = self.testapp if fmod else self.testapp_non_frame
return app.head(url.format(fmod), *args, **kwargs)