Thanks you for your help. 

I understand now how I should setup testing for a django package. I'm using 
django-registration as an example , which works a similar way.

I have a weird problem at hand.
I'm creating a django package and would like to provide some test cases for it.
The package is named ajax_forms and the full path is part of my PYTHONPATH. 
This directory also contains a tests directory (with the init.py file) a 
tests.py file (containing the tests) and a urls.py file.
Now I want to run the tests.

The ajax_forms parent directory has an example project setup with ajax_forms in 
INSTALLED_APPS.

But I can't seem to let the tests run:

 >> ./manage.py test ajax_forms
Creating test database for alias 'default'...

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK
Destroying test database for alias 'default'...

No tests are found so I try to be more specific:

 >> ./manage.py test ajax_forms.tests
....
raise ValueError("Test label '%s' does not refer to a test" % label)
ValueError: Test label 'ajax_forms.tests' does not refer to a test
(ajax-validation)

Even ./manage.py ajax_forms.tests.tests.AjaxFormViewTest will not find the 
tests and gives the same error as above.

But trying to import the test case from the ./manage.py shell works fine

In [2]: from ajax_forms.tests.tests import AjaxFormViewTest

I'm kinda clueless here, on what's going on.


> 
> 
> 
>> I think you could create an urls.py file for your tests and attach
>> your views there. Then use the test client to direct requests to those
>> test URLs and assert that the response is what you expect.
> 
> I didn't know that could work. 
> I think I'll also need to create views that extend these views that I want to 
> test.
> Since they need actual implementation, I think, such as template_name and 
> model etc ..
> 
> How would the test client then now where to look for these views, since there 
> will be some reversing involved I think.
> 
> self.client.get(reverse("ajax_form_view"))
> 
> I don't see how the client will find my urls.py file and without the broader, 
> actual django application as context ?
> 
> 
>> 
>> Now, this is probably not going to be practical to test your jQuery
>> components, but you might want to ask on a JS-focused list regarding
>> unittesting JS for this purpose.
>> 
>> Thomas
>> 
>> 2012/9/12 Jonas Geiregat <jo...@geiregat.org>:
>>> 
>>> I can now show you what I really would like to write tests for.
>>> 
>>> https://github.com/jonasgeiregat/django-ajax-forms
>>> 
>>> The code I would like to test is in ajax_forms/views.py mainly the
>>> AjaxFormView and the AjaxModelFormView.
>>> 
>>> Any help is appreciated!
>>> 
>>> 
>>> Is it a view mix in?
>>> 
>>> The package actually already changed from containing a view mix in to actual
>>> views that should be subclassed by the users using the package.
>>> 
>>> It's a bit difficult to tell you much without more information.
>>> 
>>> For example, a view derived from FormView. Like I said the user should
>>> subclass this view again as you would normally do with CBV.
>>> 
>>> Currently the package is just a package/directory with views.py, models.py,
>>> urls.py and of course __init__.py to make it a module.
>>> 
>>> It's hard to test views without having an actual django project to test it
>>> again, I think.  Correct me if I'm wrong here.
>>> So I created an example django project that is using this package in the
>>> directory below the package, thus the directory containing the README,
>>> setup.py etc .. files.
>>> 
>>> The example app will hold a tests.py file which will contain my tests which
>>> will be testing the actual functionality of my views.
>>> 
>>> Basically I'm asking do I need an actual django project to test just a
>>> views.py file or can I just write some tests without a containing django
>>> project to test a views.py file.
>>> And if so, I'm kinda lost on how you would start on such a task.
>>> 
>>> A few you things that you may find useful or not for testing :
>>> 
>>> .  Test cases can override settings such as the urlconf
>>> .  There's a test client to test views
>>> .  Class based views can sometimes be tested without any of the former by
>>> just testing the methods in them
>>> .   You can always use mocking library
>>> .  Tests are basically just python code with a lot of asserts, you can
>>> always add viewed in them
>>> .  You can use fixtures for test data if you see fit
>>> 
>>> Hope this helps!
>>> 
>>> Thomas
>>> 
>>> On Sep 10, 2012 5:23 PM, "Jonas Geiregat" <jo...@geiregat.org> wrote:
>>>> 
>>>> Hello,
>>>> 
>>>> I've created a simple reusable django package. This package basically
>>>> consists out of a views.py file, with some helper functions.
>>>> 
>>>> I want to write some tests for what's in this file. This file contains a
>>>> mixin , so I probably can't test it directly.
>>>> 
>>>> What's the best way to test a django package ?
>>>> 
>>>> Do I need to include some kind of example project that, uses my mixin and
>>>> has tests files just as one would test a normal django application ?
>>>> 
>>>> I've tried googling but, there's little about this. Most of the things
>>>> I've found where related to testing actual django applications.
>>>> 
>>>> Any help is appreciated.
>>>> 
>>>> Jonas
>>>> 
>>>> 
>>>> --
>>>> 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.
>>>> 
>>> 
>>> --
>>> 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.
>>> 
>>> 
>>> 
>>> --
>>> 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.
>>> 
>>> 
>>> --
>>> 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.
>> 
>> -- 
>> 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.
>> 
> 
> -- 
> 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.
> 

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