annotate scripts/hyperdb_example.py @ 3945:1dd64778bc45

Mail improvements: - Implement new config option in mail-section "ignore_alternatives" to ignore alternatives in a multipart/alternative mail. The *last* text/plain part of the *first* multipart/alternative is used as the message, if ignore_alternatives is set all other alternative parts of the first multipart/alternative that contained a text/plain part are ignored. Other multipart/alternative or other multipart are attached as before. This fixes [SF#959811] "Multipart/alternative handling considered bad". Note that this also changes which text/plain part is attached as the message if there are several text/plain parts in a multipart: Previously the *first* text/plain would be attached. Now we attach the *last* one, this is more in line with rfc 2046, sec. 5.1.4. according to Philipp Gortan. - Fix bug in attachment of text parts: If there are multiple text/plain parts in a nested multipart, the previous code would attach the multipart serialisation instead of the text/plain serialisation as a file to the issue in some cases. - Add regression tests for the new config-option and bug-fixes above.
author Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
date Wed, 14 Nov 2007 14:57:47 +0000
parents d819ff1b3116
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3537
d819ff1b3116 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
1 from roundup.hyperdb import String, Number, Multilink
d819ff1b3116 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
2 from roundup.backends.back_bsddb import Database, Class
d819ff1b3116 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
3
d819ff1b3116 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
4 class config:
d819ff1b3116 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
5 DATABASE='/tmp/hyperdb_example'
d819ff1b3116 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
6
d819ff1b3116 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
7 db = Database(config, 'admin')
d819ff1b3116 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
8 spam = Class(db, 'spam', name=String(), size=Number())
d819ff1b3116 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
9 widget = Class(db, 'widget', title=String(), spam=Multilink('spam'))
d819ff1b3116 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
10
d819ff1b3116 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
11 oneid = spam.create(name='one', size=1)
d819ff1b3116 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
12 twoid = spam.create(name='two', size=2)
d819ff1b3116 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
13
d819ff1b3116 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
14 widgetid = widget.create(title='a widget', spam=[oneid, twoid])
d819ff1b3116 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
15
d819ff1b3116 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
16 # dumb, simple query
d819ff1b3116 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
17 print widget.find(spam=oneid)
d819ff1b3116 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
18 print widget.history(widgetid)
d819ff1b3116 *** empty log message ***
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
19 print widget.search_text(

Roundup Issue Tracker: http://roundup-tracker.org/