[CMF-checkins] CVS: CMF/CMFDefault/tests - test_Document.py:1.21.8.2 test_NewsItem.py:1.4.32.1

Chris Withers chrisw@nipltd.com
Fri, 15 Feb 2002 14:33:28 -0500


Update of /cvs-repository/CMF/CMFDefault/tests
In directory cvs.zope.org:/tmp/cvs-serv8056/CMFDefault/tests

Modified Files:
      Tag: ChrisW-refactor_tests-branch
	test_Document.py test_NewsItem.py 
Log Message:
Done Document,NewsItem

=== CMF/CMFDefault/tests/test_Document.py 1.21.8.1 => 1.21.8.2 ===
      RequestTest
 
-from Products.CMFDefault.Document import Document
-
-DOCTYPE = '''<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">'''
+from Products.CMFCore.tests.base.content import \
+     DOCTYPE, HTML_TEMPLATE, BASIC_HTML, ENTITY_IN_TITLE, BASIC_STRUCTUREDTEXT, \
+     STX_WITH_HTML, STX_NO_HEADERS, STX_NO_HEADERS_BUT_COLON, \
+     SIMPLE_STRUCTUREDTEXT, SIMPLE_HTML
 
-HTML_TEMPLATE = '''\
-<html><head>
- <title>%(title)s</title>
-</head>
-<body bgcolor="#efe843">%(body)s</body>
-</html>
-'''
-
-BASIC_HTML = '''\
-<html>
- <head>
-  <title>Title in tag</title>
-  <meta name="description" content="Describe me">
-  <meta name="contributors" content="foo@bar.com; baz@bam.net;
-    Benotz, Larry J (larry@benotz.stuff)">
-  <meta name="title" content="Title in meta">
-  <meta name="subject" content="content management">
-  <meta name="keywords" content="unit tests, framework; ,zope ">
- </head>
- <body bgcolor="#ffffff">
-  <h1>Not a lot here</h1>
- </body>
-</html>
-'''
-
-SIMPLE_HTML = '''\
-<html>
- <head>
-  <title>Title in tag</title>
-  <meta name="description" content="Describe me">
-  <meta name="contributors" content="foo@bar.com; baz@bam.net;
-    Benotz, Larry J (larry@benotz.stuff)">
-  <meta name="title" content="Title in meta">
-  <meta name="subject" content="content management">
- </head>
- <body bgcolor="#ffffff">
-  <h1>Not a lot here</h1>
- </body>
-</html>
-'''
-
-ENTITY_IN_TITLE = '''\
-<html>
- <head>
-  <title>&Auuml;rger</title>
- </head>
- <bOdY>
-  <h2>Not a lot here either</h2>
- </bodY>
-</html>
-'''
-
-BASIC_STRUCTUREDTEXT = '''\
-Title: My Document
-Description: A document by me
-Contributors: foo@bar.com; baz@bam.net; no@yes.maybe
-Subject: content management, zope
-Keywords: unit tests; , framework
-
-This is the header
-
-  Body body body body body
-  body body body.
-
-   o A list item
-   
-   o And another thing...
-'''
-
-SIMPLE_STRUCTUREDTEXT = '''\
-Title: My Document
-Description: A document by me
-Contributors: foo@bar.com; baz@bam.net; no@yes.maybe
-Subject: content management, zope
-
-This is the header
-
-  Body body body body body
-  body body body.
-
-   o A list item
-   
-   o And another thing...
-'''
-
-STX_WITH_HTML = """\
-Sometimes people do interesting things
-
-  Sometimes people do interesting things like have examples
-  of HTML inside their structured text document.  We should
-  be detecting that this is indeed a structured text document
-  and **NOT** an HTML document::
-
-    <html>
-    <head><title>Hello World</title></head>
-    <body><p>Hello world, I am Bruce.</p></body>
-    </html>
-
-  All in favor say pi!
-"""
-
-STX_NO_HEADERS = """\
-Title Phrase
-
-    This is a "plain" STX file, with no headers.  Saving with
-    it shouldn't overwrite any metadata.
-"""
-
-STX_NO_HEADERS_BUT_COLON = """\
-Plain STX:  No magic!
-
-    This is a "plain" STX file, with no headers.  Saving with
-    it shouldn't overwrite any metadata.
-"""
+from Products.CMFDefault.Document import Document
 
 class DocumentTests(RequestTest):
 
