It looks like you may be using in-memory models instead of saving them to the database? In case your go_available() method does save the OrderFactory instance, you'll still need to refresh the object from the database using Model.refresh_from_db() in test_2().
On Monday, June 1, 2015 at 5:20:03 AM UTC-4, Gagaro wrote: > > Hi, > > I have an hard time understanding how I am supposed to use setUpTestData. > The documentation isn't very clear about it ( > https://docs.djangoproject.com/en/1.8/topics/testing/tools/#django.test.TestCase.setUpTestData > ). > > "The class-level atomic block described above allows the creation of > initial data at the class level, once for the whole TestCase.". and "Note > that if the tests are run on a database with no transaction support (for > instance, MySQL with the MyISAM engine), setUpTestData() will be called > before each test, negating the speed benefits." let me think that the > changes made by the test should be rollbacked after each test. > > So I would expect the following to works: > > class OrderBugTest(TestCase): > > @classmethod > def setUpTestData(cls): > cls.order = OrderFactory() > cls.order.go_available() > cls.order.go_suspended() > > def test_1(self): > """ Ok. """ > self.order.go_completed() > self.assertEqual(self.order.state, 'completed') > > def test_2(self): > """ Fails, order is modified from test_1. """ > self.assertEqual(self.order.state, 'suspended') > > Does this means only static data should be created this way ? Can't I > modify data created this way in the test ? Am I doing something wrong ? > > Thanks. > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/75c426dc-9452-4c87-99be-d71cfae5a4f5%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

