and the code for said pylons nose plugin: https://github.com/Pylons/pylons/blob/master/pylons/test.py
On Tue, Apr 7, 2015 at 1:48 PM, Marc Abramowitz <[email protected]> wrote: > The nose plugin that I was referring to: > http://pylons-webframework.readthedocs.org/en/latest/testing.html#unit-testing-with-webtest > > On Tue, Apr 7, 2015 at 1:47 PM, Marc Abramowitz <[email protected]> > wrote: > >> I think the tricky thing is that Kallithea is using the Pylons nosetest >> plugin to initialize the Pylons app before the tests run. We will need to >> make it so that the Pylons app gets initialized before pytest runs tests -- >> probably by using conftest.py -- >> https://pytest.org/latest/plugins.html#conftest-py-local-per-directory-plugins >> >> On Tue, Apr 7, 2015 at 1:03 PM, Marc Abramowitz <[email protected]> >> wrote: >> >>> I'm thinking we can probably convert the nose generative test functions >>> to pytest parameterized tests -- >>> http://pytest.org/latest/parametrize.html#parametrized-test-functions >>> >>> I'm experimenting with it now... >>> >>> On Tue, Apr 7, 2015 at 12:31 PM, Thomas De Schampheleire < >>> [email protected]> wrote: >>> >>>> Hi, >>>> >>>> On Tue, Apr 7, 2015 at 9:08 PM, Thomas De Schampheleire >>>> <[email protected]> wrote: >>>> > Hi Marc, >>>> > >>>> > On Tue, Apr 7, 2015 at 5:46 PM, Marc Abramowitz <[email protected]> >>>> wrote: >>>> >> Just wanted to say a quick hello. I volunteered for adopt pytest >>>> month. I have used pytest (and Tox as well, which I suspect could be useful >>>> here) quite a bit for both personal projects and my professional work - >>>> i.e.: my current work at SurveyMonkey. >>>> >> >>>> >> I'll try to download and try out Kallithea soon (I've never used >>>> it), try out the test suite, etc. and see where we might be able to get >>>> some wins. >>>> > >>>> > Welcome indeed! I'm excited to get this pytest-adoption started. >>>> > My hope is that this is not just one month, which is probably too >>>> > short to fix the entire test suite. >>>> > >>>> > To get started, use following instructions to set up an environment: >>>> > http://kallithea.readthedocs.org/en/latest/contributing.html >>>> > >>>> > You can run the existing testsuite from this virtualenv using >>>> 'nosetests'. >>>> > >>>> > First step would indeed be to use pytest as test runner instead of >>>> > nosetests. On IRC (#kallithea on freenode) Ronny already indicated a >>>> > first blocker related to yield tests. >>>> > >>>> > Quick log: >>>> > <ronny> patrickdp: atm there is one big pytest side blocker, detailed >>>> > nose yield tests are not compatible with pytest yield tests >>>> > <ronny> so right now the testsuite runs in a completely broken >>>> > setupstate wrt yield tests >>>> > <ronny> since the testsuite also uses very detailed checks with >>>> > setup/teardown, a moinmoin style workaround (different >>>> > collection/execution for generators) is not possible >>>> > <ronny> (where not means not without lots of work) >>>> > <ronny> im not yet sure of a good strategy to work that out >>>> > <patrickdp> ronny: what exactly are 'yield tests' ? >>>> > <ronny> patrickdp: yield tests are tests which use a toplevel yield to >>>> > yield distinct checks to the test executor >>>> > >>>> > Any ideas to proceed are most definitely welcome here... >>>> > >>>> >>>> It looks like the only test files that have yield tests are: >>>> models/test_user_permissions_on_repo_groups.py >>>> models/test_user_group_permissions_on_repo_groups.py >>>> >>>> In the tests in these files, the pattern is typically: >>>> for name, perm in repo_items: >>>> yield check_tree_perms, name, perm, group, 'repository.read' >>>> >>>> for name, perm in items: >>>> yield check_tree_perms, name, perm, group, 'group.write' >>>> >>>> >>>> where: >>>> repo_items = [x for x in _get_repo_perms(group, recursive)] >>>> items = [x for x in _get_group_perms(group, recursive)] >>>> >>>> and: >>>> def check_tree_perms(obj_name, repo_perm, prefix, expected_perm): >>>> assert repo_perm == expected_perm, ('obj:`%s` got perm:`%s` >>>> should:`%s`' >>>> % (obj_name, repo_perm, >>>> expected_perm)) >>>> >>>> >>>> If yield tests are a problem, what about just transforming such yield >>>> tests into simple tests? Each test function that is currently yielding >>>> new test methods would become one simple test, iterating over the >>>> items and repo_items and asserting for each combination, thus >>>> replacing the yield statement with the assert itself. >>>> >>>> This may not be as nice as a test could fail due to many different >>>> scenarios, but since there are only test files that have this problem >>>> and since such yield tests are a blocking issue as said by Ronny, such >>>> a solution could deblock pytest conversion. >>>> >>>> Thoughts? >>>> >>>> Thanks, >>>> Thomas >>>> >>> >>> >> >
_______________________________________________ kallithea-general mailing list [email protected] http://lists.sfconservancy.org/mailman/listinfo/kallithea-general
