Example #1
0
    def _writeFromPUT( self, body ):
        headers = {}
        headers, body = parseHeadersBody(body, headers)
        lines = body.split('\n')
        self.edit( lines[0] )
        headers['Format'] = self.URL_FORMAT
        new_subject = keywordsplitter(headers)
        headers['Subject'] = new_subject or self.Subject()
        new_contrib = contributorsplitter(headers)
        headers['Contributors'] = new_contrib or self.Contributors()
        haveheader = headers.has_key
        for key, value in self.getMetadataHeaders():
            if not haveheader(key):
                headers[key] = value

        self._editMetadata(title=headers['Title'],
                          subject=headers['Subject'],
                          description=headers['Description'],
                          contributors=headers['Contributors'],
                          effective_date=headers['Effective_date'],
                          expiration_date=headers['Expiration_date'],
                          format=headers['Format'],
                          language=headers['Language'],
                          rights=headers['Rights'],
                          )
Example #2
0
    def _writeFromPUT( self, body ):
        headers = {}
        headers, body = parseHeadersBody(body, headers)
        lines = body.split('\n')
        self.edit( lines[0] )
        headers['Format'] = self.URL_FORMAT
        new_subject = keywordsplitter(headers)
        headers['Subject'] = new_subject or self.Subject()
        new_contrib = contributorsplitter(headers)
        headers['Contributors'] = new_contrib or self.Contributors()
        haveheader = headers.has_key
        for key, value in self.getMetadataHeaders():
            if not haveheader(key):
                headers[key] = value

        self._editMetadata(title=headers['Title'],
                          subject=headers['Subject'],
                          description=headers['Description'],
                          contributors=headers['Contributors'],
                          effective_date=headers['Effective_date'],
                          expiration_date=headers['Expiration_date'],
                          format=headers['Format'],
                          language=headers['Language'],
                          rights=headers['Rights'],
                          )
Example #3
0
 def test_NoBody(self):
     headers, body = parseHeadersBody('%s\n\n' % self.COMMON_HEADERS)
     assert (len(headers) == 2, '%d!' % len(headers))
     assert ('Author' in headers.keys())
     assert (headers['Author'] == 'Tres Seaver')
     assert ('Title' in headers.keys())
     assert (len(body) == 0, '%d!' % len(body))
Example #4
0
 def test_NoBody( self ):
     headers, body = parseHeadersBody( '%s\n\n' % self.COMMON_HEADERS )
     assert( len( headers ) == 2, '%d!' % len( headers ) )
     assert( 'Author' in headers.keys() )
     assert( headers[ 'Author' ] == 'Tres Seaver' )
     assert( 'Title' in headers.keys() )
     assert( len( body ) == 0, '%d!' % len( body ) )
Example #5
0
    def test_parseHeadersBody_body_malformed_terminator(self):
        from Products.CMFDefault.utils import parseHeadersBody

        headers, body = parseHeadersBody('%s\n \n%s' %
                                         (self.COMMON_HEADERS, self.TEST_BODY))
        self.assertEqual(len(headers), 2)
        self.assertEqual(body, self.TEST_BODY)
Example #6
0
 def test_Continuation(self):
     headers, body = parseHeadersBody(
         '%s\n%s\n\n' % (self.COMMON_HEADERS, self.MULTILINE_DESCRIPTION))
     assert (len(headers) == 3, '%d!' % len(headers))
     assert ('Description' in headers.keys())
     desc_len = len(headers['Description'].split('\n'))
     assert (desc_len == 2, '%d!' % desc_len)
     assert (len(body) == 0, '%d!' % len(body))
Example #7
0
 def test_Body( self ):
     headers, body = parseHeadersBody( '%s\n\n%s'
                                     % ( self.COMMON_HEADERS
                                       , self.TEST_BODY
                                       )
                                     )
     assert( len( headers ) == 2, '%d!' % len( headers ) )
     assert( body == self.TEST_BODY )
Example #8
0
 def test_Body( self ):
     headers, body = parseHeadersBody( '%s\n\n%s'
                                     % ( self.COMMON_HEADERS
                                       , self.TEST_BODY
                                       )
                                     )
     assert( len( headers ) == 2, '%d!' % len( headers ) )
     assert( body == self.TEST_BODY )
Example #9
0
 def test_Preload(self):
     preloaded = {'Author': 'xxx', 'text_format': 'structured_text'}
     headers, body = parseHeadersBody(
         '%s\n%s\n\n%s' %
         (self.COMMON_HEADERS, self.MULTILINE_DESCRIPTION, self.TEST_BODY),
         preloaded)
     assert (len(headers) == 3, '%d!' % len(headers))
     assert (preloaded['Author'] != headers['Author'])
     assert (preloaded['text_format'] == headers['text_format'])
