[Zope3-checkins] CVS: Zope3/src/zope/app/i18nfile/tests -
__init__.py:1.1.2.1 test_i18nfile.py:1.1.2.1
Philipp von Weitershausen
philikon at philikon.de
Fri Feb 20 14:41:05 EST 2004
Update of /cvs-repository/Zope3/src/zope/app/i18nfile/tests
In directory cvs.zope.org:/tmp/cvs-serv21652/tests
Added Files:
Tag: philikon-movecontent-branch
__init__.py test_i18nfile.py
Log Message:
i18nfile and i18nimage live in zope.app.i18nfile now.
=== Added File Zope3/src/zope/app/i18nfile/tests/__init__.py ===
#
# This file is necessary to make this directory a package.
=== Added File Zope3/src/zope/app/i18nfile/tests/test_i18nfile.py ===
##############################################################################
#
# 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.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_i18nfile.py,v 1.1.2.1 2004/02/20 19:41:03 philikon Exp $
"""
import unittest
from zope.interface.verify import verifyClass
from zope.i18n.tests.testii18naware import TestII18nAware
from zope.app.file.file import FileChunk
from zope.app.i18nfile import I18nFile
def sorted(list):
list.sort()
return list
class Test(TestII18nAware):
def _makeFile(self, *args, **kw):
return I18nFile(*args, **kw)
def _createObject(self):
obj = self._makeFile(defaultLanguage='fr')
obj.setData('', 'lt')
obj.setData('', 'en')
return obj
def testEmpty(self):
file = self._makeFile()
self.assertEqual(file.getContentType(), '')
self.assertEqual(file.getData(), '')
self.assertEqual(file.getDefaultLanguage(), 'en')
def testConstructor(self):
file = self._makeFile('Foobar')
self.assertEqual(file.getContentType(), '')
self.assertEqual(file.getData(), 'Foobar')
self.assertEqual(file.getData('en'), 'Foobar')
self.assertEqual(file.getData('nonexistent'), 'Foobar')
self.assertEqual(file.getDefaultLanguage(), 'en')
self.assertEqual(sorted(file.getAvailableLanguages()), ['en'])
file = self._makeFile('Foobar', 'text/plain')
self.assertEqual(file.getContentType(), 'text/plain')
self.assertEqual(file.getData(), 'Foobar')
self.assertEqual(file.getData('en'), 'Foobar')
self.assertEqual(file.getData('nonexistent'), 'Foobar')
self.assertEqual(file.getDefaultLanguage(), 'en')
self.assertEqual(sorted(file.getAvailableLanguages()), ['en'])
file = self._makeFile(data='Foobar', contentType='text/plain')
self.assertEqual(file.getContentType(), 'text/plain')
self.assertEqual(file.getData(), 'Foobar')
self.assertEqual(file.getData('en'), 'Foobar')
self.assertEqual(file.getData('nonexistent'), 'Foobar')
self.assertEqual(file.getDefaultLanguage(), 'en')
self.assertEqual(sorted(file.getAvailableLanguages()), ['en'])
file = self._makeFile(data='Foobar', contentType='text/plain',
defaultLanguage='fr')
self.assertEqual(file.getContentType(), 'text/plain')
self.assertEqual(file.getData(), 'Foobar')
self.assertEqual(file.getData('en'), 'Foobar')
self.assertEqual(file.getData('nonexistent'), 'Foobar')
self.assertEqual(file.getDefaultLanguage(), 'fr')
self.assertEqual(sorted(file.getAvailableLanguages()), ['fr'])
def testMutators(self):
file = self._makeFile()
file.setContentType('text/plain')
self.assertEqual(file.getContentType(), 'text/plain')
self.assertEqual(sorted(file.getAvailableLanguages()), ['en'])
file.setData('Foobar')
self.assertEqual(file.getData(), 'Foobar')
self.assertEqual(sorted(file.getAvailableLanguages()), ['en'])
file.setData('Barbaz', language='fr')
self.assertEqual(file.getData(), 'Foobar')
self.assertEqual(file.getData('fr'), 'Barbaz')
self.assertEqual(sorted(file.getAvailableLanguages()), ['en', 'fr'])
file.edit('Blah', 'text/html')
self.assertEqual(file.getContentType(), 'text/html')
self.assertEqual(file.getData(), 'Blah')
self.assertEqual(file.getData('fr'), 'Barbaz')
self.assertEqual(sorted(file.getAvailableLanguages()), ['en', 'fr'])
file.edit('Quux', 'text/html', 'lt')
self.assertEqual(file.getContentType(), 'text/html')
self.assertEqual(file.getData(), 'Blah')
self.assertEqual(file.getData('fr'), 'Barbaz')
self.assertEqual(file.getData('lt'), 'Quux')
self.assertEqual(file.getSize(), len('Blah'))
self.assertEqual(file.getSize('fr'), len('Barbaz'))
self.assertEqual(file.getSize('lt'), len('Quux'))
self.assertEqual(sorted(file.getAvailableLanguages()), ['en', 'fr', 'lt'])
file.removeLanguage('lt')
self.assertEqual(file.getContentType(), 'text/html')
self.assertEqual(file.getData(), 'Blah')
self.assertEqual(file.getData('fr'), 'Barbaz')
self.assertEqual(file.getSize(), len('Blah'))
self.assertEqual(file.getSize('fr'), len('Barbaz'))
self.assertEqual(sorted(file.getAvailableLanguages()), ['en', 'fr'])
self.assertEqual(file.getData('lt'), 'Blah')
self.assertEqual(file.getSize('lt'), len('Blah'))
file.removeLanguage('nonexistent')
self.assertEqual(file.getContentType(), 'text/html')
self.assertEqual(file.getData(), 'Blah')
self.assertEqual(file.getData('fr'), 'Barbaz')
self.assertEqual(file.getSize(), len('Blah'))
self.assertEqual(file.getSize('fr'), len('Barbaz'))
self.assertEqual(sorted(file.getAvailableLanguages()), ['en', 'fr'])
self.assertEqual(file.getData('lt'), 'Blah')
self.assertEqual(file.getSize('lt'), len('Blah'))
self.assertRaises(ValueError, file.removeLanguage, file.getDefaultLanguage())
self.assertRaises(ValueError, file.setDefaultLanguage, 'nonexistent')
def testLargeDataInput(self):
file = self._makeFile()
# Insert as string
file.setData('Foobar'*60000, 'en')
self.assertEqual(file.getSize('en'), 6*60000)
self.assertEqual(file.getData('en'), 'Foobar'*60000)
# Insert data as FileChunk
fc = FileChunk('Foobar'*4000)
file.setData(fc, 'lt')
self.assertEqual(file.getSize('lt'), 6*4000)
self.assertEqual(file.getData('lt'), 'Foobar'*4000)
# Insert data from file object
import cStringIO
sio = cStringIO.StringIO()
sio.write('Foobar'*100000)
sio.seek(0)
file.setData(sio, 'fr')
self.assertEqual(file.getSize('fr'), 6*100000)
self.assertEqual(file.getData('fr'), 'Foobar'*100000)
def testInterface(self):
from zope.app.file.interfaces import IFile
from zope.app.i18nfile.interfaces import II18nFile
from zope.i18n.interfaces import II18nAware
self.failUnless(IFile.isImplementedByInstancesOf(I18nFile))
self.failUnless(verifyClass(IFile, I18nFile))
self.failUnless(II18nAware.isImplementedByInstancesOf(I18nFile))
self.failUnless(verifyClass(II18nAware, I18nFile))
self.failUnless(II18nFile.isImplementedByInstancesOf(I18nFile))
self.failUnless(verifyClass(II18nFile, I18nFile))
def testSetDefaultLanguage(self):
# getDefaultLanguage and getAvailableLanguages are tested in the
# above tests
file = self._makeFile()
file.setData('', language='lt')
file.setDefaultLanguage('lt')
self.assertEqual(file.getDefaultLanguage(), 'lt')
def test_suite():
loader = unittest.TestLoader()
return loader.loadTestsFromTestCase(Test)
if __name__=='__main__':
unittest.TextTestRunner().run(test_suite())
More information about the Zope3-Checkins
mailing list