sympy/sympy — pull request #829 by jcreus (2011-12-07 21:16:15+00:00)
Title: GCI Work - Slow functions

GCI task: http://www.google-melange.com/gci/task/view/google/gci2011/7114334

I have implemented a better handling of slow functions. That begins by setting a SLOW decorator, located on pytest.py. It also requires the doc of the slow function to begin with SLOW. An example slow function would be:

```python
@SLOW
def hi():
"SLOW. (It does bla, bla, bla)"
pass
```

it also includes two commandline arguments: --slow and --timeout.

Slow indicates that only the slow tests must be run. Timeout sets a timeout after which a slow function will be skipped. In case slow isn't given, any slow function will be automatically skipped. The timeout is by default 30 seconds. It can be set to either another number or 'none' for an infinite timeout.

It also allows KeyboardInterrupt to be triggered while in a slow function, and it will only skip that function continuing the rest.

It is necessary for functions to include SLOW inside the doc, for it is impossible to know which decorators a function has (you don't know exactly if it's XFAIL or SLOW, since they are in the same file).

Slow functions should begin to be ported to that system. By now, I have only implemented the "infrastructure" - then functions which right now skipped should be moved to that system.