Example #10
0
    def test_parseHeadersBody_no_body( self ):
        from Products.CMFDefault.utils import parseHeadersBody

        headers, body = parseHeadersBody( '%s\n\n' % self.COMMON_HEADERS )
        self.assertEqual( len( headers ), 2 )
        self.failUnless( 'Author' in headers.keys() )
        self.assertEqual( headers[ 'Author' ], 'Tres Seaver' )
        self.failUnless( 'Title' in headers.keys() )
        self.assertEqual( len( body ), 0 )
Example #11
0
    def test_parseHeadersBody_no_body(self):
        from Products.CMFDefault.utils import parseHeadersBody

        headers, body = parseHeadersBody('%s\n\n' % self.COMMON_HEADERS)
        self.assertEqual(len(headers), 2)
        self.failUnless('Author' in headers.keys())
        self.assertEqual(headers['Author'], 'Tres Seaver')
        self.failUnless('Title' in headers.keys())
        self.assertEqual(len(body), 0)
Example #12
0
    def test_NoBody( self ):
        from Products.CMFDefault.utils import parseHeadersBody

        headers, body = parseHeadersBody( '%s\n\n' % self.COMMON_HEADERS )
        assert( len( headers ) == 2, '%d!' % len( headers ) )
        assert( 'Author' in headers.keys() )
        assert( headers[ 'Author' ] == 'Tres Seaver' )
        assert( 'Title' in headers.keys() )
        assert( len( body ) == 0, '%d!' % len( body ) )
Example #13
0
    def test_Body( self ):
        from Products.CMFDefault.utils import parseHeadersBody

        headers, body = parseHeadersBody( '%s\n\n%s'
                                        % ( self.COMMON_HEADERS
                                          , self.TEST_BODY
                                          )
                                        )
        assert( len( headers ) == 2, '%d!' % len( headers ) )
        assert( body == self.TEST_BODY )
Example #14
0
    def test_parseHeadersBody_body( self ):
        from Products.CMFDefault.utils import parseHeadersBody

        headers, body = parseHeadersBody( '%s\n\n%s'
                                        % ( self.COMMON_HEADERS
                                          , self.TEST_BODY
                                          )
                                        )
        self.assertEqual( len( headers ), 2 )
        self.assertEqual( body, self.TEST_BODY )
Example #15
0
    def test_parseHeadersBody_continuation(self):
        from Products.CMFDefault.utils import parseHeadersBody

        headers, body = parseHeadersBody(
            '%s\n%s\n\n' % (self.COMMON_HEADERS, self.MULTILINE_DESCRIPTION))
        self.assertEqual(len(headers), 3)
        self.failUnless('Description' in headers.keys())
        desc_len = len(headers['Description'].split('\n'))
        self.assertEqual(desc_len, 2)
        self.assertEqual(len(body), 0)
Example #16
0
 def _writeFromPUT(self, body):
     headers, body = parseHeadersBody(body)
     lines = body.split('\n')
     self.edit(lines[0])
     headers['Format'] = self.URL_FORMAT
     new_subject = keywordsplitter(headers)
     headers['Subject'] = new_subject or self.Subject()
     new_contrib = contributorsplitter(headers)
     headers['Contributors'] = new_contrib or self.Contributors()
     headers = dict((k.lower(), v) for k, v in headers.iteritems())
     self._editMetadata(**headers)
Example #17
0
    def test_parseHeadersBody_preload(self):
        from Products.CMFDefault.utils import parseHeadersBody

        preloaded = {'Author': 'xxx', 'text_format': 'structured_text'}
        headers, body = parseHeadersBody(
            '%s\n%s\n\n%s' %
            (self.COMMON_HEADERS, self.MULTILINE_DESCRIPTION, self.TEST_BODY),
            preloaded)
        self.assertEqual(len(headers), 4)
        self.assertNotEqual(preloaded['Author'], headers['Author'])
        self.assertEqual(preloaded['text_format'], headers['text_format'])
Example #18
0
 def test_Continuation( self ):
     headers, body = parseHeadersBody( '%s\n%s\n\n'
                                     % ( self.COMMON_HEADERS
                                       , self.MULTILINE_DESCRIPTION
                                       )
                                     )
     assert( len( headers ) == 3, '%d!' % len( headers )  )
     assert( 'Description' in headers.keys() )
     desc_len = len( headers[ 'Description' ].split('\n') )
     assert( desc_len == 2, '%d!' % desc_len )
     assert( len( body ) == 0, '%d!' % len( body ) )
Example #19
0
 def test_Preload( self ):
     preloaded = { 'Author' : 'xxx', 'text_format' : 'structured_text' }
     headers, body = parseHeadersBody( '%s\n%s\n\n%s'
                                     % ( self.COMMON_HEADERS
                                       , self.MULTILINE_DESCRIPTION
                                       , self.TEST_BODY
                                       )
                                     , preloaded
                                     )
     assert( len( headers ) == 3, '%d!' % len( headers ) )
     assert( preloaded[ 'Author' ] != headers[ 'Author' ] )
     assert( preloaded[ 'text_format' ] == headers[ 'text_format' ] )
