The following setup will DROP and CREATE your database therefore
deleting all data in it before each test.  You will need to populate
your data base with test data in the setUp method.

import turbogears.testutil
import turbogears.database
import sqlobject

turbogears.database.set_db_uri("notrans_mysql://researcher:[EMAIL PROTECTED]:
3306/research_test")

import research.model
from research.controllers import *
from research.model import *
import cherrypy

cherrypy.root = Root()

class TestModel(turbogears.testutil.DBTest):

    model = research.model

     def setUp(self):
         turbogears.testutil.DBTest.setUp(self)
         #SETUP TEST DATA HERE

     def test_sandbox_controller():
         result = testutil.call(cherrypy.root.play)
         print 'play returned :', result
         assert result == True

    ....


On 4/17/07, Denny <[EMAIL PROTECTED]> wrote:
>
> I don't understand what you're saying here!!??!!  Can you be more
> specific about what needs to be done,
> may examples of what I may need to add to my testing code!?!!  I'm not
> using SQLite, but MySQL.
>
> My test.cfg contains:
>
>       sqlobject.dburi="notrans_mysql://researcher:[EMAIL PROTECTED]:
> 3306/research_test"
>
> test-models.py seems to complete OK. but test-controllers.py is where
> my problem seems to be.
> If I manually create the required table in the above database,
> nosetests completes successfully, but
> the table has been deleted!!?!!
>
> Below are the results of my latest nosetests run;  and
>     the contents of my test-controllers.py (which seems to be what's
> failing):
>
> ======================================================================
> ERROR: test module research.tests.test_controllers in /home/dthury/
> projects/Somerville/research
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/lib/python2.4/site-packages/nose-0.9.2-py2.4.egg/nose/
> suite.py", line 51, in run
>     self.setUp()
>   File "/usr/lib/python2.4/site-packages/nose-0.9.2-py2.4.egg/nose/
> suite.py", line 200, in setUp
>     self.module = _import(self.moduleName, [self.path], self.conf)
>   File "/usr/lib/python2.4/site-packages/nose-0.9.2-py2.4.egg/nose/
> importer.py", line 101, in _import
>     mod = load_module(fqname, fh, filename, desc)
>   File "/home/dthury/projects/Somerville/research/research/tests/
> test_controllers.py", line 2, in ?
>     from research.controllers import *
>   File "/home/dthury/projects/Somerville/research/research/
> controllers.py", line 26, in ?
>     class sandboxSelectionFields(widgets.WidgetsList):
>   File "/home/dthury/projects/Somerville/research/research/
> controllers.py", line 27, in sandboxSelectionFields
>     sandboxID = widgets.RadioButtonList(options=get_sandbox_options(),
> validator=validators.NotEmpty)
>   File "/home/dthury/projects/Somerville/research/research/
> controllers.py", line 21, in get_sandbox_options
>     for sandbox in sandbox_list:
>   File "/usr/lib/python2.4/site-packages/SQLObject-0.7.4-py2.4.egg/
> sqlobject/sresults.py", line 155, in __iter__
>     return iter(list(self.lazyIter()))
>   File "/usr/lib/python2.4/site-packages/SQLObject-0.7.4-py2.4.egg/
> sqlobject/sresults.py", line 163, in lazyIter
>     return conn.iterSelect(self)
>   File "/usr/lib/python2.4/site-packages/SQLObject-0.7.4-py2.4.egg/
> sqlobject/dbconnection.py", line 365, in iterSelect
>     select, keepConnection=False)
>   File "/usr/lib/python2.4/site-packages/SQLObject-0.7.4-py2.4.egg/
> sqlobject/dbconnection.py", line 705, in __init__
>     self.dbconn._executeRetry(self.rawconn, self.cursor, self.query)
>   File "/usr/lib/python2.4/site-packages/SQLObject-0.7.4-py2.4.egg/
> sqlobject/mysql/mysqlconnection.py", line 78, in _executeRetry
>     return cursor.execute(myquery)
>   File "/usr/lib/python2.4/site-packages/MySQLdb/cursors.py", line
> 137, in execute
>     self.errorhandler(self, exc, value)
>   File "/usr/lib/python2.4/site-packages/MySQLdb/connections.py", line
> 33, in defaulterrorhandler
>     raise errorclass, errorvalue
> ProgrammingError: (1146, "Table 'research_test.sandboxes' doesn't
> exist")
>
> ----------------------------------------------------------------------
> Ran 1 test in 1.636s
>
> FAILED (errors=1)
>
> ==================================================
> ===================test controllers.py====================
>
> from turbogears import testutil
> from research.controllers import *
> from research.model import *
> import cherrypy
>
>
> cherrypy.root = Root()
>
> def test_sandbox_controller():
>     result = testutil.call(cherrypy.root.play)
>     print 'play returned :', result
>     assert result == True
>
> def test_method():
>     "the index method should return a string called now"
>     import types
>     result = testutil.call(cherrypy.root.index)
>     print "Index method returned:", result
>
> def test_indextitle():
>     "The indexpage should have the right title"
>     testutil.createRequest("/")
>     print cherrypy.response.body[0]
>     assert "<title>SNP Research System</title>" in
> cherrypy.response.body[0]
>
>
> Thanks,
>    Denny
>
> On Apr 16, 4:13 pm, "Joost Moesker" <[EMAIL PROTECTED]> wrote:
> > The setup and tearDown methods on testutils.DBTest automatically
> > create and drop the database schema per testcase.  For this to work
> > you need to set the model attribute of the class to reference your
> > model module. It's common to use an SQLite 'in memory' database for
> > unittests to speed-up the peformance.
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/turbogears?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to