--
Ticket URL: <https://code.djangoproject.com/ticket/18586>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* owner: nobody => anonymous
* needs_docs: => 0
* status: new => assigned
* needs_tests: => 0
* needs_better_patch: => 0
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:1>
* owner: anonymous => judy2k
* status: assigned => new
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:2>
* owner: judy2k => anonymous
* status: new => assigned
* stage: Unreviewed => Accepted
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:3>
* owner: anonymous => judy2k
* status: assigned => new
Comment:
Last attempt to get the status of this ticket correct.
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:4>
* status: new => assigned
Comment:
Basic test refactorings now committed at
https://github.com/bedmondmark/django/tree/test_refactor - I'll issue a
Pull Request when I've finished the whole lot.
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:5>
Comment (by koniiiik):
Found another candidate:
`regressiontests.defer_regress.DeferRegressionTest.test_basic`
IMO, this test is broken because its results depend on the order of
execution of tests as it accesses the global model class storage. This
means it won't be that easy to rewrite this test.
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:6>
* component: Uncategorized => Testing framework
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:7>
Comment (by modi.konark@…):
Tried Merging the pull request by koniiik, there were lot of conflicts.
The test directory layout has changed and also the conventions used needed
to be re-worked.
Will be re-writing the tests and issue a pull request as and when they are
done.
https://github.com/django/django/pull/923 , for the test " Custom Columns
" .
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:8>
Comment (by claudep):
I'd just like to note that cutting single tests in multiple tests has a
cost for the test suite, as the database is flushed between tests. So it's
right and fine to separate tests when testing different features, but
don't just create test methods for each single database request.
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:9>
Comment (by Carl Meyer <carl@…>):
In [changeset:"483e1b807e7a3c9e49fe5fcbf9b1300ef98a381c"]:
{{{
#!CommitTicketReference repository=""
revision="483e1b807e7a3c9e49fe5fcbf9b1300ef98a381c"
Refs #18586 -- Split out long custom_columns lookup test into multiple
tests.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:10>
Old description:
New description:
There's quite a lot of unit tests that have been rewritten 1:1 from
doctests. These tests tend to verify all aspects of a certain feature at
once, they modify the state of the database throughout the whole test and
by the end of the test no one really knows what the database state is
supposed to be.
For example,
`modeltests.generic_relations.GenericRelationsTests.test_generic_relations`
walks through most of the features supported by `GenericForeignKeys`, it
is 130 lines long and in case the last assertion fails, you'll have to
spend ridiculous amounts of time figuring out what happened.
A likely incomplete list of similar tests:[[BR]]
~~modeltests.basic.ModelTest.test_lookup~~[[BR]]
--
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:11>
Old description:
> There's quite a lot of unit tests that have been rewritten 1:1 from
> doctests. These tests tend to verify all aspects of a certain feature at
> once, they modify the state of the database throughout the whole test and
> by the end of the test no one really knows what the database state is
> supposed to be.
>
> For example,
> `modeltests.generic_relations.GenericRelationsTests.test_generic_relations`
> walks through most of the features supported by `GenericForeignKeys`, it
> is 130 lines long and in case the last assertion fails, you'll have to
> spend ridiculous amounts of time figuring out what happened.
>
> A likely incomplete list of similar tests:[[BR]]
> ~~modeltests.basic.ModelTest.test_lookup~~[[BR]]
New description:
There's quite a lot of unit tests that have been rewritten 1:1 from
doctests. These tests tend to verify all aspects of a certain feature at
once, they modify the state of the database throughout the whole test and
by the end of the test no one really knows what the database state is
supposed to be.
For example,
`modeltests.generic_relations.GenericRelationsTests.test_generic_relations`
walks through most of the features supported by `GenericForeignKeys`, it
is 130 lines long and in case the last assertion fails, you'll have to
spend ridiculous amounts of time figuring out what happened.
A likely incomplete list of similar tests:[[BR]]
`modeltests.basic.ModelTest.test_lookup`[[BR]]
`modeltests.basic.ModelTest.test_object_creation`[[BR]]
~~modeltests.custom_columns.CustomColumnsTests.test_db_column~~[[BR]]
`modeltests.custom_managers.CustomManagerTests.test_manager`[[BR]]
`modeltests.custom_pk.CustomPKTests.test_custom_pk`[[BR]]
`modeltests.defer.DeferTests.test_defer`[[BR]]
`modeltests.expressions.ExpressionsTests.test_filter`[[BR]]
`modeltests.field_subclassing.CustomField.test_custom_field`[[BR]]
`modeltests.files.FileStorageTests.test_files`[[BR]]
`modeltests.get_or_create.GetOrCreateTests.test_get_or_create`[[BR]]
`modeltests.m2m_recursive.RecursiveM2MTests.test_recursive_m2m`[[BR]]
`modeltests.m2m_signals.ManyToManySignalsTest`[[BR]]
`modeltests.m2m_through.M2mThroughTests`[[BR]]
`modeltests.model_formsets.ModelFormsetTests`[[BR]]
`modeltests.model_forms.OldFormForXTests.test_with_data` (This one has
more than 500 lines!)[[BR]]
`modeltests.model_inheritance.ModelInheritanceTests`[[BR]]
`modeltests.model_package.ModelPackageTests.test_model_packages`[[BR]]
`modeltests.order_with_respect_to.OrderWithRespectToTests.test_basic`[[BR]]
`modeltests.signals.SignalTests.test_basic`
I only went through modeltests/*/tests.py; I might have overlooked a few
tests.
This ticket is meant to track all of them; each time a test is updated, we
can strike it out in the list above and once there is no item left, we can
close this. The point is to make the test suite help developers as much as
possible.
--
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:12>
Comment (by carljm):
@claudep If you want to look over the initial PR I just committed and
comment on whether you think these tests are split up too finely, I'd like
to make sure we have consensus on the right level of test granularity
before @modi.konark moves forward with more PRs.
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:13>
Comment (by claudep):
Carl, I guess we're also entering personal style here.
For example in that commit, I would have regrouped
`test_get_first_name`/`test_filter_first_name` and probably also the 3
last
(`test_get_all_authors_for_an_article`/`test_get_all_articles_for_an_author`/`test_get_author_m2m_relation`),
particularly as they are only querying data.
But once again, this is just me, and I can understand others have
different approaches.
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:14>
Comment (by Tim Graham <timograham@…>):
In [changeset:"0d98422b1365ae1e75051036936aab31248d5ee1"]:
{{{
#!CommitTicketReference repository=""
revision="0d98422b1365ae1e75051036936aab31248d5ee1"
Refactored RecursiveM2MTests into smaller pieces, refs #18586.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:15>
Old description:
> There's quite a lot of unit tests that have been rewritten 1:1 from
> doctests. These tests tend to verify all aspects of a certain feature at
> once, they modify the state of the database throughout the whole test and
> by the end of the test no one really knows what the database state is
> supposed to be.
>
> For example,
> `modeltests.generic_relations.GenericRelationsTests.test_generic_relations`
> walks through most of the features supported by `GenericForeignKeys`, it
> is 130 lines long and in case the last assertion fails, you'll have to
> spend ridiculous amounts of time figuring out what happened.
>
> A likely incomplete list of similar tests:[[BR]]
> `modeltests.basic.ModelTest.test_lookup`[[BR]]
> `modeltests.basic.ModelTest.test_object_creation`[[BR]]
> ~~modeltests.custom_columns.CustomColumnsTests.test_db_column~~[[BR]]
> `modeltests.custom_managers.CustomManagerTests.test_manager`[[BR]]
> `modeltests.custom_pk.CustomPKTests.test_custom_pk`[[BR]]
> `modeltests.defer.DeferTests.test_defer`[[BR]]
> `modeltests.expressions.ExpressionsTests.test_filter`[[BR]]
> `modeltests.field_subclassing.CustomField.test_custom_field`[[BR]]
> `modeltests.files.FileStorageTests.test_files`[[BR]]
> `modeltests.get_or_create.GetOrCreateTests.test_get_or_create`[[BR]]
> `modeltests.m2m_recursive.RecursiveM2MTests.test_recursive_m2m`[[BR]]
> `modeltests.m2m_signals.ManyToManySignalsTest`[[BR]]
> `modeltests.m2m_through.M2mThroughTests`[[BR]]
> `modeltests.model_formsets.ModelFormsetTests`[[BR]]
> `modeltests.model_forms.OldFormForXTests.test_with_data` (This one has
> more than 500 lines!)[[BR]]
> `modeltests.model_inheritance.ModelInheritanceTests`[[BR]]
> `modeltests.model_package.ModelPackageTests.test_model_packages`[[BR]]
> `modeltests.order_with_respect_to.OrderWithRespectToTests.test_basic`[[BR]]
> `modeltests.signals.SignalTests.test_basic`
>
> I only went through modeltests/*/tests.py; I might have overlooked a few
> tests.
>
> This ticket is meant to track all of them; each time a test is updated,
> we can strike it out in the list above and once there is no item left, we
> can close this. The point is to make the test suite help developers as
> much as possible.
New description:
There's quite a lot of unit tests that have been rewritten 1:1 from
doctests. These tests tend to verify all aspects of a certain feature at
once, they modify the state of the database throughout the whole test and
by the end of the test no one really knows what the database state is
supposed to be.
For example,
`modeltests.generic_relations.GenericRelationsTests.test_generic_relations`
walks through most of the features supported by `GenericForeignKeys`, it
is 130 lines long and in case the last assertion fails, you'll have to
spend ridiculous amounts of time figuring out what happened.
A likely incomplete list of similar tests:[[BR]]
`modeltests.basic.ModelTest.test_lookup`[[BR]]
`modeltests.basic.ModelTest.test_object_creation`[[BR]]
~~modeltests.custom_columns.CustomColumnsTests.test_db_column~~[[BR]]
`modeltests.custom_managers.CustomManagerTests.test_manager`[[BR]]
`modeltests.custom_pk.CustomPKTests.test_custom_pk`[[BR]]
`modeltests.defer.DeferTests.test_defer`[[BR]]
`modeltests.expressions.ExpressionsTests.test_filter`[[BR]]
`modeltests.field_subclassing.CustomField.test_custom_field`[[BR]]
`modeltests.files.FileStorageTests.test_files`[[BR]]
`modeltests.get_or_create.GetOrCreateTests.test_get_or_create`[[BR]]
~~modeltests.m2m_recursive.RecursiveM2MTests.test_recursive_m2m~~[[BR]]
`modeltests.m2m_signals.ManyToManySignalsTest`[[BR]]
`modeltests.m2m_through.M2mThroughTests`[[BR]]
`modeltests.model_formsets.ModelFormsetTests`[[BR]]
`modeltests.model_forms.OldFormForXTests.test_with_data` (This one has
more than 500 lines!)[[BR]]
`modeltests.model_inheritance.ModelInheritanceTests`[[BR]]
`modeltests.model_package.ModelPackageTests.test_model_packages`[[BR]]
`modeltests.order_with_respect_to.OrderWithRespectToTests.test_basic`[[BR]]
`modeltests.signals.SignalTests.test_basic`
I only went through modeltests/*/tests.py; I might have overlooked a few
tests.
This ticket is meant to track all of them; each time a test is updated, we
can strike it out in the list above and once there is no item left, we can
close this. The point is to make the test suite help developers as much as
possible.
--
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:16>
Comment (by Liav3000):
Hi. I just created https://github.com/liavkoren-
vmfarms/djangoDev/tree/ticket_18586 which refactors
modeltests.get_or_create.GetOrCreateTests.test_get_or_create into smaller
units and changes comments over to docstrings. I'd be happy to continue
crunching through the tests in this ticket if everything is okay with that
first set of changes.
Thanks, Liav.
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:17>
Comment (by bsilverberg):
I am going to start working on modeltests.basic.ModelTest.test_lookup
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:18>
Old description:
> There's quite a lot of unit tests that have been rewritten 1:1 from
> doctests. These tests tend to verify all aspects of a certain feature at
> once, they modify the state of the database throughout the whole test and
> by the end of the test no one really knows what the database state is
> supposed to be.
>
> For example,
> `modeltests.generic_relations.GenericRelationsTests.test_generic_relations`
> walks through most of the features supported by `GenericForeignKeys`, it
> is 130 lines long and in case the last assertion fails, you'll have to
> spend ridiculous amounts of time figuring out what happened.
>
> A likely incomplete list of similar tests:[[BR]]
> `modeltests.basic.ModelTest.test_lookup`[[BR]]
> `modeltests.basic.ModelTest.test_object_creation`[[BR]]
> ~~modeltests.custom_columns.CustomColumnsTests.test_db_column~~[[BR]]
> `modeltests.custom_managers.CustomManagerTests.test_manager`[[BR]]
> `modeltests.custom_pk.CustomPKTests.test_custom_pk`[[BR]]
> `modeltests.defer.DeferTests.test_defer`[[BR]]
> `modeltests.expressions.ExpressionsTests.test_filter`[[BR]]
> `modeltests.field_subclassing.CustomField.test_custom_field`[[BR]]
> `modeltests.files.FileStorageTests.test_files`[[BR]]
> `modeltests.get_or_create.GetOrCreateTests.test_get_or_create`[[BR]]
> ~~modeltests.m2m_recursive.RecursiveM2MTests.test_recursive_m2m~~[[BR]]
> `modeltests.m2m_signals.ManyToManySignalsTest`[[BR]]
> `modeltests.m2m_through.M2mThroughTests`[[BR]]
> `modeltests.model_formsets.ModelFormsetTests`[[BR]]
> `modeltests.model_forms.OldFormForXTests.test_with_data` (This one has
> more than 500 lines!)[[BR]]
> `modeltests.model_inheritance.ModelInheritanceTests`[[BR]]
> `modeltests.model_package.ModelPackageTests.test_model_packages`[[BR]]
> `modeltests.order_with_respect_to.OrderWithRespectToTests.test_basic`[[BR]]
> `modeltests.signals.SignalTests.test_basic`
>
> I only went through modeltests/*/tests.py; I might have overlooked a few
> tests.
>
> This ticket is meant to track all of them; each time a test is updated,
> we can strike it out in the list above and once there is no item left, we
> can close this. The point is to make the test suite help developers as
> much as possible.
New description:
There's quite a lot of unit tests that have been rewritten 1:1 from
doctests. These tests tend to verify all aspects of a certain feature at
once, they modify the state of the database throughout the whole test and
by the end of the test no one really knows what the database state is
supposed to be.
For example,
`modeltests.generic_relations.GenericRelationsTests.test_generic_relations`
walks through most of the features supported by `GenericForeignKeys`, it
is 130 lines long and in case the last assertion fails, you'll have to
spend ridiculous amounts of time figuring out what happened.
A likely incomplete list of similar tests:[[BR]]
`modeltests.basic.ModelTest.test_lookup`[[BR]]
`modeltests.basic.ModelTest.test_object_creation`[[BR]]
~~modeltests.custom_columns.CustomColumnsTests.test_db_column~~[[BR]]
`modeltests.custom_managers.CustomManagerTests.test_manager`[[BR]]
`modeltests.custom_pk.CustomPKTests.test_custom_pk`[[BR]]
`modeltests.defer.DeferTests.test_defer`[[BR]]
`modeltests.expressions.ExpressionsTests.test_filter`[[BR]]
`modeltests.field_subclassing.CustomField.test_custom_field`[[BR]]
`modeltests.files.FileStorageTests.test_files`[[BR]]
~~modeltests.get_or_create.GetOrCreateTests.test_get_or_create~~[[BR]]
~~modeltests.m2m_recursive.RecursiveM2MTests.test_recursive_m2m~~[[BR]]
`modeltests.m2m_signals.ManyToManySignalsTest`[[BR]]
`modeltests.m2m_through.M2mThroughTests`[[BR]]
`modeltests.model_formsets.ModelFormsetTests`[[BR]]
`modeltests.model_forms.OldFormForXTests.test_with_data` (This one has
more than 500 lines!)[[BR]]
`modeltests.model_inheritance.ModelInheritanceTests`[[BR]]
`modeltests.model_package.ModelPackageTests.test_model_packages`[[BR]]
`modeltests.order_with_respect_to.OrderWithRespectToTests.test_basic`[[BR]]
`modeltests.signals.SignalTests.test_basic`
I only went through modeltests/*/tests.py; I might have overlooked a few
tests.
This ticket is meant to track all of them; each time a test is updated, we
can strike it out in the list above and once there is no item left, we can
close this. The point is to make the test suite help developers as much as
possible.
--
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:19>
Comment (by zsoldosp):
I'm at the DjangoCon Europe Sprint and working on splitting up {{{
modeltests.basic.ModelTest.test_object_creation }}}
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:20>
* has_patch: 0 => 1
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:21>
* cc: zsoldosp (added)
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:22>
Comment (by jose):
I have committed a pull request for the first reported unit test
`modeltests.generic_relations.GenericRelationsTests.test_generic_relations`.
You can check [https://github.com/django/django/pull/2693 the PR in
Github].
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:23>
Comment (by Tim Graham <timograham@…>):
In [changeset:"7b064e539009b4845ca31bd4a3dd5a9b913d1a0e"]:
{{{
#!CommitTicketReference repository=""
revision="7b064e539009b4845ca31bd4a3dd5a9b913d1a0e"
Split GenericRelationsTests.test_generic_relations into several tests;
refs #18586.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:24>
Comment (by Tim Graham <timograham@…>):
In [changeset:"7e2c804c9417617934cd731a4537719a1bd8d985"]:
{{{
#!CommitTicketReference repository=""
revision="7e2c804c9417617934cd731a4537719a1bd8d985"
Split tests.basic.ModelTests in several tests; refs #18586.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:25>
* has_patch: 1 => 0
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:26>
* status: assigned => new
* owner: judy2k =>
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:27>
* owner: => ChillarAnand
* status: new => assigned
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:28>
Comment (by davide-ceretti):
I am going to start working on M2mThroughTests
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:29>
Comment (by davide-ceretti):
Patch for M2mThroughTests refactor is at
https://github.com/django/django/pull/3273
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:30>
Old description:
> There's quite a lot of unit tests that have been rewritten 1:1 from
> doctests. These tests tend to verify all aspects of a certain feature at
> once, they modify the state of the database throughout the whole test and
> by the end of the test no one really knows what the database state is
> supposed to be.
>
> For example,
> `modeltests.generic_relations.GenericRelationsTests.test_generic_relations`
> walks through most of the features supported by `GenericForeignKeys`, it
> is 130 lines long and in case the last assertion fails, you'll have to
> spend ridiculous amounts of time figuring out what happened.
>
> A likely incomplete list of similar tests:[[BR]]
> `modeltests.basic.ModelTest.test_lookup`[[BR]]
> `modeltests.basic.ModelTest.test_object_creation`[[BR]]
> ~~modeltests.custom_columns.CustomColumnsTests.test_db_column~~[[BR]]
> `modeltests.custom_managers.CustomManagerTests.test_manager`[[BR]]
> `modeltests.custom_pk.CustomPKTests.test_custom_pk`[[BR]]
> `modeltests.defer.DeferTests.test_defer`[[BR]]
> `modeltests.expressions.ExpressionsTests.test_filter`[[BR]]
> `modeltests.field_subclassing.CustomField.test_custom_field`[[BR]]
> `modeltests.files.FileStorageTests.test_files`[[BR]]
New description:
`modeltests.m2m_through_regress.M2MThroughTestCase`[[BR]]
`modeltests.model_formsets.ModelFormsetTests`[[BR]]
`modeltests.model_forms.OldFormForXTests.test_with_data` (This one has
more than 500 lines!)[[BR]]
`modeltests.model_inheritance.ModelInheritanceTests`[[BR]]
`modeltests.model_package.ModelPackageTests.test_model_packages`[[BR]]
`modeltests.order_with_respect_to.OrderWithRespectToTests.test_basic`[[BR]]
`modeltests.signals.SignalTests.test_basic`
I only went through modeltests/*/tests.py; I might have overlooked a few
tests.
This ticket is meant to track all of them; each time a test is updated, we
can strike it out in the list above and once there is no item left, we can
close this. The point is to make the test suite help developers as much as
possible.
--
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:31>
Comment (by Loic Bistuer <loic.bistuer@…>):
In [changeset:"d8e157d5ab1648a509b25d5ec571572ae936de79"]:
{{{
#!CommitTicketReference repository=""
revision="d8e157d5ab1648a509b25d5ec571572ae936de79"
Refactored m2m_through tests. Refs #18586
Refactored old tests that were rewritten 1:1 from doctests.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:32>
Old description:
> There's quite a lot of unit tests that have been rewritten 1:1 from
New description:
There's quite a lot of unit tests that have been rewritten 1:1 from
doctests. These tests tend to verify all aspects of a certain feature at
once, they modify the state of the database throughout the whole test and
by the end of the test no one really knows what the database state is
supposed to be.
For example,
`modeltests.generic_relations.GenericRelationsTests.test_generic_relations`
walks through most of the features supported by `GenericForeignKeys`, it
is 130 lines long and in case the last assertion fails, you'll have to
spend ridiculous amounts of time figuring out what happened.
A likely incomplete list of similar tests:[[BR]]
`modeltests.basic.ModelTest.test_lookup`[[BR]]
`modeltests.basic.ModelTest.test_object_creation`[[BR]]
~~modeltests.custom_columns.CustomColumnsTests.test_db_column~~[[BR]]
`modeltests.custom_managers.CustomManagerTests.test_manager`[[BR]]
`modeltests.custom_pk.CustomPKTests.test_custom_pk`[[BR]]
`modeltests.defer.DeferTests.test_defer`[[BR]]
`modeltests.expressions.ExpressionsTests.test_filter`[[BR]]
`modeltests.field_subclassing.CustomField.test_custom_field`[[BR]]
`modeltests.files.FileStorageTests.test_files`[[BR]]
~~modeltests.get_or_create.GetOrCreateTests.test_get_or_create~~[[BR]]
~~modeltests.m2m_recursive.RecursiveM2MTests.test_recursive_m2m~~[[BR]]
`modeltests.m2m_signals.ManyToManySignalsTest`[[BR]]
~~modeltests.m2m_through.M2mThroughTests~~[[BR]]
`modeltests.m2m_through_regress.M2MThroughTestCase`[[BR]]
`modeltests.model_formsets.ModelFormsetTests`[[BR]]
`modeltests.model_forms.OldFormForXTests.test_with_data` (This one has
more than 500 lines!)[[BR]]
`modeltests.model_inheritance.ModelInheritanceTests`[[BR]]
`modeltests.model_package.ModelPackageTests.test_model_packages`[[BR]]
`modeltests.order_with_respect_to.OrderWithRespectToTests.test_basic`[[BR]]
`modeltests.signals.SignalTests.test_basic`
I only went through modeltests/*/tests.py; I might have overlooked a few
tests.
This ticket is meant to track all of them; each time a test is updated, we
can strike it out in the list above and once there is no item left, we can
close this. The point is to make the test suite help developers as much as
possible.
--
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:33>
Comment (by browniebroke):
Patch for ModelTest.test_lookup:
https://github.com/django/django/pull/3306
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:34>
Comment (by Tim Graham <timograham@…>):
In [changeset:"d1e87aebf70dd035c98a0b0f0162c0a2c398598c"]:
{{{
#!CommitTicketReference repository=""
revision="d1e87aebf70dd035c98a0b0f0162c0a2c398598c"
Refactored model lookup tests; refs #18586.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:35>
Old description:
> There's quite a lot of unit tests that have been rewritten 1:1 from
> doctests. These tests tend to verify all aspects of a certain feature at
> once, they modify the state of the database throughout the whole test and
> by the end of the test no one really knows what the database state is
> supposed to be.
>
> For example,
> `modeltests.generic_relations.GenericRelationsTests.test_generic_relations`
> walks through most of the features supported by `GenericForeignKeys`, it
> is 130 lines long and in case the last assertion fails, you'll have to
> spend ridiculous amounts of time figuring out what happened.
>
> A likely incomplete list of similar tests:[[BR]]
> `modeltests.basic.ModelTest.test_lookup`[[BR]]
> `modeltests.basic.ModelTest.test_object_creation`[[BR]]
> ~~modeltests.custom_columns.CustomColumnsTests.test_db_column~~[[BR]]
> `modeltests.custom_managers.CustomManagerTests.test_manager`[[BR]]
> `modeltests.custom_pk.CustomPKTests.test_custom_pk`[[BR]]
> `modeltests.defer.DeferTests.test_defer`[[BR]]
> `modeltests.expressions.ExpressionsTests.test_filter`[[BR]]
> `modeltests.field_subclassing.CustomField.test_custom_field`[[BR]]
> `modeltests.files.FileStorageTests.test_files`[[BR]]
> ~~modeltests.get_or_create.GetOrCreateTests.test_get_or_create~~[[BR]]
> ~~modeltests.m2m_recursive.RecursiveM2MTests.test_recursive_m2m~~[[BR]]
> `modeltests.m2m_signals.ManyToManySignalsTest`[[BR]]
> ~~modeltests.m2m_through.M2mThroughTests~~[[BR]]
> `modeltests.m2m_through_regress.M2MThroughTestCase`[[BR]]
> `modeltests.model_formsets.ModelFormsetTests`[[BR]]
> `modeltests.model_forms.OldFormForXTests.test_with_data` (This one has
> more than 500 lines!)[[BR]]
> `modeltests.model_inheritance.ModelInheritanceTests`[[BR]]
> `modeltests.model_package.ModelPackageTests.test_model_packages`[[BR]]
> `modeltests.order_with_respect_to.OrderWithRespectToTests.test_basic`[[BR]]
> `modeltests.signals.SignalTests.test_basic`
>
> I only went through modeltests/*/tests.py; I might have overlooked a few
> tests.
>
> This ticket is meant to track all of them; each time a test is updated,
> we can strike it out in the list above and once there is no item left, we
> can close this. The point is to make the test suite help developers as
> much as possible.
New description:
There's quite a lot of unit tests that have been rewritten 1:1 from
doctests. These tests tend to verify all aspects of a certain feature at
once, they modify the state of the database throughout the whole test and
by the end of the test no one really knows what the database state is
supposed to be.
For example,
`modeltests.generic_relations.GenericRelationsTests.test_generic_relations`
walks through most of the features supported by `GenericForeignKeys`, it
is 130 lines long and in case the last assertion fails, you'll have to
spend ridiculous amounts of time figuring out what happened.
A likely incomplete list of similar tests:[[BR]]
~~modeltests.basic.ModelTest.test_lookup~~[[BR]]
--
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:36>
Comment (by agiliq):
Opened PR for custom pks here:
https://github.com/django/django/pull/3483
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:37>
Old description:
> There's quite a lot of unit tests that have been rewritten 1:1 from
> doctests. These tests tend to verify all aspects of a certain feature at
> once, they modify the state of the database throughout the whole test and
> by the end of the test no one really knows what the database state is
> supposed to be.
>
> For example,
> `modeltests.generic_relations.GenericRelationsTests.test_generic_relations`
> walks through most of the features supported by `GenericForeignKeys`, it
> is 130 lines long and in case the last assertion fails, you'll have to
> spend ridiculous amounts of time figuring out what happened.
>
> A likely incomplete list of similar tests:[[BR]]
New description:
~~modeltests.custom_pk.CustomPKTests.test_custom_pk~~[[BR]]
`modeltests.defer.DeferTests.test_defer`[[BR]]
`modeltests.expressions.ExpressionsTests.test_filter`[[BR]]
`modeltests.field_subclassing.CustomField.test_custom_field`[[BR]]
`modeltests.files.FileStorageTests.test_files`[[BR]]
~~modeltests.get_or_create.GetOrCreateTests.test_get_or_create~~[[BR]]
~~modeltests.m2m_recursive.RecursiveM2MTests.test_recursive_m2m~~[[BR]]
`modeltests.m2m_signals.ManyToManySignalsTest`[[BR]]
~~modeltests.m2m_through.M2mThroughTests~~[[BR]]
`modeltests.m2m_through_regress.M2MThroughTestCase`[[BR]]
`modeltests.model_formsets.ModelFormsetTests`[[BR]]
`modeltests.model_forms.OldFormForXTests.test_with_data` (This one has
more than 500 lines!)[[BR]]
`modeltests.model_inheritance.ModelInheritanceTests`[[BR]]
`modeltests.model_package.ModelPackageTests.test_model_packages`[[BR]]
`modeltests.order_with_respect_to.OrderWithRespectToTests.test_basic`[[BR]]
`modeltests.signals.SignalTests.test_basic`
I only went through modeltests/*/tests.py; I might have overlooked a few
tests.
This ticket is meant to track all of them; each time a test is updated, we
can strike it out in the list above and once there is no item left, we can
close this. The point is to make the test suite help developers as much as
possible.
--
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:38>
Comment (by agiliq):
Opened PR for custom_managers here:
https://github.com/django/django/pull/3491
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:39>
Old description:
> There's quite a lot of unit tests that have been rewritten 1:1 from
> doctests. These tests tend to verify all aspects of a certain feature at
> once, they modify the state of the database throughout the whole test and
> by the end of the test no one really knows what the database state is
> supposed to be.
>
> For example,
> `modeltests.generic_relations.GenericRelationsTests.test_generic_relations`
> walks through most of the features supported by `GenericForeignKeys`, it
> is 130 lines long and in case the last assertion fails, you'll have to
> spend ridiculous amounts of time figuring out what happened.
>
> A likely incomplete list of similar tests:[[BR]]
> ~~modeltests.basic.ModelTest.test_lookup~~[[BR]]
> `modeltests.basic.ModelTest.test_object_creation`[[BR]]
> ~~modeltests.custom_columns.CustomColumnsTests.test_db_column~~[[BR]]
> `modeltests.custom_managers.CustomManagerTests.test_manager`[[BR]]
> ~~modeltests.custom_pk.CustomPKTests.test_custom_pk~~[[BR]]
> `modeltests.defer.DeferTests.test_defer`[[BR]]
> `modeltests.expressions.ExpressionsTests.test_filter`[[BR]]
> `modeltests.field_subclassing.CustomField.test_custom_field`[[BR]]
> `modeltests.files.FileStorageTests.test_files`[[BR]]
> ~~modeltests.get_or_create.GetOrCreateTests.test_get_or_create~~[[BR]]
> ~~modeltests.m2m_recursive.RecursiveM2MTests.test_recursive_m2m~~[[BR]]
> `modeltests.m2m_signals.ManyToManySignalsTest`[[BR]]
> ~~modeltests.m2m_through.M2mThroughTests~~[[BR]]
> `modeltests.m2m_through_regress.M2MThroughTestCase`[[BR]]
> `modeltests.model_formsets.ModelFormsetTests`[[BR]]
> `modeltests.model_forms.OldFormForXTests.test_with_data` (This one has
> more than 500 lines!)[[BR]]
> `modeltests.model_inheritance.ModelInheritanceTests`[[BR]]
> `modeltests.model_package.ModelPackageTests.test_model_packages`[[BR]]
> `modeltests.order_with_respect_to.OrderWithRespectToTests.test_basic`[[BR]]
> `modeltests.signals.SignalTests.test_basic`
>
> I only went through modeltests/*/tests.py; I might have overlooked a few
> tests.
>
> This ticket is meant to track all of them; each time a test is updated,
> we can strike it out in the list above and once there is no item left, we
> can close this. The point is to make the test suite help developers as
> much as possible.
New description:
There's quite a lot of unit tests that have been rewritten 1:1 from
doctests. These tests tend to verify all aspects of a certain feature at
once, they modify the state of the database throughout the whole test and
by the end of the test no one really knows what the database state is
supposed to be.
For example,
`modeltests.generic_relations.GenericRelationsTests.test_generic_relations`
walks through most of the features supported by `GenericForeignKeys`, it
is 130 lines long and in case the last assertion fails, you'll have to
spend ridiculous amounts of time figuring out what happened.
A likely incomplete list of similar tests:[[BR]]
~~modeltests.basic.ModelTest.test_lookup~~[[BR]]
`modeltests.basic.ModelTest.test_object_creation`[[BR]]
~~modeltests.custom_columns.CustomColumnsTests.test_db_column~~[[BR]]
~~modeltests.custom_managers.CustomManagerTests.test_manager~~[[BR]]
~~modeltests.custom_pk.CustomPKTests.test_custom_pk~~[[BR]]
`modeltests.defer.DeferTests.test_defer`[[BR]]
`modeltests.expressions.ExpressionsTests.test_filter`[[BR]]
`modeltests.field_subclassing.CustomField.test_custom_field`[[BR]]
`modeltests.files.FileStorageTests.test_files`[[BR]]
~~modeltests.get_or_create.GetOrCreateTests.test_get_or_create~~[[BR]]
~~modeltests.m2m_recursive.RecursiveM2MTests.test_recursive_m2m~~[[BR]]
`modeltests.m2m_signals.ManyToManySignalsTest`[[BR]]
~~modeltests.m2m_through.M2mThroughTests~~[[BR]]
`modeltests.m2m_through_regress.M2MThroughTestCase`[[BR]]
`modeltests.model_formsets.ModelFormsetTests`[[BR]]
`modeltests.model_forms.OldFormForXTests.test_with_data` (This one has
more than 500 lines!)[[BR]]
`modeltests.model_inheritance.ModelInheritanceTests`[[BR]]
`modeltests.model_package.ModelPackageTests.test_model_packages`[[BR]]
`modeltests.order_with_respect_to.OrderWithRespectToTests.test_basic`[[BR]]
`modeltests.signals.SignalTests.test_basic`
I only went through modeltests/*/tests.py; I might have overlooked a few
tests.
This ticket is meant to track all of them; each time a test is updated, we
can strike it out in the list above and once there is no item left, we can
close this. The point is to make the test suite help developers as much as
possible.
--
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:40>
Old description:
> There's quite a lot of unit tests that have been rewritten 1:1 from
> doctests. These tests tend to verify all aspects of a certain feature at
> once, they modify the state of the database throughout the whole test and
> by the end of the test no one really knows what the database state is
> supposed to be.
>
> For example,
> `modeltests.generic_relations.GenericRelationsTests.test_generic_relations`
> walks through most of the features supported by `GenericForeignKeys`, it
> is 130 lines long and in case the last assertion fails, you'll have to
> spend ridiculous amounts of time figuring out what happened.
>
> A likely incomplete list of similar tests:[[BR]]
> ~~modeltests.basic.ModelTest.test_lookup~~[[BR]]
> `modeltests.basic.ModelTest.test_object_creation`[[BR]]
> ~~modeltests.custom_columns.CustomColumnsTests.test_db_column~~[[BR]]
> ~~modeltests.custom_managers.CustomManagerTests.test_manager~~[[BR]]
> ~~modeltests.custom_pk.CustomPKTests.test_custom_pk~~[[BR]]
> `modeltests.defer.DeferTests.test_defer`[[BR]]
> `modeltests.expressions.ExpressionsTests.test_filter`[[BR]]
> `modeltests.field_subclassing.CustomField.test_custom_field`[[BR]]
> `modeltests.files.FileStorageTests.test_files`[[BR]]
> ~~modeltests.get_or_create.GetOrCreateTests.test_get_or_create~~[[BR]]
> ~~modeltests.m2m_recursive.RecursiveM2MTests.test_recursive_m2m~~[[BR]]
> `modeltests.m2m_signals.ManyToManySignalsTest`[[BR]]
> ~~modeltests.m2m_through.M2mThroughTests~~[[BR]]
> `modeltests.m2m_through_regress.M2MThroughTestCase`[[BR]]
> `modeltests.model_formsets.ModelFormsetTests`[[BR]]
> `modeltests.model_forms.OldFormForXTests.test_with_data` (This one has
> more than 500 lines!)[[BR]]
> `modeltests.model_inheritance.ModelInheritanceTests`[[BR]]
> `modeltests.model_package.ModelPackageTests.test_model_packages`[[BR]]
> `modeltests.order_with_respect_to.OrderWithRespectToTests.test_basic`[[BR]]
> `modeltests.signals.SignalTests.test_basic`
>
> I only went through modeltests/*/tests.py; I might have overlooked a few
> tests.
>
> This ticket is meant to track all of them; each time a test is updated,
> we can strike it out in the list above and once there is no item left, we
> can close this. The point is to make the test suite help developers as
> much as possible.
New description:
There's quite a lot of unit tests that have been rewritten 1:1 from
doctests. These tests tend to verify all aspects of a certain feature at
once, they modify the state of the database throughout the whole test and
by the end of the test no one really knows what the database state is
supposed to be.
For example,
`modeltests.generic_relations.GenericRelationsTests.test_generic_relations`
walks through most of the features supported by `GenericForeignKeys`, it
is 130 lines long and in case the last assertion fails, you'll have to
spend ridiculous amounts of time figuring out what happened.
A likely incomplete list of similar tests:[[BR]]
~~modeltests.basic.ModelTest.test_lookup~~[[BR]]
~~`modeltests.basic.ModelTest.test_object_creation`~~[[BR]]
~~modeltests.custom_columns.CustomColumnsTests.test_db_column~~[[BR]]
~~modeltests.custom_managers.CustomManagerTests.test_manager~~[[BR]]
~~modeltests.custom_pk.CustomPKTests.test_custom_pk~~[[BR]]
`modeltests.defer.DeferTests.test_defer`[[BR]]
`modeltests.expressions.ExpressionsTests.test_filter`[[BR]]
`modeltests.field_subclassing.CustomField.test_custom_field`[[BR]]
`modeltests.files.FileStorageTests.test_files`[[BR]]
~~modeltests.get_or_create.GetOrCreateTests.test_get_or_create~~[[BR]]
~~modeltests.m2m_recursive.RecursiveM2MTests.test_recursive_m2m~~[[BR]]
`modeltests.m2m_signals.ManyToManySignalsTest`[[BR]]
~~modeltests.m2m_through.M2mThroughTests~~[[BR]]
`modeltests.m2m_through_regress.M2MThroughTestCase`[[BR]]
`modeltests.model_formsets.ModelFormsetTests`[[BR]]
`modeltests.model_forms.OldFormForXTests.test_with_data` (This one has
more than 500 lines!)[[BR]]
`modeltests.model_inheritance.ModelInheritanceTests`[[BR]]
`modeltests.model_package.ModelPackageTests.test_model_packages`[[BR]]
`modeltests.order_with_respect_to.OrderWithRespectToTests.test_basic`[[BR]]
~~`modeltests.signals.SignalTests.test_basic`~~
I only went through modeltests/*/tests.py; I might have overlooked a few
tests.
This ticket is meant to track all of them; each time a test is updated, we
can strike it out in the list above and once there is no item left, we can
close this. The point is to make the test suite help developers as much as
possible.
--
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:41>
Comment (by helenst):
PR for order_with_respect_to:
https://github.com/django/django/pull/3638
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:42>
Comment (by alexanderad):
PR for model_package.ModelPackageTests.test_models_packages:
https://github.com/django/django/pull/3657
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:43>
* status: assigned => closed
* resolution: => fixed
Comment:
In [changeset:"e1513a7960399054d6686efb287f3887ad84b73f"]:
{{{
#!CommitTicketReference repository=""
revision="e1513a7960399054d6686efb287f3887ad84b73f"
Fixed #18586 -- Split up model_package.ModelPackageTests.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:44>
* status: closed => new
* resolution: fixed =>
Comment:
Woops, should have been "refs #" in the commit message of that last one so
this didn't get closed as there is still more work to do in the other
tests.
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:45>
Comment (by alexanderad):
PR for model_inheritance.ModelInheritanceTests
https://github.com/django/django/pull/3658.
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:46>
Comment (by Tim Graham <timograham@…>):
In [changeset:"2cd19f3738b9c4a6861c007bf22f72a386cba07f"]:
{{{
#!CommitTicketReference repository=""
revision="2cd19f3738b9c4a6861c007bf22f72a386cba07f"
Refs #18586 -- Split up model_inheritance.ModelInheritanceTest
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:47>
Old description:
> There's quite a lot of unit tests that have been rewritten 1:1 from
> doctests. These tests tend to verify all aspects of a certain feature at
> once, they modify the state of the database throughout the whole test and
> by the end of the test no one really knows what the database state is
> supposed to be.
>
> For example,
> `modeltests.generic_relations.GenericRelationsTests.test_generic_relations`
> walks through most of the features supported by `GenericForeignKeys`, it
> is 130 lines long and in case the last assertion fails, you'll have to
> spend ridiculous amounts of time figuring out what happened.
>
> A likely incomplete list of similar tests:[[BR]]
> ~~modeltests.basic.ModelTest.test_lookup~~[[BR]]
New description:
There's quite a lot of unit tests that have been rewritten 1:1 from
doctests. These tests tend to verify all aspects of a certain feature at
once, they modify the state of the database throughout the whole test and
by the end of the test no one really knows what the database state is
supposed to be.
For example,
`tests.generic_relations.GenericRelationsTests.test_generic_relations`
walks through most of the features supported by `GenericForeignKeys`, it
is 130 lines long and in case the last assertion fails, you'll have to
spend ridiculous amounts of time figuring out what happened.
A likely incomplete list of similar tests:
~~tests.basic.ModelTest.test_lookup~~
~~tests.basic.ModelTest.test_object_creation~~
~~tests.custom_columns.CustomColumnsTests.test_db_column~~
~~tests.custom_managers.CustomManagerTests.test_manager~~
~~tests.custom_pk.CustomPKTests.test_custom_pk~~
`tests.defer.DeferTests.test_defer`
~~tests.expressions.ExpressionsTests.test_filter~~
~~tests.field_subclassing.CustomField.test_custom_field~~ (deprecated)
~~tests.get_or_create.GetOrCreateTests.test_get_or_create~~
~~tests.m2m_recursive.RecursiveM2MTests.test_recursive_m2m~~
`tests.m2m_signals.ManyToManySignalsTest`
~~tests.m2m_through.M2mThroughTests~~
`tests.m2m_through_regress.M2MThroughTestCase`
~~tests.model_inheritance.ModelInheritanceTests~~
~~tests.model_package.ModelPackageTests.test_model_packages~~
~~tests.order_with_respect_to.OrderWithRespectToTests.test_basic~~
~~tests.signals.SignalTests.test_basic~~
This ticket is meant to track all of them; each time a test is updated, we
can strike it out in the list above and once there is no item left, we can
close this. The point is to make the test suite help developers as much as
possible.
--
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:48>
Comment (by berkerpeksag):
[https://github.com/django/django/pull/3638 PR #3638] LGTM. (I added a
couple of minor comments on GitHub)
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:49>
Comment (by Tim Graham <timograham@…>):
In [changeset:"7daf00679d2848fdb6f5618009817b56486fce1b"]:
{{{
#!CommitTicketReference repository=""
revision="7daf00679d2848fdb6f5618009817b56486fce1b"
Refs #18586 -- Split up order_with_respect_to tests
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:50>
Comment (by Tim Graham <timograham@…>):
In [changeset:"f66d9a2300f8fcb82d2bb21c43dc0e658c49086a"]:
{{{
#!CommitTicketReference repository=""
revision="f66d9a2300f8fcb82d2bb21c43dc0e658c49086a"
Refs #18586 -- Split custom_pk test.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:51>
Comment (by Tim Graham <timograham@…>):
In [changeset:"6db122c7aba5738aad92aa20c9bbf2dea6d3308e"]:
{{{
#!CommitTicketReference repository=""
revision="6db122c7aba5738aad92aa20c9bbf2dea6d3308e"
Refs #18586 -- Split custom manager tests.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:52>
Comment (by Tim Graham <timograham@…>):
In [changeset:"43041ee48c802418ec935a2ece59f876f5888c40"]:
{{{
#!CommitTicketReference repository=""
revision="43041ee48c802418ec935a2ece59f876f5888c40"
Refs #18586 -- Refactored expressions tests.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:53>
Comment (by wearp):
I am going to start working on DeferTests.test_defer.
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:54>
* cc: amizya@… (added)
Comment:
I'll work on `m2m_signals` and `m2m_through_regress`
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:55>
Comment (by Tim Graham <timograham@…>):
In [changeset:"89527576980ff14309990c152e5904ddd5ca3df7"]:
{{{
#!CommitTicketReference repository=""
revision="89527576980ff14309990c152e5904ddd5ca3df7"
Refs #18586 -- Split up tests.defer.DeferTests.test_defer
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:56>
Old description:
> There's quite a lot of unit tests that have been rewritten 1:1 from
> doctests. These tests tend to verify all aspects of a certain feature at
> once, they modify the state of the database throughout the whole test and
> by the end of the test no one really knows what the database state is
> supposed to be.
>
> For example,
New description:
~~tests.defer.DeferTests.test_defer~~
~~tests.expressions.ExpressionsTests.test_filter~~
~~tests.field_subclassing.CustomField.test_custom_field~~ (deprecated)
~~tests.get_or_create.GetOrCreateTests.test_get_or_create~~
~~tests.m2m_recursive.RecursiveM2MTests.test_recursive_m2m~~
`tests.m2m_signals.ManyToManySignalsTest`
~~tests.m2m_through.M2mThroughTests~~
`tests.m2m_through_regress.M2MThroughTestCase`
~~tests.model_inheritance.ModelInheritanceTests~~
~~tests.model_package.ModelPackageTests.test_model_packages~~
~~tests.order_with_respect_to.OrderWithRespectToTests.test_basic~~
~~tests.signals.SignalTests.test_basic~~
This ticket is meant to track all of them; each time a test is updated, we
can strike it out in the list above and once there is no item left, we can
close this. The point is to make the test suite help developers as much as
possible.
--
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:57>
* owner: ChillarAnand => alainivars
* status: new => assigned
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:58>
* owner: alainivars =>
* status: assigned => new
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:59>
* owner: => alainivars
* status: new => assigned
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:60>
Comment (by Baptiste Mispelon <bmispelon@…>):
In [changeset:"82ec05fcc96121d7b23cc07c2c0ad3c0546bac35" 82ec05f]:
{{{
#!CommitTicketReference repository=""
revision="82ec05fcc96121d7b23cc07c2c0ad3c0546bac35"
Refs #18586 -- Split up tests/m2m_signals
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:61>
Old description:
> There's quite a lot of unit tests that have been rewritten 1:1 from
> doctests. These tests tend to verify all aspects of a certain feature at
> once, they modify the state of the database throughout the whole test and
> by the end of the test no one really knows what the database state is
> supposed to be.
>
> For example,
> `tests.generic_relations.GenericRelationsTests.test_generic_relations`
> walks through most of the features supported by `GenericForeignKeys`, it
> is 130 lines long and in case the last assertion fails, you'll have to
> spend ridiculous amounts of time figuring out what happened.
>
> A likely incomplete list of similar tests:
> ~~tests.basic.ModelTest.test_lookup~~
> ~~tests.basic.ModelTest.test_object_creation~~
> ~~tests.custom_columns.CustomColumnsTests.test_db_column~~
> ~~tests.custom_managers.CustomManagerTests.test_manager~~
> ~~tests.custom_pk.CustomPKTests.test_custom_pk~~
New description:
~~tests.m2m_signals.ManyToManySignalsTest~~
~~tests.m2m_through.M2mThroughTests~~
`tests.m2m_through_regress.M2MThroughTestCase`
~~tests.model_inheritance.ModelInheritanceTests~~
~~tests.model_package.ModelPackageTests.test_model_packages~~
~~tests.order_with_respect_to.OrderWithRespectToTests.test_basic~~
~~tests.signals.SignalTests.test_basic~~
This ticket is meant to track all of them; each time a test is updated, we
can strike it out in the list above and once there is no item left, we can
close this. The point is to make the test suite help developers as much as
possible.
--
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:62>
* owner: alainivars =>
* status: assigned => new
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:63>
* status: new => assigned
* owner: => exonian
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:64>
* has_patch: 0 => 1
Comment:
https://github.com/django/django/pull/4377
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:65>
Comment (by Tim Graham <timograham@…>):
In [changeset:"8654c6a7329c06133b6c4b32f05e606132a338e5" 8654c6a7]:
{{{
#!CommitTicketReference repository=""
revision="8654c6a7329c06133b6c4b32f05e606132a338e5"
Refs #18586 -- Split up tests.m2m_through_regress
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:66>
* status: assigned => closed
* resolution: => fixed
--
Ticket URL: <https://code.djangoproject.com/ticket/18586#comment:67>