GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — python-client/runtests at master · mpeter/python-client Expand file tree/ Copy pathruntestsMore file actions executable file ·90 lines (69 loc) · 2.45 KB / Copy pathruntestsFile metadata and controlsexecutable file ·90 lines (69 loc) · 2.45 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 #!/usr/bin/env python import coverage import os import pytest import subprocess import sys PYTEST_ARGS = ['tests', '--tb=short'] FLAKE8_ARGS = ['coreapi', 'tests', '--ignore=E501', '--exclude', 'compat.py'] COVERAGE_OPTIONS = { 'include': ['coreapi/*', 'tests/*'], 'omit': ['coreapi/compat.py'] } sys.path.append(os.path.dirname(__file__)) class NullFile(object): def write(self, data): pass def exit_on_failure(ret, message=None): if ret: sys.exit(ret) def flake8_main(args): print('Running flake8 code linting') ret = subprocess.call(['flake8'] + args) print('flake8 failed' if ret else 'flake8 passed') return ret def report_coverage(cov, fail_if_not_100=False): precent_covered = cov.report( file=NullFile(), **COVERAGE_OPTIONS ) if precent_covered == 100: print('100% coverage') return if fail_if_not_100: print('Tests passed, but not 100% coverage.') cov.report(**COVERAGE_OPTIONS) cov.html_report(**COVERAGE_OPTIONS) if fail_if_not_100: sys.exit(1) def split_class_and_function(string): class_string, function_string = string.split('.', 1) return "%s and %s" % (class_string, function_string) def is_function(string): # `True` if it looks like a test function is included in the string. return string.startswith('test_') or '.test_' in string def is_class(string): # `True` if first character is uppercase - assume it's a class name. return string[0] == string[0].upper() if __name__ == "__main__": if len(sys.argv) > 1: pytest_args = sys.argv[1:] first_arg = pytest_args[0] if first_arg.startswith('-'): # `runtests.py [flags]` pytest_args = PYTEST_ARGS + pytest_args elif is_class(first_arg) and is_function(first_arg): # `runtests.py TestCase.test_function [flags]` expression = split_class_and_function(first_arg) pytest_args = PYTEST_ARGS + ['-k', expression] + pytest_args[1:] elif is_class(first_arg) or is_function(first_arg): # `runtests.py TestCase [flags]` # `runtests.py test_function [flags]` pytest_args = PYTEST_ARGS + ['-k', pytest_args[0]] + pytest_args[1:] else: pytest_args = PYTEST_ARGS cov = coverage.coverage() cov.start() exit_on_failure(pytest.main(pytest_args)) cov.stop() exit_on_failure(flake8_main(FLAKE8_ARGS)) report_coverage(cov) |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |