Test Tools (tox, testr, flake8)

Issue #42 resolved
Morgan Fainberg
created an issue

Would it be beneficial to support tox (venv based tester), testr, and flake8 (similar to how openstack works) instead (or inconjunction with) the current testing frame works? If that kind of test environment would be beneficial, I would be happy to help set it up for both dogpile.cache and dogpile.core.

This could also allow for pep8/pylint testing.

Coupled with this, I would also be happy to do some of the pep8 restructuring (if that would be desired).

Personally I like the ability to run tox -epep8 or tox -epy27 to run the tests and see how long it takes for each test to run. It never hurts to ask.

Comments (3)

  1. Michael Bayer repo owner

    just that you're mentioning names "testr" and "flake8", which I've never heard of , and you're not mentioning travis, is just making my existing dim awareness of these various tools all the more bewildering. I'm getting pullreqs for travis files, tox files across all my projects, and I just haven't had time to learn these systems deeply so that I can make the best decision as to their integration.

    as im sure you're aware, I've settled into nose for many years now very nicely and I've made a large investment in it - I also have made a major time/monetary investment in running tests for lots of my projects on Jenkins using Amazon EC2 instances. While SQLAlchemy is going to stay with Jenkins I can see perhaps some of the other projects moving over to something like Travis (and having SQLAlchemy builds is fine there as well though I doubt travis is going to let me run Oracle XE or Sybase on their servers...)

    Ideally I'd make some decision on the tox/travis/other thing across all my projects at once (alembic, mako, sqlalchemy, dogpile). What I'd like to see would be that: 1. I don't have to give up nose, 2. I can still do things on Jenkins, 3. I'm not "endorsing" any of these systems - whatever config files they add etc. should be additions only, if you look at this pull req this person for some reason wants to put a link to travis in my README file, I guess there is some benefit to that but it seems kind of distasteful to me.

  2. Morgan Fainberg reporter

    That makes total sense. I wouldn't expect an "endorsement" of any tool in that regard. Also the use of testr should have been struck from my previous comment (I don't think it is currently the right tool for the job here). I agree that the config/files should simply be that "it's to allow use of a tool" but nothing more than that.

    Flake8 is a utility for pylint+pep8+mcabe. It's a nice tool if you're interested in those checks in this project. But, I am unsure if you want to go down that path at this point here. It has some benefit, but in some cases it isn't worth it.

    I haven't mentioned travis simply because I don't want to make a recommendation on the actual CI mechanism you're using. Tox, Nose, Flake8, etc all shouldn't matter when it comes down to it; my understanding is that Travis is fairly flexible and should allow the use of pep8, flake8, pylint, etc if so desired and I know Jenkins can be used with the above tools. I feel that is up to the project (and while I plan on continuing to contribute to dogpile where I can, I don't expect to be in a position to guide the choice of tools such as jenkins/travis).

    I know that a few projects removed the links to travis from their ReadMe, because it erroneously indicated the "stable" project was failing.

    Let me know when you make a decision on tox/travis/whathaveyou and I'll be happy to reopen this conversation/contribute time to help get things in line for using those tools.

  3. Log in to comment