@@ -349,12 +237,12 @@
 class TestFTPGet( RequestTest ):
 
     def testHTML( self ):
-        self.REQUEST['BODY']=SIMPLE_HTML
+        self.REQUEST['BODY']=BASIC_HTML
         d = Document( 'foo' )
         d.PUT(self.REQUEST, self.RESPONSE)
 
         rnlinesplit = compile( r'\r?\n?' )
-        simple_lines = rnlinesplit.split( SIMPLE_HTML )
+        simple_lines = rnlinesplit.split( BASIC_HTML )
         get_lines = rnlinesplit.split( d.manage_FTPget() )
 
         # strip off headers


=== CMF/CMFDefault/tests/test_NewsItem.py 1.4 => 1.4.32.1 ===
-from utils import fakeRequest, fakeResponse
+from unittest import makeSuite, main
+
 from Products.CMFDefault.NewsItem import NewsItem
-#" 
-DOCTYPE = '''<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">'''
 
-BASIC_HTML = '''\
-<html>
- <head>
-  <title>Title in tag</title>
-  <meta name="description" content="Describe me">
-  <meta name="contributors" content="foo@bar.com; baz@bam.net">
- </head>
- <body bgcolor="#ffffff">
-  <h1>Not a lot here</h1>
- </body>
-</html>
-'''
-
-ENTITY_IN_TITLE = '''\
-<html>
- <head>
-  <title>&Auuml;rger</title>
- </head>
- <bOdY>
-  <h2>Not a lot here either</h2>
- </bodY>
-</html>
-'''
-
-BASIC_STRUCTUREDTEXT = '''\
-Title: My NewsItem
-Description: A news item by me
-Contributors: foo@bar.com; baz@bam.net; no@yes.maybe
-
-This is the header and it supercedes the title
-
-  Body body body body body
-  body body body.
-
-   o What does this do
-   
-   o if it happens to you?
-'''
+from Products.CMFCore.tests.base.testcase import \
+     RequestTest
 
-class NewsItemTests(unittest.TestCase):
+from Products.CMFCore.tests.base.content import \
+     DOCTYPE, BASIC_HTML, ENTITY_IN_TITLE, BASIC_STRUCTUREDTEXT
 
-    def setUp( self ):
-        get_transaction().begin()
+class NewsItemTests(RequestTest):
 
-    def tearDown( self ):
-        get_transaction().abort()
+    def setUp(self):
+        RequestTest.setUp(self)
+        self.d = NewsItem('foo')
 
     def test_Empty(self):
         d = NewsItem('foo', text_format='structured-text')
@@ -59,91 +22,80 @@
         assert d.text_format == 'structured-text'
 
     def test_BasicHtml(self):
-        REQUEST = fakeRequest()
-        REQUEST['BODY']=BASIC_HTML
-        d = NewsItem('foo')
-        d.PUT(REQUEST, RESPONSE=fakeResponse())
+        self.REQUEST['BODY']=BASIC_HTML
+        d = self.d
+        d.PUT(self.REQUEST, self.RESPONSE)
         assert d.Format() == 'text/html', d.Format()
         assert d.title == 'Title in tag'
-        assert string.find(d.text, '</body>') == -1
+        self.assertEqual(d.text.find('</body>'),-1)
         assert d.Description() == 'Describe me'
-        assert len(d.Contributors()) == 2
+        self.assertEqual(len(d.Contributors()),3)
 
     def test_UpperedHtml(self):
-        REQUEST = fakeRequest()
-        REQUEST['BODY'] = string.upper(BASIC_HTML)
-        d = NewsItem('foo')
-        d.PUT(REQUEST, RESPONSE=fakeResponse())
+        self.REQUEST['BODY'] = BASIC_HTML.upper()
+        d = self.d
+        d.PUT(self.REQUEST, self.RESPONSE)
         assert d.Format() == 'text/html'
         assert d.title == 'TITLE IN TAG'
-        assert string.find(d.text, '</BODY') == -1
+        self.assertEqual( d.text.find('</BODY'),-1)
         assert d.Description() == 'DESCRIBE ME'
-        assert len(d.Contributors()) == 2
+        assert len(d.Contributors()) == 3
 
     def test_EntityInTitle(self):
