|
|
- #!/usr/bin/env python
-
- """
- A simple testrunner for nose (or anything else).
-
- Watch for changes in all file types specified in 'EXTENSIONS'.
- If changes, run test executable in 'EXECUTABLE', with default
- arguments 'DEFAULTARGS'.
-
- The --with-color option needs the "rudolf" nose plugin. See:
- http://pypi.python.org/pypi/rudolf/
-
- Originally by Jeff Winkler, http://jeffwinkler.net
- Forked from wkral http://github.com/wkral/Nosy
- """
-
- import os
- import stat
- import time
- import datetime
- import sys
- import fnmatch
-
-
- EXTENSIONS = ['*.py']
- EXECUTABLE = 'nosetests test/'
- DEFAULTARGS = '--with-color -exe' # -w tests'
-
-
- def check_sum():
- """
- Return a long which can be used to know if any .py files have changed.
- """
- val = 0
- for root, dirs, files in os.walk(os.getcwd()):
- for extension in EXTENSIONS:
- for f in fnmatch.filter(files, extension):
- stats = os.stat(os.path.join(root, f))
- val += stats[stat.ST_SIZE] + stats[stat.ST_MTIME]
- return val
-
-
- if __name__ == '__main__':
- val = 0
- try:
- while True:
- if check_sum() != val:
- val = check_sum()
- os.system('%s %s %s' % (EXECUTABLE, DEFAULTARGS, ' '.join(sys.argv[1:])))
- print(datetime.datetime.now().__str__())
- print('=' * 77)
- time.sleep(1)
- except KeyboardInterrupt:
- print('Goodbye')
|