[Spambayes-checkins] spambayes/spambayes/test test_sb_imapfilter.py, 1.8, 1.9

Tony Meyer anadelonbrin at users.sourceforge.net
Tue Jan 4 01:18:05 CET 2005


Update of /cvsroot/spambayes/spambayes/spambayes/test
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1620/spambayes/test

Modified Files:
	test_sb_imapfilter.py 
Log Message:
Check that the web interface is served correctly.

Index: test_sb_imapfilter.py
===================================================================
RCS file: /cvsroot/spambayes/spambayes/spambayes/test/test_sb_imapfilter.py,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** test_sb_imapfilter.py	20 Dec 2004 02:49:06 -0000	1.8
--- test_sb_imapfilter.py	4 Jan 2005 00:18:02 -0000	1.9
***************
*** 1,4 ****
--- 1,5 ----
  # Test sb_imapfilter script.
  
+ import re
  import sys
  import time
***************
*** 18,22 ****
  from spambayes.Options import options
  from spambayes.classifier import Classifier
! from sb_imapfilter import BadIMAPResponseError
  from sb_imapfilter import IMAPSession, IMAPMessage, IMAPFolder, IMAPFilter
  
--- 19,23 ----
  from spambayes.Options import options
  from spambayes.classifier import Classifier
! from sb_imapfilter import run, BadIMAPResponseError
  from sb_imapfilter import IMAPSession, IMAPMessage, IMAPFolder, IMAPFilter
  
***************
*** 758,761 ****
--- 759,792 ----
  
  
+ class InterfaceTest(unittest.TestCase):
+     def setUp(self):
+         print "\nThis test takes slightly over one second."
+         self.saved_server = options["imap", "server"]
+         options["imap", "server"] = ""
+         thread.start_new_thread(run, (True,))
+         # Wait for it to be ready.
+         time.sleep(1)
+ 
+     def tearDown(self):
+         options["imap", "server"] = self.saved_server
+         # Shutdown as though through the web UI.
+         from urllib import urlopen, urlencode
+         urlopen('http://localhost:%d/save' % options["html_ui", "port"],
+                 urlencode({'how': _('Save & shutdown')})).read()
+ 
+     def test_UI(self):
+         # Smoke-test the HTML UI.
+         httpServer = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+         httpServer.connect(('localhost', options["html_ui", "port"]))
+         httpServer.send("get / HTTP/1.0\r\n\r\n")
+         response = ''
+         while 1:
+             packet = httpServer.recv(1024)
+             if not packet: break
+             response += packet
+         self.assert_(re.search(r"(?s)<html>.*SpamBayes IMAP Filter.*</html>",
+                                response))
+ 
+ 
  def suite():
      suite = unittest.TestSuite()
***************
*** 765,768 ****
--- 796,800 ----
                  IMAPFilterTest,
                  SFBugsTest,
+                 InterfaceTest,
                 ):
          suite.addTest(unittest.makeSuite(cls))



More information about the Spambayes-checkins mailing list