On Tue, Sep 23, 2008 at 3:07 AM, proteus guy <[EMAIL PROTECTED]> wrote: > Here's a fun one for you testing gurus! I have a Django app that uses an > irc server to communicate events to a system. My models utilize the django > model save signal to post an irc message when something is updated. For unit > testing I've been able to monkey-patch the IRC connection object no problem > and everything's dandy. However, most of the tests require fixture objects > so a certain state is established prior to each test. Since fixtures get > loaded prior to my unit test code getting loaded the monkey-patching hasn't > occurred yet and the save signal for the fixture model objects is causing > the system to attempt to talk to a real irc server. According to the Django > documentation I can use settings.TEST_RUNNER to get control of the > fixture/test discovery/execution but this only works for manage.py and is > ignored by nosetests (and its Django plugin). > > Appreciate any ideas...
As Russ said, you can try to wrap up nosetests into your own run_tests() method but IIRC the Django plugin for nose is already hooking into setup_test_environment() which is what is loading your fixture data (I think). To do some monkey patching before fixtures are loaded then you can create a custom nose plugin and give it a score attribute of 1 so that it gets executed before nose's Django plugin. Docs and recipes for writing plugins are here: http://somethingaboutorange.com/mrl/projects/nose/doc/writing_plugins.html You probably want something simple like this: import os from nose.plugins.base import Plugin class MonkeyPatch(Plugin): enabled = True name = 'mokeypatch' score = 1 def options(self, parser, env=os.environ): pass def configure(self, options, conf): pass def begin(self): monkey_patch_whatever() > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---