Warning: Can't synchronize with repository "(default)" (Unsupported version control system "svn": No module named svn). Look in the Trac log for more information.

Ticket #1217 (closed defect: fixed)

Opened 12 years ago

Last modified 12 years ago

nosetests fresh quickstarted identity project: Exception in thread VisitManager

Reported by: jeffk Owned by: anonymous
Priority: normal Milestone:
Component: Tests Version: trunk
Severity: normal Keywords: quickstart nosetests thread visit manager
Cc:

Description

Using turbogears trunk r2269 (system and dependency configuration described in #1214):

Running nosetests on a fresh quickstarted project using identity gives the following error:

/software/tgprojects $ tg-admin quickstart -i -p tgtestidentity tgtestidentity
Selected and implied templates:
(...)
writing manifest file 'tgtestidentity.egg-info/SOURCES.txt'

/software/tgprojects/tgtestidentity $ nosetests
Failed to create client object: Daemon not running
..
----------------------------------------------------------------------
Ran 2 tests in 2.050s

OK
Exception in thread VisitManager (most likely raised during interpreter shutdown):
Traceback (most recent call last):
  File "/usr/lib/python2.4/threading.py", line 442, in __bootstrap
  File "/usr/lib/python2.4/site-packages/turbogears/visit/api.py", line 257, in run
  File "/usr/lib/python2.4/threading.py", line 348, in wait
  File "/usr/lib/python2.4/threading.py", line 196, in wait
exceptions.TypeError: exceptions must be classes, instances, or strings (deprecated), not NoneType
Unhandled exception in thread started by 
Error in sys.excepthook:

Original exception was:
Unhandled exception in thread started by 
Error in sys.excepthook:

Original exception was:

It's working fine in non-identity quickstarts, just as a sanity check:

/software/tgprojects $ tg-admin quickstart -p tgtest tgtest        
Do you need Identity (usernames/passwords) in this project? [no] 
Selected and implied templates:
(...)
writing manifest file 'tgtest.egg-info/SOURCES.txt'

jtk@laptop /software/tgprojects/tgtest $ nosetests
Failed to create client object: Daemon not running
..
----------------------------------------------------------------------
Ran 2 tests in 1.934s

OK

Attachments

test_controllers.py_tmpl.diff Download (1.1 KB) - added by jeffk 12 years ago.
patch to add stopTurboGears and login page title test to identity quickstart

Change History

comment:1 Changed 12 years ago by alberto

  • Status changed from new to closed
  • Resolution set to fixed

I'm sorry but I can't reproduce this problem:

(TurboGears-trunk)jal:~/src/python/checkouts/turbogears-trunk alberto$ tg-admin quickstart -i -p tgtestidentity tgtestidentity

(.... paste.script doing lot's of stuff.....)

(TurboGears-trunk)jal:~/src/python/checkouts/turbogears-trunk alberto$ cd tgtestidentity/
(TurboGears-trunk)jal:~/src/python/checkouts/turbogears-trunk/tgtestidentity alberto$ nosetests 
Registering Service tgtestidentity: development._http._tcp port 8080 path=/
..
----------------------------------------------------------------------
Ran 2 tests in 1.142s

OK

Can you run tg-admin info and post back the results? Along with some enviroment info like OS, python version, etc... see if we can tarck it down...

Thanks, Alberto

comment:2 Changed 12 years ago by alberto

BTW, Isn't this the same as #1214??

Alberto

comment:3 Changed 12 years ago by jeffk

(alberto: same as #1214?) Not according to the error message output, it seems to be an error that didn't have a chance to manifest until #1214 was fixed. I included the part about a non-identity quickstart project not exhibiting this problem to convince (myself) that my system wasn't completely the problem here.

System Info, as requested:

$ tg-admin info
TurboGears Complete Version Information

TurboGears requires:

* TurboGears 1.1a0
* nose 0.9.1
* configobj 4.3.2
* RuleDispatch 0.5a0.dev-r2247
* setuptools 0.6c3
* FormEncode 0.6.1dev-r2135
* cElementTree 1.0.5-20051216
* PasteScript 1.0
* elementtree 1.2.6-20050316
* simplejson 1.4
* SQLObject 0.7.1
* CherryPy 2.2.1
* Genshi 0.3.6
* TurboKid 0.9.9
* TurboCheetah 0.9.5
* TurboJson 0.9.9
* PyProtocols 1.0a0
* Cheetah 1.0
* PasteDeploy 0.9.6
* Paste 1.1.1
* FormEncode 0.6.1dev-r2135
* kid 0.9.3
* Cheetah 1.0
* elementtree 1.2.6-20050316

Identity Providers 

* sqlobject (TurboGears 1.1a0)
* sqlalchemy (TurboGears 1.1a0)

tg-admin Commands 

* info (TurboGears 1.1a0)
* shell (TurboGears 1.1a0)
* quickstart (TurboGears 1.1a0)
* update (TurboGears 1.1a0)
* sql (TurboGears 1.1a0)
* i18n (TurboGears 1.1a0)
* toolbox (TurboGears 1.1a0)
* migrate (tgmigrate 0.2)

Visit Managers 

* sqlobject (TurboGears 1.1a0)
* sqlalchemy (TurboGears 1.1a0)

Template Engines 

* kid (TurboKid 0.9.9)
* cheetah (TurboCheetah 0.9.5)
* json (TurboJson 0.9.9)
* genshi-markup (Genshi 0.3.6)
* genshi-text (Genshi 0.3.6)
* genshi (Genshi 0.3.6)
* toscawidgets (ToscaWidgets 0.1a0dev-r2242)

Widget Packages 

* mochiinterpreter (MochiInterpreter 1.3.1)
* lightbox (Lightbox 2.0-p1)
* scriptaculous (Scriptaculous 1.6.2)
* moofx (moofx 1.2.4w2)
* selectshuttle (Select-Shuttle 1.0)
* checkboxtable (checkboxtable 0.80)
* tinymce (TurboTinyMCE 1.0.6)
* file_fields (FileFields 0.1a6.dev-r464)
* tgpaginate (TGPaginate 0.1a0.dev-r519)
* tgfklookup (TGFKLookup 0.1a0.dev-r522)

TurboGears Extensions 

* visit (TurboGears 1.1a0)
* identity (TurboGears 1.1a0)
* file_server (FileFields 0.1a6.dev-r464)
* turbomail (TurboMail 2.0.3)
* tgfklookup (TGFKLookup 0.1a0.dev-r522)
* toscawidgets (ToscaWidgets 0.1a0dev-r2242)

A snip of Gentoo Linux' emerge --info:

# emerge --info
Portage 2.1.2_rc3-r9 (default-linux/x86/2006.1, gcc-4.1.1, glibc-2.5-r0, 2.6.19-gentoo-r2 i686)
=================================================================
System uname: 2.6.19-gentoo-r2 i686 mobile AMD Athlon(tm) XP-M 2000+
Gentoo Base System version 1.12.8
Last Sync: Fri, 22 Dec 2006 21:30:01 +0000
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [enabled]
ccache version 2.4 [disabled]
dev-java/java-config: 1.3.7, 2.0.31
dev-lang/python:     2.4.4
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     2.4-r6
sys-apps/sandbox:    1.2.18.1
sys-devel/autoconf:  2.13, 2.61
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
sys-devel/binutils:  2.17
sys-devel/gcc-config: 1.3.14
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.17-r2
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=athlon-xp -mtune=athlon-xp -O2 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"

And python info

emerge python -pv
[ebuild   R   ] dev-lang/python-2.4.4  USE="berkdb doc gdbm ipv6 ncurses readline ssl -bootstrap -build -nocxx -tk -ucs2" 7,976 kB 

# python
Python 2.4.4 (#1, Nov  4 2006, 18:38:54) 
[GCC 4.1.1 (Gentoo 4.1.1-r1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

# cat /usr/lib/python2.4/site-packages/easy-install.pth 
import sys; sys.__plen = len(sys.path)
./setuptools-0.6c3-py2.4.egg
/software/svn/turbogears
/software/svn/sqlalchemy/lib
/software/svn/pyyaml/lib
/software/svn/FormEncode
/software/svn/trac
/software/svn/webadmin
/software/TGQuickData-0.1
./ipython-0.7.2-py2.4.egg
./configobj-4.3.2-py2.4.egg
./cElementTree-1.0.5_20051216-py2.4-linux-i686.egg
./elementtree-1.2.6_20050316-py2.4.egg
./simplejson-1.4-py2.4.egg
./SQLObject-0.7.1-py2.4.egg
./TurboKid-0.9.9-py2.4.egg
./TurboCheetah-0.9.5-py2.4.egg
./TurboJson-0.9.9-py2.4.egg
./PyProtocols-1.0a0-py2.4-linux-i686.egg
./Cheetah-1.0-py2.4-linux-i686.egg
./PasteDeploy-0.9.6-py2.4.egg
./pysqlite-2.3.2-py2.4-linux-i686.egg
./psycopg2-2.0.5.1-py2.4-linux-i686.egg
./MochiInterpreter-1.3.1-py2.4.egg
./Lightbox-2.0_p1-py2.4.egg
./Scriptaculous-1.6.2-py2.4.egg
./moofx-1.2.4w2-py2.4.egg
./Select_Shuttle-1.0-py2.4.egg
./PlotKit-0.9.1w2-py2.4.egg
./geopy-0.93-py2.4.egg
./dnspython-1.4.0-py2.4.egg
./BeautifulSoup-3.0.3-py2.4.egg
./ots-0.4.2.1-py2.4-linux-i686.egg
./PasteScript-1.0-py2.4.egg
./checkboxtable-0.80-py2.4.egg
./PIL-1.1.6-py2.4-linux-i686.egg
./TurboTinyMCE-1.0.6-py2.4.egg
./CherryPy-2.2.1-py2.4.egg
./kid-0.9.3-py2.4.egg
./registration-0.2a-py2.4.egg
./textile-2.0.11-py2.4.egg
./MySQL_python-1.2.2b2-py2.4-linux-i686.egg
./tgmigrate-0.2-py2.4.egg
./migrate-0.2.2-py2.4.egg
./Genshi-0.3.6-py2.4.egg
./FileFields-0.1a6.dev_r464-py2.4.egg
./TurboMail-2.0.3-py2.4.egg
./RuleDispatch-0.5a0.dev_r2247-py2.4-linux-i686.egg
./TGPaginate-0.1a0.dev_r519-py2.4.egg
./python_cjson-1.0.2-py2.4-linux-i686.egg
./nose-0.9.1-py2.4.egg
./TGFKLookup-0.1a0.dev_r522-py2.4.egg
./ToscaWidgets-0.1a0dev_r2242-py2.4.egg
./ToscaWidgetsForms-0.1a0dev_r2239-py2.4.egg
./Paste-1.1.1-py2.4.egg
./vobject-0.4.7-py2.4.egg
./python_dateutil-1.1-py2.4.egg
./PythonEggTools-1.0a0-py2.4.egg
import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)

# ls -1 /usr/lib/python2.4/site-packages/*egg-link
/usr/lib/python2.4/site-packages/FormEncode.egg-link
/usr/lib/python2.4/site-packages/SQLAlchemy.egg-link
/usr/lib/python2.4/site-packages/TGQuickData.egg-link
/usr/lib/python2.4/site-packages/TracWebAdmin.egg-link
/usr/lib/python2.4/site-packages/TurboGears.egg-link

comment:4 Changed 12 years ago by jeffk

For completeness, I just rebuilt python, to preclude the possibility of a threading error due to gcc or underlying library problem. No change in the reported behavior.

comment:5 Changed 12 years ago by alberto

  • Status changed from closed to reopened
  • Resolution fixed deleted

I thought it was related because of the {{{Failed to create client object: Daemon not running }}} line in the log... Anyway. it seems not related after all so I'll reopen.

The message seems related to the VisitManager? thread... Any clue who is dumping that message? Anyone else is experiencing something similar?

Alberto

comment:6 Changed 12 years ago by jeffk

As an additional sanity check, I switched back to branches/1.0, and ran the same quickstart with/without identity, nosetests pattern. Surprisingly (and assuming I got the trunk to 1.0 switchover completely right) this error is the same with branches/1.0 and /trunk. So, there's something 'interesting' about my system that gives a repeatable if not reproducible error.

I've simplified the installed package list, and documented the configuration and output below:

There's a semi-noteworthy Cheetah error in the quickstart scripting. Since it is present in both types (identity/non-identity), perhaps it has something to do with the Failed to create client object: Daemon not running error.

/software/tgprojects $ tg-admin quickstart -i -p tgtestidentity tgtestidentity
Selected and implied templates:
(...)
Creating template turbogears
  Recursing into +package+
    Recursing into config
      Creating ./tgtestidentity/tgtestidentity/config/
/usr/lib/python2.4/site-packages/Cheetah-1.0-py2.4-linux-i686.egg/Cheetah/Compiler.py:1112: UserWarning: You supplied an empty string for the source!
  warnings.warn("You supplied an empty string for the source!", )
      Copying __init__.py_tmpl to ./tgtestidentity/tgtestidentity/config/__init__.py
      Copying app.cfg_tmpl to ./tgtestidentity/tgtestidentity/config/app.cfg
      Copying log.cfg_tmpl to ./tgtestidentity/tgtestidentity/config/log.cfg
    Copying controllers.py_tmpl to ./tgtestidentity/tgtestidentity/controllers.py
(...)
writing manifest file 'tgtestidentity.egg-info/SOURCES.txt'

/software/tgprojects/tgtestidentity $ nosetests
Failed to create client object: Daemon not running
..
----------------------------------------------------------------------
Ran 2 tests in 2.288s

OK
Exception in thread VisitManager (most likely raised during interpreter shutdown):
Traceback (most recent call last):
  File "/usr/lib/python2.4/threading.py", line 442, in __bootstrap
  File "/software/svn/turbogears10/turbogears/visit/api.py", line 257, in run
  File "/usr/lib/python2.4/threading.py", line 348, in wait
  File "/usr/lib/python2.4/threading.py", line 196, in wait
exceptions.TypeError: exceptions must be classes, instances, or strings (deprecated), not NoneType
Unhandled exception in thread started by 
Error in sys.excepthook:

Original exception was:
/software/tgprojects $ tg-admin quickstart -p tgtest tgtest        
Do you need Identity (usernames/passwords) in this project? [no] 
Selected and implied templates:
(...)
Creating template turbogears
  Recursing into +package+
    Recursing into config
      Creating ./tgtest/tgtest/config/
/usr/lib/python2.4/site-packages/Cheetah-1.0-py2.4-linux-i686.egg/Cheetah/Compiler.py:1112: UserWarning: You supplied an empty string for the source!
  warnings.warn("You supplied an empty string for the source!", )
      Copying __init__.py_tmpl to ./tgtest/tgtest/config/__init__.py
      Copying app.cfg_tmpl to ./tgtest/tgtest/config/app.cfg
(...)
writing manifest file 'tgtest.egg-info/SOURCES.txt'

/software/tgprojects/tgtest $ nosetests
Failed to create client object: Daemon not running
..
----------------------------------------------------------------------
Ran 2 tests in 1.736s

OK

I've simplified the setup by removing various turbogears add-in packages, including sqlalchemy. The initial report of this bug had sqlalchemy trunk installed with python setup.py develop

Question: Are the sqlalchemy Identity Provider and Visit Manager supposed to show up in tg-admin info if I've removed it as a python package? See the configuration below, SQLAlchemy has been removed as far as I know.

I deleted the working copy and re-checked-out branches/1.0 r2302, Last Changed r2268, so to the extent I can make it, this is a clean environment.

/software/tgprojects/tgtest $ tg-admin info
TurboGears Complete Version Information

TurboGears requires:

* TurboGears 1.0b3dev-r2268
* nose 0.9.0
* configobj 4.3.2
* RuleDispatch 0.5a0.dev-r2115
* setuptools 0.6c3
* FormEncode 0.5.1
* cElementTree 1.0.5-20051216
* PasteScript 0.9.7
* elementtree 1.2.6-20050316
* simplejson 1.3
* CherryPy 2.2.1
* TurboKid 0.9.8
* TurboCheetah 0.9.5
* TurboJson 0.9.9
* PyProtocols 1.0a0
* Cheetah 1.0
* PasteDeploy 0.9.6
* Paste 0.9.7
* kid 0.9.3
* Cheetah 1.0
* elementtree 1.2.6-20050316

Identity Providers 

* sqlobject (TurboGears 1.0b3dev-r2268)
* sqlalchemy (TurboGears 1.0b3dev-r2268)

tg-admin Commands 

* info (TurboGears 1.0b3dev-r2268)
* shell (TurboGears 1.0b3dev-r2268)
* quickstart (TurboGears 1.0b3dev-r2268)
* update (TurboGears 1.0b3dev-r2268)
* sql (TurboGears 1.0b3dev-r2268)
* i18n (TurboGears 1.0b3dev-r2268)
* toolbox (TurboGears 1.0b3dev-r2268)

Visit Managers 

* sqlobject (TurboGears 1.0b3dev-r2268)
* sqlalchemy (TurboGears 1.0b3dev-r2268)

Template Engines 

* genshi-markup (Genshi 0.3.6)
* genshi-text (Genshi 0.3.6)
* genshi (Genshi 0.3.6)
* kid (TurboKid 0.9.8)
* cheetah (TurboCheetah 0.9.5)
* json (TurboJson 0.9.9)

Widget Packages 


TurboGears Extensions 

* visit (TurboGears 1.0b3dev-r2268)
* identity (TurboGears 1.0b3dev-r2268)

.egg and .egg-link items in site-packages:

/usr/lib/python2.4/site-packages # ls -1d *egg*
Cheetah-1.0-py2.4-linux-i686.egg
CherryPy-2.2.1-py2.4.egg
FormEncode-0.5.1-py2.4.egg
Genshi-0.3.6-py2.4.egg
PIL-1.1.6-py2.4-linux-i686.egg
Paste-0.9.7-py2.4.egg
PasteDeploy-0.9.6-py2.4.egg
PasteScript-0.9.7-py2.4.egg
PyProtocols-1.0a0-py2.4-linux-i686.egg
PythonEggTools-1.0a0-py2.4.egg
RuleDispatch-0.5a0.dev_r2115-py2.4-linux-i686.egg
SQLObject-0.7.2-py2.4.egg
TracWebAdmin.egg-link
TurboCheetah-0.9.5-py2.4.egg
TurboGears.egg-link
TurboJson-0.9.9-py2.4.egg
TurboKid-0.9.8-py2.4.egg
cElementTree-1.0.5_20051216-py2.4-linux-i686.egg
configobj-4.3.2-py2.4.egg
elementtree-1.2.6_20050316-py2.4.egg
ipython-0.7.3-py2.4.egg
kid-0.9.3-py2.4.egg
nose-0.9.0-py2.4.egg
psycopg2-2.0.5.1-py2.4-linux-i686.egg
pysqlite-2.3.2-py2.4-linux-i686.egg
setuptools-0.6c3-py2.4.egg
simplejson-1.3-py2.4.egg

relevant contents of easy-install.pth:

./setuptools-0.6c3-py2.4.egg
/software/svn/pyyaml/lib
/software/svn/trac
/software/svn/webadmin
./Genshi-0.3.6-py2.4.egg
./PIL-1.1.6-py2.4-linux-i686.egg
./cElementTree-1.0.5_20051216-py2.4-linux-i686.egg
./elementtree-1.2.6_20050316-py2.4.egg
./ipython-0.7.3-py2.4.egg
./psycopg2-2.0.5.1-py2.4-linux-i686.egg
./pysqlite-2.3.2-py2.4-linux-i686.egg
./nose-0.9.0-py2.4.egg
./configobj-4.3.2-py2.4.egg
./RuleDispatch-0.5a0.dev_r2115-py2.4-linux-i686.egg
./FormEncode-0.5.1-py2.4.egg
./PasteScript-0.9.7-py2.4.egg
./simplejson-1.3-py2.4.egg
./CherryPy-2.2.1-py2.4.egg
./TurboKid-0.9.8-py2.4.egg
./TurboCheetah-0.9.5-py2.4.egg
./TurboJson-0.9.9-py2.4.egg
./PyProtocols-1.0a0-py2.4-linux-i686.egg
./Cheetah-1.0-py2.4-linux-i686.egg
./PasteDeploy-0.9.6-py2.4.egg
./Paste-0.9.7-py2.4.egg
./kid-0.9.3-py2.4.egg
./SQLObject-0.7.2-py2.4.egg
/software/svn/turbogears10

installed python system packages:

dev-python/gnome-python-desktop-2.16.0
dev-python/docutils-0.4
dev-python/egenix-mx-base-2.0.6
dev-python/pyxml-0.8.4
dev-python/wxpython-2.6.3.2
dev-python/pyrex-0.9.4.1
dev-python/pychm-0.8.4
dev-python/python-ldap-2.2.0
dev-python/dbus-python-0.71
dev-python/gnome-python-extras-2.14.0-r1
dev-python/numeric-24.2
dev-python/dnspython-1.4.0
dev-python/pygtk-2.10.3
dev-python/mod_python-3.2.10
dev-python/pycairo-1.2.2
dev-python/pyalsaaudio-0.2-r1
dev-python/python-fchksum-1.7.1
dev-python/twisted-2.4.0-r1
dev-python/pyopengl-2.0.1.09
dev-python/pyserial-2.2
dev-python/pyorbit-2.14.1
dev-python/pygobject-2.12.3
dev-python/psyco-1.5.1
dev-python/ctypes-1.0.1
dev-python/twisted-web-0.6.0-r1
dev-python/gst-python-0.10.6
dev-python/pyopenssl-0.6-r1
dev-python/gnome-python-2.16.2
dev-python/pycrypto-2.0.1-r5

I'd be glad to provide any additional system info or run any debugging steps as directed. Thanks.

Changed 12 years ago by jeffk

patch to add stopTurboGears and login page title test to identity quickstart

comment:7 Changed 12 years ago by jeffk

The fix is to "call turbogears.startup.stopTurboGears() at the end of each test", thanks to Nadav Samet's excellent documentation:  http://www.thesamet.com/blog/2006/06/02/four-tips-on-identity-testing/

Attached is a patch to add stopTurboGears() to each included test. An additional test for the login controller method is added, since that's part of identity quickstarted projects, too.

Index: test_controllers.py_tmpl
===================================================================
--- test_controllers.py_tmpl    (revision 2307)
+++ test_controllers.py_tmpl    (working copy)
@@ -1,3 +1,6 @@
+#if $identity != "none"
+import turbogears
+#end if
 from turbogears import testutil
 from ${package}.controllers import Root
 import cherrypy
@@ -9,8 +12,22 @@
     import types
     result = testutil.call(cherrypy.root.index)
     assert type(result["now"]) == types.StringType
+#if $identity != "none"
+    turbogears.startup.stopTurboGears()
+#end if
 
 def test_indextitle():
-    "The mainpage should have the right title"
+    "the index page should have the right title"
     testutil.createRequest("/")
     assert "<title>Welcome to TurboGears</title>" in cherrypy.response.body[0]
+#if $identity != "none"
+    turbogears.startup.stopTurboGears()
+#end if
+#if $identity != "none"
+
+def test_logintitle():
+    "login page should have the right title"
+    testutil.createRequest("/login")
+    assert "<title>Login</title>" in cherrypy.response.body[0]
+    turbogears.startup.stopTurboGears()
+#end if

quickstart (-i) output: tests/test_controllers.py

import turbogears
from turbogears import testutil
from tgtestidentity.controllers import Root
import cherrypy

cherrypy.root = Root()

def test_method():
    "the index method should return a string called now"
    import types
    result = testutil.call(cherrypy.root.index)
    assert type(result["now"]) == types.StringType
    turbogears.startup.stopTurboGears()

def test_indextitle():
    "the index page should have the right title"
    testutil.createRequest("/")
    assert "<title>Welcome to TurboGears</title>" in cherrypy.response.body[0]
    turbogears.startup.stopTurboGears()

def test_logintitle():
    "login page should have the right title"
    testutil.createRequest("/login")
    assert "<title>Login</title>" in cherrypy.response.body[0]
    turbogears.startup.stopTurboGears()

comment:8 Changed 12 years ago by alberto

  • Status changed from reopened to closed
  • Resolution set to fixed

Comitted ad modified version of the patch at [2313]. Thanks :)

comment:9 Changed 12 years ago by jeffk

For anyone referring to this issue later, [2314] and [2315] on #1214 implement the fix, in addition to the referenced [2313]. The teardown_func() docstring might be altered to refer to #1214 instead of, or in addition to, #1217.

Note: See TracTickets for help on using tickets.