summaryrefslogtreecommitdiff
path: root/python/helpers/run_coverage.py
blob: 57859456e99e2d3ec174fe8ee3ae73897014107d (plain)
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
"""Coverage.py's main entrypoint."""

import os
import sys
import imp

helpers_root = os.getenv('PYCHARM_HELPERS_ROOT')
if helpers_root:
    sys_path_backup = sys.path
    sys.path = [p for p in sys.path if p!=helpers_root]
    from coverage.cmdline import main
    sys.path = sys_path_backup
else:
    from coverage.cmdline import main

coverage_file = os.getenv('PYCHARM_COVERAGE_FILE')
run_cov = os.getenv('PYCHARM_RUN_COVERAGE')
if os.getenv('JETBRAINS_REMOTE_RUN'):
    line = 'LOG: PyCharm: File mapping:%s\t%s\n'
    import tempfile
    (h, new_cov_file) = tempfile.mkstemp(prefix='pycharm-coverage')
    print(line%(coverage_file, new_cov_file))
    print(line%(coverage_file + '.syspath.txt', new_cov_file + '.syspath.txt'))
    print(line%(coverage_file + '.xml', new_cov_file + '.xml'))
    coverage_file = new_cov_file

if coverage_file:
    os.environ['COVERAGE_FILE'] = coverage_file
if run_cov:
    a_file = open(coverage_file + '.syspath.txt', mode='w')
    a_file.write(os.getcwd()+"\n")
    for path in sys.path: a_file.write(path + "\n")
    a_file.close()
main()
if run_cov:
    main(["xml", "-o", coverage_file + ".xml", "--ignore-errors"])