def test_nesting_transactions(self): @test_db.commit_on_success def outer(should_fail=False): self.assertEqual(test_db.transaction_depth(), 1) User.create(username='******') inner(should_fail) self.assertEqual(test_db.transaction_depth(), 1) @test_db.commit_on_success def inner(should_fail): self.assertEqual(test_db.transaction_depth(), 2) User.create(username='******') if should_fail: raise ValueError('failing') self.assertRaises(ValueError, outer, should_fail=True) self.assertEqual(User.select().count(), 0) self.assertEqual(test_db.transaction_depth(), 0) outer(should_fail=False) self.assertEqual(User.select().count(), 2) self.assertEqual(test_db.transaction_depth(), 0)
def inner(should_fail): self.assertEqual(test_db.transaction_depth(), 2) User.create(username='******') if should_fail: raise ValueError('failing')
def outer(should_fail=False): self.assertEqual(test_db.transaction_depth(), 1) User.create(username='******') inner(should_fail) self.assertEqual(test_db.transaction_depth(), 1)