-        REQUEST = fakeRequest()
-        REQUEST['BODY'] = ENTITY_IN_TITLE
-        d = NewsItem('foo')
-        d.PUT(REQUEST, RESPONSE=fakeResponse())
+        self.REQUEST['BODY'] = ENTITY_IN_TITLE
+        d = self.d
+        d.PUT(self.REQUEST, self.RESPONSE)
         assert d.title == '&Auuml;rger', "Title '%s' being lost" % (
             d.title )
 
     def test_HtmlWithDoctype(self):
-        REQUEST = fakeRequest()
-        d = NewsItem('foo')
-        REQUEST['BODY'] = '%s\n%s' % (DOCTYPE, BASIC_HTML)
-        d.PUT(REQUEST, RESPONSE=fakeResponse())
+        d = self.d
+        self.REQUEST['BODY'] = '%s\n%s' % (DOCTYPE, BASIC_HTML)
+        d.PUT(self.REQUEST, self.RESPONSE)
         assert d.Description() == 'Describe me'
 
     def test_HtmlWithoutNewlines(self):
-        REQUEST = fakeRequest()
-        d = NewsItem('foo')
-        REQUEST['BODY'] = string.join(string.split(BASIC_HTML, '\n'), '')
-        d.PUT(REQUEST, RESPONSE=fakeResponse())
+        d = self.d
+        self.REQUEST['BODY'] = ''.join(BASIC_HTML.split('\n'))
+        d.PUT(self.REQUEST, self.RESPONSE)
         assert d.Format() == 'text/html'
         assert d.Description() == 'Describe me'
 
     def test_StructuredText(self):
-        REQUEST = fakeRequest()
-        REQUEST['BODY'] = BASIC_STRUCTUREDTEXT
-        d = NewsItem('foo')
-        d.PUT(REQUEST, RESPONSE=fakeResponse())
+        self.REQUEST['BODY'] = BASIC_STRUCTUREDTEXT
+        d = self.d
+        d.PUT(self.REQUEST, self.RESPONSE)
         
         assert d.Format() == 'text/plain'
-        assert d.Title() == 'My NewsItem'
-        assert d.Description() == 'A news item by me'
+        self.assertEqual(d.Title(),'My Document')
+        self.assertEqual(d.Description(),'A document by me')
         assert len(d.Contributors()) == 3
-        assert string.find(d.cooked_text, '<p>') >= 0
+        self.failUnless(d.cooked_text.find('<p>') >= 0)
 
     def test_Init(self):
-        REQUEST = fakeRequest()
-        REQUEST['BODY'] = BASIC_STRUCTUREDTEXT
+        self.REQUEST['BODY'] = BASIC_STRUCTUREDTEXT
         d = NewsItem('foo', text='')
-        d.PUT(REQUEST, RESPONSE=fakeResponse())
+        d.PUT(self.REQUEST, self.RESPONSE)
         assert d.Format() == 'text/plain'
-        assert d.Title() == 'My NewsItem', d.Title()
-        assert d.Description() == 'A news item by me'
+        self.assertEqual(d.Title(),'My Document')
+        self.assertEqual(d.Description(),'A document by me')
         assert len(d.Contributors()) == 3
-        assert string.find(d.cooked_text, '<p>') >= 0
+        self.failUnless(d.cooked_text.find('<p>') >= 0)
 
         d = NewsItem('foo', text='')
-        REQUEST['BODY'] = BASIC_HTML
-        d.PUT(REQUEST, RESPONSE=fakeResponse())
+        self.REQUEST['BODY'] = BASIC_HTML
+        d.PUT(self.REQUEST, self.RESPONSE)
         assert d.Format() == 'text/html'
         assert d.Title() == 'Title in tag'
-        assert len(d.Contributors()) == 2
+        assert len(d.Contributors()) == 3
 
         d = NewsItem('foo', text_format='structured-text', title='Foodoc')
         assert d.text == ''
         assert d.title == 'Foodoc'
         assert d.Format() == 'text/plain'
 
-
-
 def test_suite():
-    return unittest.makeSuite(NewsItemTests)
-
-def main():
-    unittest.TextTestRunner().run(test_suite())
+    return makeSuite(NewsItemTests)
 
-if __name__=='__main__': main()
+if __name__=='__main__':
+    main(defaultTest='test_suite')