[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