[Checkins] SVN: zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/tests/test_functional_filewidget.py Move another test to zope.formlib.

Martijn Faassen faassen at startifact.com
Thu Dec 31 02:53:01 EST 2009


Log message for revision 107437:
  Move another test to zope.formlib.
  

Changed:
  D   zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/tests/test_functional_filewidget.py

-=-
Deleted: zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/tests/test_functional_filewidget.py
===================================================================
--- zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/tests/test_functional_filewidget.py	2009-12-31 07:52:51 UTC (rev 107436)
+++ zope.app.form/branches/faassen-zaf/src/zope/app/form/browser/tests/test_functional_filewidget.py	2009-12-31 07:53:01 UTC (rev 107437)
@@ -1,176 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (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.
-#
-##############################################################################
-"""File Widget Tests
-
-$Id$
-"""
-import unittest
-import transaction
-from StringIO import StringIO
-from persistent import Persistent
-
-import zope.security.checker
-from zope.interface import Interface, implements
-from zope.schema.interfaces import IField
-from zope.schema import Field
-from zope.traversing.api import traverse
-
-from zope.app.form.testing import AppFormLayer
-from zope.app.form.browser.textwidgets import FileWidget
-from zope.app.form.browser.tests.support import *
-from zope.app.testing.functional import BrowserTestCase
-from zope.formlib.interfaces import IInputWidget
-
-class IFileField(IField):
-    """Field for representing a file that can be edited by FileWidget."""
-
-
-class FileField(Field):
-
-    implements(IFileField)
-
-class IFileTest(Interface):
-
-    f1 = FileField(required=True)
-    f2 = FileField(required=False)
-
-class FileTest(Persistent):
-
-    implements(IFileTest)
-
-    def __init__(self):
-        self.f1 = None
-        self.f2 = 'foo'
-
-
-class SampleTextFile(StringIO):
-
-    def __init__(self, buf, filename=''):
-        StringIO.__init__(self, buf)
-        self.filename = filename
-
-
-class Test(BrowserTestCase):
-
-    sampleText = "The quick brown fox\njumped over the lazy dog."
-    sampleTextFile = SampleTextFile(sampleText)
-
-    emptyFileName = 'empty.txt'
-    emptyFile = SampleTextFile('', emptyFileName)
-
-    def setUp(self):
-        BrowserTestCase.setUp(self)
-        defineWidgetView(IFileField, FileWidget, IInputWidget)
-        registerEditForm(IFileTest)
-        defineSecurity(FileTest, IFileTest)
-
-    def test_display_editform(self):
-        self.getRootFolder()['test'] = FileTest()
-        transaction.commit()
-
-        # display edit view
-        response = self.publish('/test/edit.html')
-        self.assertEqual(response.getStatus(), 200)
-
-        # field should be displayed in a file input element
-        self.assert_(patternExists(
-            '<input .* name="field.f1".* type="file".*>', response.getBody()))
-        self.assert_(patternExists(
-            '<input .* name="field.f2".* type="file".*>', response.getBody()))
-
-
-    def test_submit_text(self):
-        self.getRootFolder()['test'] = FileTest()
-        transaction.commit()
-        object = traverse(self.getRootFolder(), 'test')
-        self.assert_(object.f1 is None)
-        self.assertEqual(object.f2, 'foo')
-
-        # submit a sample text file
-        response = self.publish('/test/edit.html', form={
-            'UPDATE_SUBMIT' : '',
-            'field.f1' : self.sampleTextFile,
-            'field.f2' : self.sampleTextFile,
-            'field.f1.used' : '',
-            'field.f2.used' : '' })
-        self.assertEqual(response.getStatus(), 200)
-        self.assert_(updatedMsgExists(response.getBody()))
-
-        # check new values in object
-        object = traverse(self.getRootFolder(), 'test')
-        self.assertEqual(object.f1, self.sampleText)
-        self.assertEqual(object.f2, self.sampleText)
-
-
-    def test_invalid_value(self):
-        self.getRootFolder()['test'] = FileTest()
-        transaction.commit()
-
-        # submit an invalid file value
-        response = self.publish('/test/edit.html', form={
-            'UPDATE_SUBMIT' : '',
-            'field.f1' : 'not a file - same as missing input',
-            'field.f1.used' : '',
-            'field.f2.used' : '' })
-        self.assertEqual(response.getStatus(), 200)
-        self.assert_(validationErrorExists('f1',
-            'Form input is not a file object', response.getBody()))
-
-
-    def test_required_validation(self):
-        self.getRootFolder()['test'] = FileTest()
-        transaction.commit()
-
-        # submit missing value for required field f1
-        response = self.publish('/test/edit.html', form={
-            'UPDATE_SUBMIT' : '',
-            'field.f1.used' : '',
-            'field.f2.used' : ''})
-        self.assertEqual(response.getStatus(), 200)
-
-        # confirm error msgs
-        self.assert_(missingInputErrorExists('f1', response.getBody()))
-        self.assert_(not missingInputErrorExists('f2', response.getBody()))
-
-
-    def test_empty_file(self):
-        self.getRootFolder()['test'] = FileTest()
-        transaction.commit()
-
-        # submit an empty text file
-        response = self.publish('/test/edit.html', form={
-            'UPDATE_SUBMIT' : '',
-            'field.f2' : self.emptyFile,
-            # 'field.f1.used' : '', # we don't let f1 know that it was rendered
-            # or else it will complain (see test_required_validation) and the
-            # change will not succeed.
-            'field.f2.used' : ''})
-        self.assertEqual(response.getStatus(), 200)
-        self.assert_(updatedMsgExists(response.getBody()))
-
-        # new value for f1 should be field.missing_value (i.e, None)
-        object = traverse(self.getRootFolder(), 'test')
-        self.assert_(object.f1 is None)
-
-
-def test_suite():
-    suite = unittest.TestSuite()
-    Test.layer = AppFormLayer
-    suite.addTest(unittest.makeSuite(Test))
-    return suite
-
-if __name__=='__main__':
-    unittest.main(defaultTest='test_suite')
-
-



More information about the checkins mailing list