~ztk-steering-group/zope.server/trunk

« back to all changes in this revision

Viewing changes to src/zope/server/tests/test_serverbase.py

  • Committer: mgedmin
  • Date: 2012-01-07 00:10:42 UTC
  • Revision ID: svn-v4:62d5b8a3-27da-0310-9561-8e5933582275:zope.server/trunk:123980
On startup, HTTPServer prints a clickable URL after the hostname/port.

Show diffs side-by-side

added added

removed removed

Lines of Context:
36
36
 
37
37
    """
38
38
 
 
39
 
 
40
def doctest_ServerBase_startup_logging():
 
41
    r"""Test for ServerBase verbose startup logging
 
42
 
 
43
    We will use a subclass of ServerBase so that unit tests do not actually try
 
44
    to bind to ports.
 
45
 
 
46
        >>> from zope.server.serverbase import ServerBase
 
47
        >>> class ServerBaseForTest(ServerBase):
 
48
        ...     def bind(self, (ip, port)):
 
49
        ...         self.socket = FakeSocket()
 
50
        ...     def log_info(self, message, level='info'):
 
51
        ...         print message.expandtabs()
 
52
 
 
53
        >>> sb = ServerBaseForTest('example.com', 80, start=True, verbose=True)
 
54
        zope.server.serverbase started.
 
55
                Hostname: example.com
 
56
                Port: 80
 
57
 
 
58
    Subclasses can add extra information there
 
59
 
 
60
        >>> class ServerForTest(ServerBaseForTest):
 
61
        ...     def getExtraLogMessage(self):
 
62
        ...         return '\n\tURL: http://example.com/'
 
63
 
 
64
        >>> sb = ServerForTest('example.com', 80, start=True, verbose=True)
 
65
        zope.server.serverbase started.
 
66
                Hostname: example.com
 
67
                Port: 80
 
68
                URL: http://example.com/
 
69
 
 
70
    """
 
71
 
39
72
class FakeSocket:
40
73
    data        = ''
41
74
    setblocking = lambda *_: None
42
75
    fileno      = lambda *_: 42
43
76
    getpeername = lambda *_: ('localhost', 42)
44
77
 
 
78
    def listen(self, *args):
 
79
        pass
 
80
 
45
81
    def send(self, data):
46
82
        self.data += data
47
83
        return len(data)