[Zope3-checkins] CVS: Zope3/src/zope/publisher/tests - test_ftp.py:1.1

Jim Fulton jim@zope.com
Mon, 3 Feb 2003 10:08:57 -0500


Update of /cvs-repository/Zope3/src/zope/publisher/tests
In directory cvs.zope.org:/tmp/cvs-serv15846/src/zope/publisher/tests

Added Files:
	test_ftp.py 
Log Message:
Refactored the ftp framework to make it much simpler, less general,
and easier to maintain.  This included ripping out the vfs framework.


=== Added File Zope3/src/zope/publisher/tests/test_ftp.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.
#
##############################################################################
"""
$Id: test_ftp.py,v 1.1 2003/02/03 15:08:54 jim Exp $
"""

import sys
from cStringIO import StringIO
from unittest import TestCase, TestSuite, main, makeSuite
import zope.publisher.ftp

class Test(TestCase):

    def setUp(self):
        self.__input = StringIO('')
        self.__output = StringIO()
        env = {'credentials': ('bob', '123'),
               'path': '/a/b/c',
               'command': 'foo',
               }
        self.__request = zope.publisher.ftp.FTPRequest(
            self.__input, self.__output, env)
        
    def test_response(self):
        response = self.__request.response
        response.setBody(123.456)
        response.outputBody()
        self.assertEqual(response.getResult(), 123.456)
        self.failIf(self.__output.getvalue())

        try:
            raise ValueError('spam')
        except:
            info = sys.exc_info()
            response.handleException(info)

        try:
            response.getResult()
        except:
            self.assertEqual(sys.exc_info()[:2], info[:2])

    def test_request(self):
        self.assertEqual(self.__request.getTraversalStack(),
                         ['c', 'b', 'a'])
        self.assertEqual(self.__request._authUserPW(),
                         ('bob', '123'))
        
        

def test_suite():
    return TestSuite((
        makeSuite(Test),
        ))

if __name__=='__main__':
    main(defaultTest='test_suite')