[Python-checkins] r65701 - doctools/branches/0.4.x/tests/test_application.py
benjamin.peterson
python-checkins at python.org
Sat Aug 16 00:00:55 CEST 2008
Author: benjamin.peterson
Date: Sat Aug 16 00:00:54 2008
New Revision: 65701
Log:
add some tests for sphinx.application
Added:
doctools/branches/0.4.x/tests/test_application.py (contents, props changed)
Added: doctools/branches/0.4.x/tests/test_application.py
==============================================================================
--- (empty file)
+++ doctools/branches/0.4.x/tests/test_application.py Sat Aug 16 00:00:54 2008
@@ -0,0 +1,59 @@
+# -*- coding: utf-8 -*-
+"""
+ test_application
+ ~~~~~~~~~~~~~~~~
+
+ Test the Sphinx class.
+
+ :copyright: 2008 by Benjamin Peterson.
+ :license: BSD.
+"""
+
+from StringIO import StringIO
+
+from sphinx.application import ExtensionError
+
+from util import *
+
+
+ at with_app()
+def test_events(app):
+ def empty(): pass
+ raises_msg(ExtensionError, "Unknown event name: invalid",
+ app.connect, "invalid", empty)
+
+
+ app.add_event("my_event")
+ raises_msg(ExtensionError, "Event 'my_event' already present",
+ app.add_event, "my_event")
+
+ def mock_callback(a_app, *args):
+ assert a_app is app
+ assert emit_args == args
+ return "ret"
+ emit_args = (1, 3, "string")
+ listener_id = app.connect("my_event", mock_callback)
+ assert app.emit("my_event", *emit_args) == ["ret"], "Callback not called"
+
+ app.disconnect(listener_id)
+ assert app.emit("my_event", *emit_args) == [], \
+ "Callback called when disconnected"
+
+
+def test_output():
+ status, warnings = StringIO(), StringIO()
+ app = TestApp(status=status, warning=warnings)
+ try:
+ status.truncate(0) # __init__ writes to status
+ app.info("Nothing here...")
+ assert status.getvalue() == "Nothing here...\n"
+ status.truncate(0)
+ app.info("Nothing here...", True)
+ assert status.getvalue() == "Nothing here..."
+
+ old_count = app._warncount
+ app.warn("Bad news!")
+ assert warnings.getvalue() == "WARNING: Bad news!\n"
+ assert app._warncount == old_count + 1
+ finally:
+ app.cleanup()
More information about the Python-checkins
mailing list