On Sat, 2009-02-14 at 11:28 -0800, pault wrote:
> I have defined a custom error but if I test if custom error gets
> raised it fails if I test for Exception the test passes
> 
> class CustomError(Exception):
>     """
>     This exception is my custom error
>     """
> 
> class Company(models.Model):
>     name = models.CharField(max_length=200)
> 
>     def test_error(self):
>         raise CustomError('hello')
> 
> 
> and in my tests.py:
> 
> import unittest
> from api.models import
> Company,Customer,Employee,Location,Product,ProductCategory,AllreadyPayedError,CustomError
> 
> #class AllreadyPayedException(Exception): pass

You mean AlreadyPaidException. Trust me on this. :-)

> 
> class CompanyTestCase(unittest.TestCase):
>     def setUp(self):
>         self.company = Company.objects.create(name="lizto")
> 
>     def test2(self):
>         self.assertRaises(CustomError, self.company.test_error)
> 
> 
> ======================================================================
> ERROR: test2 (lizto.api.tests.CompanyTestCase)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/Users/......./tests.py", line 27, in test2
>     self.assertRaises(CustomError, self.company.test_error)
>   File "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/
> python2.5/unittest.py", line 320, in failUnlessRaises
>     callableObj(*args, **kwargs)
>   File "/Users/....../models.py", line 17, in test_error
>     raise CustomError('hello')
> CustomError: hello

Using the code you provide (after removing the imports that don't exist
in the code you provide), this works perfectly for me. So there's
something special about your setup.

If I were you, I'd start from the simple example you show. Create an app
that only contains that models.py and that tests.py and fix the import
line to remove everything except Company and CustomError. That's what
passes for me.

Regards,
Malcolm


--~--~---------~--~----~------------~-------~--~----~
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 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to