Closed mjtamlyn closed 8 years ago
hi @mjtamlyn, thank you for your submission! We're happy to accept this project for this year's Rails Girls Summer of Code. :tada: Feel free to go ahead and work on a project plan with any interested teams, as their applications need to be in by April 14th, 23:59 CET. I'll send you an email today with relevant information, but do spread the word among the Django/Python community if you can and think it would be effective to get interested students on board!
This project will probably require you to be quite familiar with Django and Python.
However, this now means that Django has a very large and powerful test suite without much separation or control from a user's perspective, so the goal of this project would be to add new options and suite types to allow running of specific types of tests, be they only a certain class (e.g. unit-tests only, selenium tests only) or excluding tests (such as the ones in contrib or third-party apps) from the main test run easily. In order to do this, we need a strong understanding of what tests we already have.
Django's test suite is also very large with over 1000 models. In some areas, the tests are poorly structured and it is not clear where similar related tests should be placed. It is likely there may be some duplication of features tested, and there are certainly edge cases which are not tested. For example, standardising all the unit tests necessary for a particular model field type would be beneficial.
Whilst a lot of the actual work is likely to be quite straightforwards, it will require a good understanding of many features that Django has will be helpful when trying to ascertain which areas the tests are testing. Because the work can be split up into a wide range of small tasks with a cumulative large incremental gain, there is a high chance of some success even with a limited experience.
Issues to consider:
--debug-sql
option which would help developers working on Django?py.test
?Some easy things to do:
setupTestData
methodtests.py
files into logical separate tests and files, making use of theDiscoveryRunner
's ability to findtest_foo.py
files.test_foo
andtest_foo_regress
sections which are separate due to legacy purposes onlySome things not to consider: