""" open/dulcinea/lib/common.py """ import os import os.path import sys from durus.utils import BytesIO, as_bytes from qp.lib.site import Site from qp.pub.common import get_publisher try: from sancho.utest import UTest except ImportError: UTest = object def set_test_environment(input_string='', site_name=None, **env): env.setdefault('SCRIPT_NAME', '') env.setdefault('PATH_INFO', '/') env.setdefault('SERVER_NAME', 'example.org') from qp.pub.hit import Hit session_key = "bogus_session_id" stdout = sys.stdout if site_name is None: site_name = os.environ.get('SITE') publisher = Site(site_name).get_publisher() cookies='%s="%s"' % (publisher.get_site().get_name(), session_key) env['HTTP_COOKIE'] = cookies hit = Hit(BytesIO(as_bytes(input_string)), env) sys.stdout = stdout publisher.set_hit(hit) session = publisher.create_session() publisher.get_sessions()[session_key] = session hit.set_session(session) def nothing(*args): return False publisher.commit = nothing publisher.abort = nothing publisher.is_email_enabled = nothing class CommonTest (UTest): site_name = None def __init__(self, site_name=None, debug=False): self.site_name = site_name UTest.__init__(self, debug=debug) def _pre(self): set_test_environment(site_name=self.site_name) assert not get_publisher().is_live_host() get_publisher().get_connection().abort() def format_user(user, **kwargs): return get_publisher().format_user(user, **kwargs) def format_date(date): return get_publisher().format_date(date) def format_date_time(date): return get_publisher().format_date_time(date) def format_rfc822_date_time(date): import dulcinea.ui.util return dulcinea.ui.util.format_rfc822_date_time(date) def format_action_link(path, text, **kwargs): return get_publisher().format_action_link( path, text, **kwargs) def get_site_title(): return get_publisher().get_site_title()