Closed ceball closed 10 years ago
Looks like the correct fix to me. I do think we should make the changes to DataViews as well so I'll create a pull request from your branch. Will wait on either Jim or Jean-Luc to comment before merging.
In Topographica, replacing nose with unittest is a no-brainer, because Topographica now requires Python 2.7, where unittest always includes SkipTest. The same presumably applies to dataviews, since it's only being tested against python 2.7 on Travis. So Philipp should be able to go ahead with similar changes to dataviews.
However, for param, I think we have to have something more complicated, because param supports python 2.6, where unittest doesn't have SkipTest. The logic is tricky, but maybe param/ipython.py should first try to get SkipTest from unittest (since that requires no external dependencies on the latest Python 2 version), then try to get it from nose (to work on 2.6 with nose installed). If it was obtained, then raise it. If not, then maybe print a message and exit silently from the file.
Jean-Luc, this latter change sounds like something you would best know how to do, because it's about making IPython support work smoothly whether or not ipython is installed. Can you try changing that one file in param?
Yes, python 2.6's unittest not having SkipTest is why I didn't submit a PR against param yet, thinking I first ought to decide how I feel about param and python 2.6. I'm probably the only one in the world using param with python 2.6, is what I was thinking to myself today - along with the feeling we'd be better off spending our limited time fixing things people are actually having problems with. But on the other hand we only dropped python 2.5 support around June, and python 2.6 is what you get on RHEL 6-based distributions...
Even though 2.7 has been out for years, we still don't quite have 2.7 working in our native environment in Informatics, nor at our compute facility, so it's very polite to continue supporting 2.6 in such a general library as param. Seems like a few lines of code would do it, though it might take a while to figure out just which lines!
To avoid dependency on nose (part of #594).
Topographica still depends on nose for tests, but that's ok (right?).
However, what about the ipython-related files in dataviews and param? I guess they are all optional, so it doesn't matter anyway. Just in case, I made a temporary branch of dataviews so you can see what I mean: https://github.com/ioam/dataviews/compare/skiptest_from_unittest. I'll delete that branch once someone lets me know what to do.