[Zope-Checkins] CVS: Zope/lib/python/OFS/tests - mime.types-1:1.1 mime.types-2:1.1 testContentTypes.py:1.1

Fred Drake cvs-admin at zope.org
Fri Oct 31 11:40:10 EST 2003


Update of /cvs-repository/Zope/lib/python/OFS/tests
In directory cvs.zope.org:/tmp/cvs-serv1104/lib/python/OFS/tests

Added Files:
	mime.types-1 mime.types-2 testContentTypes.py 
Log Message:
add tests for the OFS.content_types changes to support the "mime-types"
configuration setting


=== Added File Zope/lib/python/OFS/tests/mime.types-1 ===
# This is a sample mime.types file.
# It contains a single bogus MIME type and extention for testing
# purposes.  It is not loaded during normal Zope operation.

text/x-vnd.zope.test-mime-type-1  ztmt-1


=== Added File Zope/lib/python/OFS/tests/mime.types-2 ===
# This is a sample mime.types file.
# It contains a single bogus MIME type and extention for testing
# purposes.  It is not loaded during normal Zope operation.

text/x-vnd.zope.test-mime-type-2  ztmt-2


=== Added File Zope/lib/python/OFS/tests/testContentTypes.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.
#
##############################################################################
"""Tests of the content_types extension mechanism.

$Id: testContentTypes.py,v 1.1 2003/10/31 16:40:09 fdrake Exp $
"""

import mimetypes
import os.path
import sys
import unittest

from OFS import content_types

try:
    __file__
except NameError:
    __file__ = os.path.realpath(sys.argv[0])

here = os.path.dirname(os.path.abspath(__file__))
MIME_TYPES_1 = os.path.join(here, "mime.types-1")
MIME_TYPES_2 = MIME_TYPES_1[:-1] + "2"


class ContentTypesTestCase(unittest.TestCase):

    def setUp(self):
        self._old_state = mimetypes.__dict__.copy()

    def tearDown(self):
        mimetypes.__dict__.update(self._old_state)

    def check_types_count(self, delta):
        self.assertEqual(len(mimetypes.types_map),
                         len(self._old_state["types_map"]) + delta)

    def test_add_one_file(self):
        ntypes = len(mimetypes.types_map)
        content_types.add_files([MIME_TYPES_1])
        ctype, encoding = content_types.guess_content_type("foo.ztmt-1")
        self.assert_(encoding is None)
        self.assertEqual(ctype, "text/x-vnd.zope.test-mime-type-1")
        ctype, encoding = content_types.guess_content_type("foo.ztmt-1.gz")
        self.assertEqual(encoding, "gzip")
        self.assertEqual(ctype, "text/x-vnd.zope.test-mime-type-1")
        self.check_types_count(1)

    def test_add_two_files(self):
        ntypes = len(mimetypes.types_map)
        content_types.add_files([MIME_TYPES_1, MIME_TYPES_2])
        ctype, encoding = content_types.guess_content_type("foo.ztmt-1")
        self.assert_(encoding is None)
        self.assertEqual(ctype, "text/x-vnd.zope.test-mime-type-1")
        ctype, encoding = content_types.guess_content_type("foo.ztmt-2")
        self.assert_(encoding is None)
        self.assertEqual(ctype, "text/x-vnd.zope.test-mime-type-2")
        self.check_types_count(2)


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

if __name__ == '__main__':
    unittest.main()




More information about the Zope-Checkins mailing list