[Zope-Checkins] CVS: ZODB3/ZEO/tests - testMonitor.py:1.1

Jeremy Hylton jeremy@zope.com
Thu, 9 Jan 2003 18:57:45 -0500


Update of /cvs-repository/ZODB3/ZEO/tests
In directory cvs.zope.org:/tmp/cvs-serv14806/ZEO/tests

Added Files:
	testMonitor.py 
Log Message:
Add single trivial test of monitor server.

Placeholder for more tests.


=== Added File ZODB3/ZEO/tests/testMonitor.py ===
##############################################################################
#
# Copyright (c) 2003 Zope Corporation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE
#
##############################################################################
"""Test that the monitor produce sensible results.

$Id: testMonitor.py,v 1.1 2003/01/09 23:57:43 jeremy Exp $
"""

import socket
import time
import unittest

from ZEO.tests.ConnectionTests import CommonSetupTearDown

class MonitorTests(CommonSetupTearDown):

    monitor = 1

    def get_monitor_output(self):
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.connect(('', 42000))
        L = []
        while 1:
            buf = s.recv(8192)
            if buf:
                L.append(buf)
            else:
                break
        s.close()
        return "".join(L)

    def getConfig(self, path, create, read_only):
        return """\
        <Storage>
            type MappingStorage
        </Storage>
        """

    def testMonitor(self):
        # just open a client to know that the server is up and running
        # XXX should put this in setUp
        self.storage = self.openClientStorage()
        s = self.get_monitor_output()
        self.storage.close()
        self.assert_(s.find("monitor") != -1)
        

def test_suite():
    return unittest.makeSuite(MonitorTests)