Upgrade desde MoinMoin 1.1 hasta 1.5 (si sale)

Migración de pericles a dreamhost

cd ~/www/cauce.ybab.net/cgi-bin
vi moin_config.py moin.cgi

ojo con el #!/usr/bin/python en moin.cgi

El MoinMoin que servía era el que estaba en /usr/lib/python2.2/site-packages

Listo. http://cauce.ybab.net/cgi-bin/moin.cgi/SystemInfo acusa:

Versión MoinMoin Versión 1.1 [Revisión 1.178]

Salida de http://cauce.ybab.net/cgi-bin/moin.cgi?test:

MoinMoin CGI Diagnosis
======================

Package "MoinMoin" successfully imported.

Release  1.1
Revision 1.178

Python version 2.2.3+ (#1, Sep  4 2005, 21:50:09) 
[GCC 3.3.5 (Debian 1:3.3.5-13)]
Python installed to /usr

PyXML is installed

Python Path:
    
    /usr/lib/python2.2
    /usr/lib/python2.2/plat-linux2
    /usr/lib/python2.2/lib-tk
    /usr/lib/python2.2/lib-dynload
    /usr/local/lib/python2.2/site-packages
    /usr/lib/python2.2/site-packages
    /usr/lib/python2.2/site-packages/PIL
    /home/ap/www/cauce.ybab.net
    /home/ap/www/cauce.ybab.net/lib/python

Checking directories...
    data directory tests OK (set to '/home/ap/www/cauce.ybab.net/data')
    text directory tests OK (set to '/home/ap/www/cauce.ybab.net/data/text')
    user directory tests OK (set to '/home/ap/www/cauce.ybab.net/data/user')
    backup directory tests OK (set to '/home/ap/www/cauce.ybab.net/data/backup')

Found an external diff: "diff (GNU diffutils) 2.8.1"

Server Environment:
    ONLY AVAILABLE FOR LOCAL REQUESTS ON THIS HOST!

Unit Tests:
runTest (MoinMoin._tests.test_Page.existsTestCase) ... ok
runTest (MoinMoin._tests.test_PageEditor.expand_variablesTestCase) ... ok
runTest (MoinMoin._tests.test_marshal.MarshalTestCase) ... ok
runTest (MoinMoin._tests.test_parser_wiki.WikiMacroTestCase) ... ok
runTest (MoinMoin._tests.test_parser_wiki.PageLinkTestCase) ... ok
runTest (MoinMoin._tests.test_parser_wiki.InlineMarkupTestCase) ... ok
runTest (MoinMoin._tests.test_user.encodePasswordTestCase) ... ok
runTest (MoinMoin._tests.test_util_mail.decodeSpamSafeEmailTestCase) ... ok
runTest (MoinMoin._tests.test_util_web.makeQueryStringTestCase) ... ok
runTest (MoinMoin._tests.test_util_web.makeSelectionTestCase) ... ok
runTest (MoinMoin._tests.test_widget_html.CompositeElementTestCase) ... ok
runTest (MoinMoin._tests.test_widget_html.RawTestCase) ... ok
runTest (MoinMoin._tests.test_widget_html.EmptyElementTestCase) ... ok
runTest (MoinMoin._tests.test_widget_html.AttrTestCase) ... ok
runTest (MoinMoin._tests.test_widget_html.TextTestCase) ... ok
runTest (MoinMoin._tests.test_wikiacl.parsingTestCase) ... ok
runTest (MoinMoin._tests.test_wikimacro.NormalMacroTestCase) ... ok
runTest (MoinMoin._tests.test_wikimacro.PluginMacroTestCase) ... ok
runTest (MoinMoin._tests.test_wikiutil.isTemplatePageTestCase) ... ok
runTest (MoinMoin._tests.test_wikiutil.isFormPageTestCase) ... ok

----------------------------------------------------------------------
Ran 20 tests in 0.306s

OK

Hago backup de todo

Upgrade a 1.2.4

cd ~/WK
wget http://internap.dl.sourceforge.net/sourceforge/moin/moin-1.2.4.tar.gz
tar xvfz moin-1.2.4.tar.gz
mkdir run-1.2.4
cd moin-1.2.4
python setup.py install --home=${HOME}/WK/run-1.2.4 --record=${HOME}/WK/run-1.2.4/install.log

cp -r ${HOME}/WK/run-1.2.4/share/moin/htdocs ${HOME}/www/cauce.ybab.net/wiki124
cp ${HOME}/WK/run-1.2.4/share/moin/cgi-bin/moin.cgi ${HOME}/www/cauce.ybab.net/cgi-bin
cp ${HOME}/WK/run-1.2.4/share/moin/cgi-bin/moin_config.py ${HOME}/www/cauce.ybab.net/cgi-bin

editar moin.cgi:

import sys
sys.path.insert(1,'/home/ap/WK/run-1.2.4/lib/python')
#sys.path.append no sirve porque encuentra la versión más nueva de MoinMoin antes

Ahora... trato de pasar lo que hay a un nuevo theme...

cd ${HOME}/www/cauce.ybab.net
mkdir wiki124/icauce
mv css/ img/ wiki124/icauce

convierto los .gif en .png:

cd ${HOME}/www/cauce.ybab.net/wiki124/icauce/img
for i in *.gif
do
file=`basename $i .gif`
echo "${file}.gif ==> ${file}.png"
convert "${file}.gif" "${file}.png"
done

Bueno... lo del theme seguro que necesita algo más, porque no anda (sospecho que necesita un icauce.py en ${HOME}/WK/run-1.2.4/lib/python/MoinMoin/theme

pero al menos responde... veo de seguir adelante y en una de esas edu se apiada de mí después...

Salida de http://cauce.ybab.net/cgi-bin/moin.cgi?test:

MoinMoin CGI Diagnosis
======================

Package "MoinMoin" successfully imported.

Release 1.2.4
Revision 1.187
Python version 2.5.1 (r251:54863, Jun 29 2007, 23:13:48) 
[GCC 3.3.5 (Debian 1:3.3.5-13)]
Python installed to /home/ap/run
PyXML is NOT installed
Python Path:
   /home/.vegas/ap/www/cauce.ybab.net/cgi-bin
   /home/ap/WK/run-1.2.4/lib/python
   /home/ap/run/lib/python25.zip
   /home/ap/run/lib/python2.5
   /home/ap/run/lib/python2.5/plat-linux2
   /home/ap/run/lib/python2.5/lib-tk
   /home/ap/run/lib/python2.5/lib-dynload
   /home/ap/run/lib/python2.5/site-packages
   /home/ap/www/cauce.ybab.net/data
Checking directories...
    data directory tests OK (set to '/home/ap/www/cauce.ybab.net/data')
    text directory tests OK (set to '/home/ap/www/cauce.ybab.net/data/text')
    user directory tests OK (set to '/home/ap/www/cauce.ybab.net/data/user')
    backup directory tests OK (set to '/home/ap/www/cauce.ybab.net/data/backup')

Server Environment:
    ONLY AVAILABLE FOR LOCAL REQUESTS ON THIS HOST!
Unit Tests:
runTest (MoinMoin._tests.test_Page.existsTestCase) ... ok
runTest (MoinMoin._tests.test_PageEditor.expand_variablesTestCase) ... ok
runTest (MoinMoin._tests.test_marshal.MarshalTestCase) ... ok
runTest (MoinMoin._tests.test_parser_wiki.WikiMacroTestCase) ... ok
runTest (MoinMoin._tests.test_parser_wiki.PageLinkTestCase) ... ok
runTest (MoinMoin._tests.test_parser_wiki.InlineMarkupTestCase) ... ok
runTest (MoinMoin._tests.test_user.encodePasswordTestCase) ... ok
runTest (MoinMoin._tests.test_util_mail.decodeSpamSafeEmailTestCase) ... ok
runTest (MoinMoin._tests.test_util_web.makeSelectionTestCase) ... ok
runTest (MoinMoin._tests.test_util_web.makeQueryStringTestCase) ... ok
runTest (MoinMoin._tests.test_widget_html.CompositeElementTestCase) ... ok
runTest (MoinMoin._tests.test_widget_html.RawTestCase) ... ok
runTest (MoinMoin._tests.test_widget_html.EmptyElementTestCase) ... ok
runTest (MoinMoin._tests.test_widget_html.AttrTestCase) ... ok
runTest (MoinMoin._tests.test_widget_html.TextTestCase) ... ok
runTest (MoinMoin._tests.test_wikiacl.parsingTestCase) ... ok
runTest (MoinMoin._tests.test_wikimacro.NormalMacroTestCase) ... ok
runTest (MoinMoin._tests.test_wikiutil.isTemplatePageTestCase) ... ok
runTest (MoinMoin._tests.test_wikiutil.isFormPageTestCase) ... ok

----------------------------------------------------------------------
Ran 19 tests in 0.138s

OK

Upgrade a 1.5.3

cd ~/run/lib/python2.5/site-packages/MoinMoin/script/old/migration
cp -r /home/ap/www/cauce.ybab.net/data .
rm data/groups.pickle data/dicts.pickle data/user/userdict.pickle
# ahora empezamos a migrar...

python 12_to_13_mig01.py
# este dio un error por un path demasiado largo... entonces:
mv data .data-post-mig1-01
mv data.pre-mig1/ data
rmdir data/pages/fullsearch_26value_3dfullsearch_26value_3dfullsearch_26value_3dfullsearch_26value_3dedit_26literal_3d1_26case_3d1_26context_3d40_26literal_3d1_26case_3d1_26context_3d40_26literal_3d1_26case_3d1_26context_3d40_26literal_3d1_26case_3d1_26context_3d40
#... y lo corremos de nuevo:
python 12_to_13_mig01.py
# ahora anduvo OK... seguimos

python 12_to_13_mig02.py
python 12_to_13_mig03.py
python 12_to_13_mig04.py
python 12_to_13_mig05.py

python 12_to_13_mig06.py
# este dio un error porque el event.log tenía líneas cortadas 
# por lo que quedaban truncas con otra línea encima.
mv data .data-post-mig6-01
mv data.pre-mig6/ data
# ubiquemos las líneas jodidas:
grep -n VIEWPAGE.*VIEWPAGE data/event-log
# editemos a mano y corrijámoslas:
vi data/event-log
#... y lo corremos de nuevo:
python 12_to_13_mig06.py
# ahora anduvo OK... seguimos

python 12_to_13_mig07.py
python 12_to_13_mig08.py
python 12_to_13_mig09.py
python 12_to_13_mig10.py
# Listo.

# ahora corremos el último de los
# scripts de migración "viejos" 
# que se supone que sólo agrega
# meta información
# el script pasa de 1.5.2 a 1.5.3 (152 -> 1050300)
# pero aparentemente no hubo cambios en el formato entre
# 1.3.0 y 1.5.2... veamos...
# como este script parece trabajar "in-place" hacemos
# un backup del data tal cual nos quedó hasta aquí:
cp -rp data data.POST-mig11
# y ahora vamos con el script de migración:
python 152_to_1050300.py data
# Listo, tardó un segundo y dijo:
### 1 data_dirs successfully migrated, 0 warnings, 0 errors.
# por lo visto, sólo agregó el archivo 'meta' sin cambiar nada más.

Todo parece haber terminado OK... ahora hay que revisarlo...

Upgrade a 1.5.8

Creo una nueva instancia del farm 1.5.8 que tengo funcional:

create_moin_instance.sh icauce cauce.org.ar ICauceAr

Pruebo que funcione vacío y luego backupeo el data que viene limpio y copio el que migramos a ver qué pasa...

cd ${RUN}/etc/moinfarm/icauce
mv data .data.ORI
cp -rp ${RUN}/lib/python2.5/site-packages/MoinMoin/script/old/migration/data
# Corro la migración automática:
moin --config-dir=${RUN}/etc/moinfarm --wiki-url=cauce.org.ar/ migration data
# La '/' al final del URL es *crucial* (si no, no anda nada).

Listo... la salida de la migración automática del último paso fue:

Calling migration script for /home/ap/run/etc/moinfarm/icauce/data, base revision 1050300
Returned. New rev is 1050301.
Calling migration script for /home/ap/run/etc/moinfarm/icauce/data, base revision 1050301
Returned. New rev is 1050400.
Calling migration script for /home/ap/run/etc/moinfarm/icauce/data, base revision 1050400
Returned. New rev is 1050500.
Calling migration script for /home/ap/run/etc/moinfarm/icauce/data, base revision 1050500
Returned. New rev is 1050600.
Calling migration script for /home/ap/run/etc/moinfarm/icauce/data, base revision 1050600
Returned. New rev is 1050700.
Calling migration script for /home/ap/run/etc/moinfarm/icauce/data, base revision 1050700
Returned. New rev is 1050800.
Calling migration script for /home/ap/run/etc/moinfarm/icauce/data, base revision 1050800
Final mig script reached, migration is complete.

Lo que nos muestra que realizó estos pasos 1.5.3 ==> 1.5.3.1 ==> 1.5.4 ==> 1.5.5 ==> 1.5.6 ==> 1.5.7 ==> 1.5.8

El http://icauce.ybab.net/moin.cgi?action=test dio un par de errores (ver al final de la salida):

MoinMoin Diagnosis
======================

Release 1.5.8
Revision release
Python version 2.5.1 (r251:54863, Jun 29 2007, 23:13:48) 
[GCC 3.3.5 (Debian 1:3.3.5-13)]
Python installed to /home/ap/run
PyXML is NOT installed
Python Path:
   /home/ap/run/etc/moinfarm
   /home/ap/run/lib/python2.5/site-packages
   /home/.vegas/ap/www/cauce.org.ar
   /home/ap/run/lib/python25.zip
   /home/ap/run/lib/python2.5
   /home/ap/run/lib/python2.5/plat-linux2
   /home/ap/run/lib/python2.5/lib-tk
   /home/ap/run/lib/python2.5/lib-dynload
   /home/ap/run/lib/python2.5/site-packages
Checking directories...
    data directory tests OK (set to '/home/ap/run/etc/moinfarm/icauce/data')
    user directory tests OK (set to '/home/ap/run/etc/moinfarm/icauce/data/user')

Server Environment:
    ONLY AVAILABLE FOR LOCAL REQUESTS ON THIS HOST!

Unit Tests:
error: access error like a dict ... ok
error: create with encoded string ... ok
error: create with any object ... ok
error: create with unicode ... ok
new locking: NoLockingForReading tests if files still work when filename is target of a rename ... ok
testQuoting (MoinMoin._tests.test_packages.QuotingTestCase) ... ok
testBasicPackageThings (MoinMoin._tests.test_packages.UnsafePackageTestcase) ... ERROR
Page: page.exists() finds existing pages only ... ok
PageEditor: expand MarianoAbsatz CamelCase ... ok
PageEditor: expand MarianoAbsatz extended name - enabled ... ok
PageEditor: expand [[MailTo(baby@baby.com.ar)]] ... ok
PageEditor: expand user variables ... ok
PageEditor: expand general variables ... ok
pysupport: import existing wiki plugin ... ok
pysupport: import name from existing module ... ok
pysupport: import nonexistent attritbue raises AttributeError ... ok
pysupport: import nonexistent module raises ImportError ... ok
pysupport: import nonexistent wiki plugin fail ... ok
request: normalize pagename: restrict groups to alpha numeric Unicode ... ok
request: httpDate default rfc1123 ... ok
request: httpDate rfc850 ... ok
request: normalize pagename: normalize slashes ... ok
request: normalize pagename: normalize whitespace ... ok
request: normalize pagename: remove invalid unicode chars ... ok
request: normalize pagename: underscore convert to spaces and normalized ... ok
search: quoting bug - unquoted terms ... ok
search: quoting bug - quoted terms ... ok
user: encode ascii password ... ok
user: encode unicode password ... ok
user: isValidName: reject group names ... ok
user: isValidName: reject unicode non alpha numeric characters ... ok
user: isValidName: accept names in any language, with spaces ... ok
user: isValidName: reject leading, trailing or multiple whitespace ... ok
user: login with ascii password ... ok
user: login with non-ascii password in pre 1.3 user file ... ok
user: login replace old non-ascii password in pre 1.3 user file ... ok
user: login with non-ascii password ... ok
util.lock: ExclusiveLock: acquire ... ok
util.lock: ExclusiveLock: acquire after timeout ... ok
util.lock: os.stat().mtime consistency with time.time() ... ok
util.lock: ExclusiveLock: lock is exclusive ... ok
util.lock: ExclusiveLock: exists ... ok
util.lock: ExclusiveLock: expire ... ok
util.lock: ExclusiveLock: isExpired ... ok
util.lock: ExclusiveLock: isLocked ... ok
util.lock: ExclusiveLock: release ... ok
util.lock: ExclusiveLock: raise ValueError for timeout < 2.0 ... ok
util.mail: encode address: 'Phrase <local@domain>' ... ok
util.mail: encode Uncode address: 'ויקי <local@domain>' ... ok
util.mail: encode address with empty address: 'Phrase <>' ... ok
util.mail: encode address with empty phrase: '<local@domain>' ... ok
util.mail: encode invalid address 'Phrase <blah' ... ok
util.mail: encode simple address: local@domain ... ok
util.mail: decoding spam safe mail ... ok
util.web: make query sting from argument ... ok
util.web: make query sting from argument and keywords ... ok
util.web: make query sting from keywords ... ok
util.web: creating html select with no selection ... ok
util.web: creating html select with non existing selection ... ok
util.web: creating html select with selected item ... ok
widget.html: append to and extend composite element ... ok
widget.html: creating html widgets ... ok
widegt.html: invalid attributes raises exception ... ok
wikiacl: allow extra white space between entries ... ok
wikiacl: bad guy may not allowed anything ... ok
wikiacl: default meta acl ... ok
wikiacl: empty acl string raise StopIteration ... ok
wikiacl: empty names with rights ... ok
wikiacl: empty rights ... ok
wikiacl: ignore rights not in acl_rights_valid ... ok
wikiacl: ignore invalid acl ... ok
wikiacl: mixed wiki names and names with spaces ... ok
wikiacl: acl modifiers ... ok
wikiacl: multiple entries ... ok
wikiacl: multiple entries with spaces ... ok
wikiacl: multiple names with spaces ... ok
wikiacl: single name with spaces ... ok
wikiacl: single wiki name, single right ... ok
wikiacl: white space acl string raise StopIteration ... ok
wikiacl: applying acl by user name ... ok
wikidicts: create dict from keys and values in text ... ok
wikidict: names in SystemPagesGroup should be in request.dicts ... ok
wikidicts: initFromText: CamelCase links ... ok
wikidicts: initFromText: extended link ... ok
wikidicts: initFromText: extended names ... ok
wikidicts: initFromText: ignore anything but first level list itmes ... ok
wikidicts: initFromText: ignore non first level items ... ok
wikidicts: initFromText: strip whitespace around items ... ok
wikimacro: trivial macro works ... ok
wikiutil: good system page names accepted, bad rejected ... FAIL
wikiutil: good template names accepted, bad rejected ... ok
wikixml.marshal: create new marshal ... ok
wikixml.marshal: setting marshal property ... ok

======================================================================
ERROR: testBasicPackageThings (MoinMoin._tests.test_packages.UnsafePackageTestcase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/ap/run/lib/python2.5/site-packages/MoinMoin/_tests/test_packages.py", line 54, in setUp
    raise TestSkipped('This test needs to be run using the test wiki.')
TestSkipped: This test needs to be run using the test wiki.

======================================================================
FAIL: wikiutil: good system page names accepted, bad rejected
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/ap/run/lib/python2.5/site-packages/MoinMoin/_tests/test_wikiutil.py", line 30, in testSystemPage
    '"%(name)s" is a system page' % locals())
AssertionError: "SystemPagesInEnglishGroup" is a system page

----------------------------------------------------------------------
Ran 93 tests in 8.365s

FAILED (failures=1, errors=1)

Veamos qué se puede hacer...

El que dice ERROR parece ser simplemente que el test ese sólo es válido con el wiki que viene por default, sin haber cambiado páginas...

El que dice FAIL se queja de que SystemPagesInEglishGroup es una página del sistema... sin embargo, me fijo en el data y no aparece esa página (que es lo que sospecho que generaría el error...

Quizás lo que pasa es que debe estar en la lista SystemPagesGroup y no está... lo que voy a hacer es borrar todas las páginas que ahora están en el underlay ya que seguro que las que tenemos nosotros son totalmente anacrónicas y, mirando un par, no parece que las hayamos personalizado ni nada...

for page in \(c38d\)ndiceDe* AbandonedPages AllSystemPagesGroup BuscaP\(c3a1\)gina CambiosRecientes CategoryCategory CategoryHomepage EventStats* FindPage FrontPage Help* HomepageTemplate InterWiki LocalSpellingWords MoinMoin* OrphanedPages P\(c3a1\)ginaAleatoria P\(c3a1\)ginas* PageSize Python* RandomPage RecentChanges SiteNavigation Slide* StructuredText System* TitleIndex UserPreferences WantedPages Wiki* WordIndex XsltVersion _FightSpamOnTheInternet
do 
  echo "borrando $page"
  rm -rf $page
done

Lista de páginas que borré y pueden tener algo interesante para revisar del backup:

OK, ahora desapareció el FAILED. Con respecto al ERROR, el comentario en el fuente dice esto:

Tests various things in the packages package. Note that this package does
not care to clean up and needs to run in a test wiki because of that.

con lo cual, no me caliento.

Ahora http://icauce.ybab.net/moin.cgi?action=test da la siguiente salida:

MoinMoin Diagnosis
======================

Release 1.5.8
Revision release
Python version 2.5.1 (r251:54863, Jun 29 2007, 23:13:48) 
[GCC 3.3.5 (Debian 1:3.3.5-13)]
Python installed to /home/ap/run
PyXML is NOT installed
Python Path:
   /home/ap/run/etc/moinfarm
   /home/ap/run/lib/python2.5/site-packages
   /home/.vegas/ap/www/cauce.org.ar
   /home/ap/run/lib/python25.zip
   /home/ap/run/lib/python2.5
   /home/ap/run/lib/python2.5/plat-linux2
   /home/ap/run/lib/python2.5/lib-tk
   /home/ap/run/lib/python2.5/lib-dynload
   /home/ap/run/lib/python2.5/site-packages
Checking directories...
    data directory tests OK (set to '/home/ap/run/etc/moinfarm/icauce/data')
    user directory tests OK (set to '/home/ap/run/etc/moinfarm/icauce/data/user')

Server Environment:
    ONLY AVAILABLE FOR LOCAL REQUESTS ON THIS HOST!

Unit Tests:
error: access error like a dict ... ok
error: create with encoded string ... ok
error: create with any object ... ok
error: create with unicode ... ok
new locking: NoLockingForReading tests if files still work when filename is target of a rename ... ok
testQuoting (MoinMoin._tests.test_packages.QuotingTestCase) ... ok
testBasicPackageThings (MoinMoin._tests.test_packages.UnsafePackageTestcase) ... ERROR
Page: page.exists() finds existing pages only ... ok
PageEditor: expand MarianoAbsatz CamelCase ... ok
PageEditor: expand MarianoAbsatz extended name - enabled ... ok
PageEditor: expand [[MailTo(baby@baby.com.ar)]] ... ok
PageEditor: expand user variables ... ok
PageEditor: expand general variables ... ok
pysupport: import existing wiki plugin ... ok
pysupport: import name from existing module ... ok
pysupport: import nonexistent attritbue raises AttributeError ... ok
pysupport: import nonexistent module raises ImportError ... ok
pysupport: import nonexistent wiki plugin fail ... ok
request: normalize pagename: restrict groups to alpha numeric Unicode ... ok
request: httpDate default rfc1123 ... ok
request: httpDate rfc850 ... ok
request: normalize pagename: normalize slashes ... ok
request: normalize pagename: normalize whitespace ... ok
request: normalize pagename: remove invalid unicode chars ... ok
request: normalize pagename: underscore convert to spaces and normalized ... ok
search: quoting bug - unquoted terms ... ok
search: quoting bug - quoted terms ... ok
user: encode ascii password ... ok
user: encode unicode password ... ok
user: isValidName: reject group names ... ok
user: isValidName: reject unicode non alpha numeric characters ... ok
user: isValidName: accept names in any language, with spaces ... ok
user: isValidName: reject leading, trailing or multiple whitespace ... ok
user: login with ascii password ... ok
user: login with non-ascii password in pre 1.3 user file ... ok
user: login replace old non-ascii password in pre 1.3 user file ... ok
user: login with non-ascii password ... ok
util.lock: ExclusiveLock: acquire ... ok
util.lock: ExclusiveLock: acquire after timeout ... ok
util.lock: os.stat().mtime consistency with time.time() ... ok
util.lock: ExclusiveLock: lock is exclusive ... ok
util.lock: ExclusiveLock: exists ... ok
util.lock: ExclusiveLock: expire ... ok
util.lock: ExclusiveLock: isExpired ... ok
util.lock: ExclusiveLock: isLocked ... ok
util.lock: ExclusiveLock: release ... ok
util.lock: ExclusiveLock: raise ValueError for timeout < 2.0 ... ok
util.mail: encode address: 'Phrase <local@domain>' ... ok
util.mail: encode Uncode address: 'ויקי <local@domain>' ... ok
util.mail: encode address with empty address: 'Phrase <>' ... ok
util.mail: encode address with empty phrase: '<local@domain>' ... ok
util.mail: encode invalid address 'Phrase <blah' ... ok
util.mail: encode simple address: local@domain ... ok
util.mail: decoding spam safe mail ... ok
util.web: make query sting from argument ... ok
util.web: make query sting from argument and keywords ... ok
util.web: make query sting from keywords ... ok
util.web: creating html select with no selection ... ok
util.web: creating html select with non existing selection ... ok
util.web: creating html select with selected item ... ok
widget.html: append to and extend composite element ... ok
widget.html: creating html widgets ... ok
widegt.html: invalid attributes raises exception ... ok
wikiacl: allow extra white space between entries ... ok
wikiacl: bad guy may not allowed anything ... ok
wikiacl: default meta acl ... ok
wikiacl: empty acl string raise StopIteration ... ok
wikiacl: empty names with rights ... ok
wikiacl: empty rights ... ok
wikiacl: ignore rights not in acl_rights_valid ... ok
wikiacl: ignore invalid acl ... ok
wikiacl: mixed wiki names and names with spaces ... ok
wikiacl: acl modifiers ... ok
wikiacl: multiple entries ... ok
wikiacl: multiple entries with spaces ... ok
wikiacl: multiple names with spaces ... ok
wikiacl: single name with spaces ... ok
wikiacl: single wiki name, single right ... ok
wikiacl: white space acl string raise StopIteration ... ok
wikiacl: applying acl by user name ... ok
wikidicts: create dict from keys and values in text ... ok
wikidict: names in SystemPagesGroup should be in request.dicts ... ok
wikidicts: initFromText: CamelCase links ... ok
wikidicts: initFromText: extended link ... ok
wikidicts: initFromText: extended names ... ok
wikidicts: initFromText: ignore anything but first level list itmes ... ok
wikidicts: initFromText: ignore non first level items ... ok
wikidicts: initFromText: strip whitespace around items ... ok
wikimacro: trivial macro works ... ok
wikiutil: good system page names accepted, bad rejected ... ok
wikiutil: good template names accepted, bad rejected ... ok
wikixml.marshal: create new marshal ... ok
wikixml.marshal: setting marshal property ... ok

======================================================================
ERROR: testBasicPackageThings (MoinMoin._tests.test_packages.UnsafePackageTestcase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/ap/run/lib/python2.5/site-packages/MoinMoin/_tests/test_packages.py", line 54, in setUp
    raise TestSkipped('This test needs to be run using the test wiki.')
TestSkipped: This test needs to be run using the test wiki.

----------------------------------------------------------------------
Ran 93 tests in 7.889s

FAILED (errors=1)

Bueno. Finalmente, todo parece andar bien (salvo que está con el estilo default... veremos si edu se apiada de nosotros... :-)

UpgradeDeMoinEnMúltiplesPasos (última edición 2008-01-29 14:14:45 efectuada por localhost)