Example #20
0
    def test_parseHeadersBody_continuation( self ):
        from Products.CMFDefault.utils import parseHeadersBody

        headers, body = parseHeadersBody( '%s\n%s\n\n'
                                        % ( self.COMMON_HEADERS
                                          , self.MULTILINE_DESCRIPTION
                                          )
                                        )
        self.assertEqual( len( headers ), 3 )
        self.failUnless( 'Description' in headers.keys() )
        desc_len = len( headers[ 'Description' ].split('\n') )
        self.assertEqual( desc_len, 2 )
        self.assertEqual( len( body ), 0 )
Example #21
0
    def test_parseHeadersBody_embedded_blank_line(self):
        from Products.CMFDefault.utils import parseHeadersBody

        headers, body = parseHeadersBody(
            '%s\n%s\n\n%s' % (self.COMMON_HEADERS,
                              self.MULTIPARAGRAPH_DESCRIPTION, self.TEST_BODY))
        self.assertEqual(len(headers), 3)
        self.failUnless('Description' in headers.keys())
        desc_lines = headers['Description'].split('\n')
        desc_len = len(desc_lines)
        self.assertEqual(desc_len, 3, desc_lines)
        self.assertEqual(desc_lines[1], ' ')
        self.assertEqual(body, self.TEST_BODY)
Example #22
0
    def test_parseHeadersBody_preload( self ):
        from Products.CMFDefault.utils import parseHeadersBody

        preloaded = { 'Author' : 'xxx', 'text_format' : 'structured_text' }
        headers, body = parseHeadersBody( '%s\n%s\n\n%s'
                                        % ( self.COMMON_HEADERS
                                          , self.MULTILINE_DESCRIPTION
                                          , self.TEST_BODY
                                          )
                                        , preloaded
                                        )
        self.assertEqual( len( headers ), 4 )
        self.assertNotEqual( preloaded[ 'Author' ], headers[ 'Author' ] )
        self.assertEqual( preloaded[ 'text_format' ], headers[ 'text_format' ] )
Example #23
0
 def handleText(self, text, format=None):
     """ Handles the raw text, returning headers, body, format """
     headers = {}
     if not format:
         format = self.guessFormat(text)
     if format == 'text/html':
         parser = SimpleHTMLParser()
         parser.feed(text)
         headers.update(parser.metatags)
         if parser.title:
             headers['title'] = parser.title
         body = bodyfinder(text)
     else:
         headers, body = parseHeadersBody(text, headers)
     return headers, text, format
Example #24
0
 def handleText(self, text, format=None):
   """ Handles the raw text, returning headers, body, format """
   headers = {}
   if not format:
     format = self.guessFormat(text)
   if format == 'text/html':
     parser = SimpleHTMLParser()
     parser.feed(text)
     headers.update(parser.metatags)
     if parser.title:
       headers['title'] = parser.title
     body = bodyfinder(text)
   else:
     headers, body = parseHeadersBody(text, headers)
   return headers, text, format
Example #25
0
    def handleText(self, text, format=None):
        """ Handles the raw text, returning headers, body, cooked, format """
        headers = {}
        if format == 'html':
            parser = SimpleHTMLParser()
            parser.feed(text)
            headers.update(parser.metatags)
            if parser.title:
                headers['Title'] = parser.title
            bodyfound = bodyfinder(text)
            if bodyfound:
                body = bodyfound
        else:
            headers, body = parseHeadersBody(text, headers)

        return headers, body, format
Example #26
0
    def handleText(self, text, format=None):
        """ Handles the raw text, returning headers, body, cooked, format """
        headers = {}
        if format == 'html':
            parser = SimpleHTMLParser()
            parser.feed(text)
            headers.update(parser.metatags)
            if parser.title:
                headers['Title'] = parser.title
            bodyfound = bodyfinder(text)
            if bodyfound:
                body = bodyfound
        else:
            headers, body = parseHeadersBody(text, headers)

        return headers, body, format
Example #27
0
    def test_parseHeadersBody_embedded_blank_line( self ):
        from Products.CMFDefault.utils import parseHeadersBody

        headers, body = parseHeadersBody( '%s\n%s\n\n%s'
                                        % ( self.COMMON_HEADERS
                                          , self.MULTIPARAGRAPH_DESCRIPTION
                                          , self.TEST_BODY
                                          )
                                        )
        self.assertEqual( len( headers ), 3 )
        self.failUnless( 'Description' in headers.keys() )
        desc_lines = headers[ 'Description' ].split('\n')
        desc_len = len( desc_lines )
        self.assertEqual( desc_len, 3, desc_lines )
        self.assertEqual( desc_lines[1], ' ' )
        self.assertEqual( body, self.TEST_BODY )