def readEntries(path, feedId): for dirname, dirs, files in walk(path): dirs[:] = [f for f in dirs if not badFilename(f)] files[:] = [f for f in files if (not badFilename(f) and f.endswith('.rst'))] for filename in files: p = os.path.join(path, dirname, filename) f = file(p) s = f.read() f.close() href = (os.path.splitext(filename)[0] + os.path.extsep + 'html') if dirname != '.': href = os.path.join(dirname, href) link = atom.Link(href=href, type='text/html') id_ = '' if dirname != '.': id_ += dirname.replace('/', '-')+'_' id_ += filename[:-len('.rst')] id_ = '%s#%s' % (feedId, id_) x = rst2entry.convertString( s, filename=p, id=id_, link=sets.Set([link])) yield x
def readFeed(path): f = file(os.path.join(path, '_feed.rst')) s = f.read() f.close() fake = rst2entry.convertString(s) kw = {} for k in dir(fake): v = getattr(fake, k) kw[k] = v feed = atom.Feed(entries=readEntries(path, fake.id), **kw) return feed
def testMultipleParagraphs(self): """<p> is not stripped when there are multiple paragraphs.""" got = rst2entry.convertString("""\ Bar === :updated: 2005-10-21T18:30:02Z bar baz """, id='xyzzy') self.assertEquals(got.content.dom.toxml(), u'<div xmlns="http://www.w3.org/1999/xhtml"><p>bar</p>\n<p>baz</p></div>')
def testSimple(self): got = rst2entry.convertString("""\ Bar === :updated: 2005-10-21T18:30:02Z bar """, id='xyzzy') self.failUnless(iatom.IEntry.providedBy(got), "convert() must return IEntry objects") iatom.IEntry.validateInvariants(got) self.assertEquals(got.id, 'xyzzy') self.assertEquals(got.title, 'Bar') self.assertEquals(got.updated, datetime.datetime(2005, 10, 21, 18, 30, 2)) self.failUnless(iatom.IContent.providedBy(got.content), "content must provide IContent") self.assertEquals(got.content.dom.toxml(), u'<div xmlns="http://www.w3.org/1999/xhtml">bar</div>')