On 6/14/07, Andrew <[EMAIL PROTECTED]> wrote:
> I've since come across the Fixture library (http://code.google.com/p/
> fixture/) which solves the problem of creating and loading fixtures
> and I am trying to see if I can use this from within Turbogears. Has
> any one had any experience of using this?

Yes you *should* be able to use fixture from within TurboGears.  But
you'll have to take this with a grain of salt since 1) I'm not very
familiar with TurboGears and 2) I haven't tested this code.  I took an
example from the docs and wrote some code using the fixture module to
accomplish more or less the same thing.  Let me know if you have
questions or if it doesn't work ;)


"""example using fixture to accomplish the equivalent of the Turbo
Gears example
from Testing Your Model - http://docs.turbogears.org/1.0/Testing

"""

from turbogears import testutil
from projectname import model
from fixture import DataSet, SQLObjectFixture

from turbogears import database
database.set_db_uri("sqlite:///:memory:")

# this loads a row of data just like the docs do with test_name()
class MyUrlData(DataSet):
    class tg_url:
        name="TurboGears"
        link="http://www.turbogears.com";
        description="cool python web framework"

# this creates a fixture object, which is sort of like importing a
python module :
db_fixture = SQLObjectFixture(
    # this says to load the MyUrlData rows using the sqlobject named MyURL :
    env={'MyUrlData': MyUrl},
    # the dsn from above (note that this works because SO pools connections) :
    dsn="sqlite:///:memory:")

class TestMyURL(testutil.DBTest):
    model = model

    def setUp(self):
        super(TestMyURL, self).setUp()
        self.data = db_fixture.data(MyUrlData)
        self.data.setup()

    def tearDown(self):
        super(TestMyURL, self).tearDown()
        self.data.teardown()

    def test_name(self):
        entry = model.MyUrl.select()[0]
        assert entry.name==self.data.tg_url.name # i.e. TurboGears

    def test_model_reset(self):
        # this might fail?  I'm not sure what was resets the model
        entry = list(model.MyUrl.select())
        assert len(entry) is 0

--~--~---------~--~----~------------~-------~--~----~
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