Python coverage.process_startup() Examples
The following are 16
code examples of coverage.process_startup().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
coverage
, or try the search function
.
Example #1
Source File: integ_test_base.py From TabPy with MIT License | 6 votes |
def deploy_models(self, username: str, password: str): repo_dir = os.path.abspath(os.path.dirname(tabpy.__file__)) path = os.path.join(repo_dir, "models", "deploy_models.py") with open(self.tmp_dir + "/deploy_models_output.txt", "w") as outfile: outfile.write( f"--<< Running {self.py} {path} " f"{self._get_config_file_name()} >>--\n" ) input_string = f"{username}\n{password}\n" outfile.write(f"--<< Input = {input_string} >>--") coverage.process_startup() subprocess.run( [self.py, path, self._get_config_file_name()], input=input_string.encode("utf-8"), stdout=outfile, stderr=outfile, )
Example #2
Source File: test_parallel_render.py From ktba with MIT License | 6 votes |
def test_subprocess_main(self, basicConfig): import parallel_render import coverage environ = { 'COVERAGE_PROCESS_START': 'something', 'PYTHONPATH': 'path', } sys = mock.MagicMock() sys.path = [] sys.argv = ['--', 'render'] with mock.patch.object(os, 'environ', environ): with mock.patch.object(coverage, 'process_startup') as process_startup: with mock.patch.object(parallel_render, 'render') as render: with mock.patch.object(parallel_render, 'sys', sys): parallel_render.main() self.assertTrue(render.called) self.assertTrue(basicConfig.called) self.assertTrue(process_startup.called)
Example #3
Source File: parallel_render.py From ktba with MIT License | 6 votes |
def main(): covstart = os.environ.get('COVERAGE_PROCESS_START') if covstart is not None: sys.path.extend(os.environ['PYTHONPATH'].split(os.path.sep)) import coverage coverage.process_startup() # Get everything after '--' as those are arguments # to our script args = sys.argv[sys.argv.index('--') + 1:] logging.basicConfig(level=logging.INFO) action = args[0] if action == 'render': render()
Example #4
Source File: integ_test_base.py From TabPy with MIT License | 5 votes |
def setUp(self): super(IntegTestBase, self).setUp() prefix = "TabPy_IntegTest_" self.tmp_dir = tempfile.mkdtemp(prefix=prefix) # create temporary state.ini orig_state_file_name = os.path.abspath( self._get_state_file_path() + "/state.ini" ) self.state_file_name = os.path.abspath(self.tmp_dir + "/state.ini") if orig_state_file_name != self.state_file_name: shutil.copyfile(orig_state_file_name, self.state_file_name) # create config file orig_config_file_name = os.path.abspath(self._get_config_file_name()) self.config_file_name = os.path.abspath( self.tmp_dir + "/" + os.path.basename(orig_config_file_name) ) if orig_config_file_name != self.config_file_name: shutil.copyfile(orig_config_file_name, self.config_file_name) # Platform specific - for integration tests we want to engage # startup script with open(self.tmp_dir + "/output.txt", "w") as outfile: cmd = ["tabpy", "--config=" + self.config_file_name] preexec_fn = None if platform.system() == "Windows": self.py = "python" else: self.py = "python3" preexec_fn = os.setsid coverage.process_startup() self.process = subprocess.Popen( cmd, preexec_fn=preexec_fn, stdout=outfile, stderr=outfile ) # give the app some time to start up... time.sleep(5)
Example #5
Source File: control.py From coveragepy-bbmirror with Apache License 2.0 | 5 votes |
def _prevent_sub_process_measurement(): """Stop any subprocess auto-measurement from writing data.""" auto_created_coverage = getattr(process_startup, "coverage", None) if auto_created_coverage is not None: auto_created_coverage._auto_save = False
Example #6
Source File: test_process.py From coveragepy-bbmirror with Apache License 2.0 | 5 votes |
def setUp(self): super(ProcessCoverageMixin, self).setUp() # Create the .pth file. self.assertTrue(PTH_DIR) pth_contents = "import coverage; coverage.process_startup()\n" pth_path = os.path.join(PTH_DIR, "subcover_{0}.pth".format(WORKER)) with open(pth_path, "w") as pth: pth.write(pth_contents) self.pth_path = pth_path self.addCleanup(os.remove, self.pth_path)
Example #7
Source File: test_dummy.py From ktba with MIT License | 5 votes |
def main(): if sys.argv[1:] == ['subprocess']: print('subprocess') cov = coverage.process_startup() subprocess_main() elif sys.argv[1:] == []: print('process') subprocess.check_call((sys.executable, __file__, 'subprocess'))
Example #8
Source File: test_parallel_render.py From ktba with MIT License | 5 votes |
def run_tests(args): extra_pythonpath = args[1] sys.path.append(extra_pythonpath) LOGGER.info("Appending extra PYTHONPATH %s", extra_pythonpath) import coverage coverage.process_startup() # I split this into separate function to increase coverage # ever so slightly. # I am not clear why, but it seems that coverage misses out on lines # within the same function as coverage.process_startup() got called. # Caling into another function seems to help it. _run_tests(args)
Example #9
Source File: control.py From coveragepy with Apache License 2.0 | 5 votes |
def _prevent_sub_process_measurement(): """Stop any subprocess auto-measurement from writing data.""" auto_created_coverage = getattr(process_startup, "coverage", None) if auto_created_coverage is not None: auto_created_coverage._auto_save = False
Example #10
Source File: test_process.py From coveragepy with Apache License 2.0 | 5 votes |
def setUp(self): super(ProcessCoverageMixin, self).setUp() # Create the .pth file. self.assertTrue(PTH_DIR) pth_contents = "import coverage; coverage.process_startup()\n" pth_path = os.path.join(PTH_DIR, "subcover_{}.pth".format(WORKER)) with open(pth_path, "w") as pth: pth.write(pth_contents) self.pth_path = pth_path self.addCleanup(persistent_remove, self.pth_path)
Example #11
Source File: testrunner.py From wradlib with MIT License | 5 votes |
def _runTest(self): kernel = "python%d" % sys.version_info[0] cur_dir = os.path.dirname(self.nbfile) with open(self.nbfile) as f: nb = nbformat.read(f, as_version=4) if self.cov: covdict = { "cell_type": "code", "execution_count": 1, "metadata": {"collapsed": True}, "outputs": [], "nbsphinx": "hidden", "source": "import coverage\n" "coverage.process_startup()\n" "import sys\n" 'sys.path.append("{0}")\n'.format(cur_dir), } nb["cells"].insert(0, nbformat.from_dict(covdict)) exproc = ExecutePreprocessor(kernel_name=kernel, timeout=600) try: run_dir = os.getenv("WRADLIB_BUILD_DIR", cur_dir) exproc.preprocess(nb, {"metadata": {"path": run_dir}}) except CellExecutionError as e: raise e if self.cov: nb["cells"].pop(0) with io.open(self.nbfile, "wt") as f: nbformat.write(nb, f) self.assertTrue(True)
Example #12
Source File: __init__.py From director with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _initCoverage(): if 'COVERAGE_PROCESS_START' in os.environ: try: import coverage coverage.process_startup() except ImportError: pass
Example #13
Source File: control.py From coveragepy-bbmirror with Apache License 2.0 | 4 votes |
def process_startup(): """Call this at Python start-up to perhaps measure coverage. If the environment variable COVERAGE_PROCESS_START is defined, coverage measurement is started. The value of the variable is the config file to use. There are two ways to configure your Python installation to invoke this function when Python starts: #. Create or append to sitecustomize.py to add these lines:: import coverage coverage.process_startup() #. Create a .pth file in your Python installation containing:: import coverage; coverage.process_startup() Returns the :class:`Coverage` instance that was started, or None if it was not started by this call. """ cps = os.environ.get("COVERAGE_PROCESS_START") if not cps: # No request for coverage, nothing to do. return None # This function can be called more than once in a process. This happens # because some virtualenv configurations make the same directory visible # twice in sys.path. This means that the .pth file will be found twice, # and executed twice, executing this function twice. We set a global # flag (an attribute on this function) to indicate that coverage.py has # already been started, so we can avoid doing it twice. # # https://bitbucket.org/ned/coveragepy/issue/340/keyerror-subpy has more # details. if hasattr(process_startup, "coverage"): # We've annotated this function before, so we must have already # started coverage.py in this process. Nothing to do. return None cov = Coverage(config_file=cps) process_startup.coverage = cov cov._warn_no_data = False cov._warn_unimported_source = False cov._warn_preimported_source = False cov._auto_save = True cov.start() return cov
Example #14
Source File: igor.py From coveragepy-bbmirror with Apache License 2.0 | 4 votes |
def run_tests_with_coverage(tracer, *runner_args): """Run tests, but with coverage.""" # Need to define this early enough that the first import of env.py sees it. os.environ['COVERAGE_TESTING'] = "True" os.environ['COVERAGE_PROCESS_START'] = os.path.abspath('metacov.ini') os.environ['COVERAGE_HOME'] = os.getcwd() # Create the .pth file that will let us measure coverage in sub-processes. # The .pth file seems to have to be alphabetically after easy-install.pth # or the sys.path entries aren't created right? pth_dir = os.path.dirname(pytest.__file__) pth_path = os.path.join(pth_dir, "zzz_metacov.pth") with open(pth_path, "w") as pth_file: pth_file.write("import coverage; coverage.process_startup()\n") # Make names for the data files that keep all the test runs distinct. impl = platform.python_implementation().lower() version = "%s%s" % sys.version_info[:2] if '__pypy__' in sys.builtin_module_names: version += "_%s%s" % sys.pypy_version_info[:2] suffix = "%s%s_%s_%s" % (impl, version, tracer, platform.platform()) os.environ['COVERAGE_METAFILE'] = os.path.abspath(".metacov."+suffix) import coverage cov = coverage.Coverage(config_file="metacov.ini", data_suffix=False) cov._warn_unimported_source = False cov._warn_preimported_source = False cov.start() try: # Re-import coverage to get it coverage tested! I don't understand all # the mechanics here, but if I don't carry over the imported modules # (in covmods), then things go haywire (os == None, eventually). covmods = {} covdir = os.path.split(coverage.__file__)[0] # We have to make a list since we'll be deleting in the loop. modules = list(sys.modules.items()) for name, mod in modules: if name.startswith('coverage'): if getattr(mod, '__file__', "??").startswith(covdir): covmods[name] = mod del sys.modules[name] import coverage # pylint: disable=reimported sys.modules.update(covmods) # Run tests, with the arguments from our command line. status = run_tests(tracer, *runner_args) finally: cov.stop() os.remove(pth_path) cov.combine() cov.save() return status
Example #15
Source File: control.py From coveragepy with Apache License 2.0 | 4 votes |
def process_startup(): """Call this at Python start-up to perhaps measure coverage. If the environment variable COVERAGE_PROCESS_START is defined, coverage measurement is started. The value of the variable is the config file to use. There are two ways to configure your Python installation to invoke this function when Python starts: #. Create or append to sitecustomize.py to add these lines:: import coverage coverage.process_startup() #. Create a .pth file in your Python installation containing:: import coverage; coverage.process_startup() Returns the :class:`Coverage` instance that was started, or None if it was not started by this call. """ cps = os.environ.get("COVERAGE_PROCESS_START") if not cps: # No request for coverage, nothing to do. return None # This function can be called more than once in a process. This happens # because some virtualenv configurations make the same directory visible # twice in sys.path. This means that the .pth file will be found twice, # and executed twice, executing this function twice. We set a global # flag (an attribute on this function) to indicate that coverage.py has # already been started, so we can avoid doing it twice. # # https://bitbucket.org/ned/coveragepy/issue/340/keyerror-subpy has more # details. if hasattr(process_startup, "coverage"): # We've annotated this function before, so we must have already # started coverage.py in this process. Nothing to do. return None cov = Coverage(config_file=cps) process_startup.coverage = cov cov._warn_no_data = False cov._warn_unimported_source = False cov._warn_preimported_source = False cov._auto_save = True cov.start() return cov
Example #16
Source File: igor.py From coveragepy with Apache License 2.0 | 4 votes |
def run_tests_with_coverage(tracer, *runner_args): """Run tests, but with coverage.""" # Need to define this early enough that the first import of env.py sees it. os.environ['COVERAGE_TESTING'] = "True" os.environ['COVERAGE_PROCESS_START'] = os.path.abspath('metacov.ini') os.environ['COVERAGE_HOME'] = os.getcwd() # Create the .pth file that will let us measure coverage in sub-processes. # The .pth file seems to have to be alphabetically after easy-install.pth # or the sys.path entries aren't created right? # There's an entry in "make clean" to get rid of this file. pth_dir = os.path.dirname(pytest.__file__) pth_path = os.path.join(pth_dir, "zzz_metacov.pth") with open(pth_path, "w") as pth_file: pth_file.write("import coverage; coverage.process_startup()\n") suffix = "%s_%s" % (make_env_id(tracer), platform.platform()) os.environ['COVERAGE_METAFILE'] = os.path.abspath(".metacov."+suffix) import coverage cov = coverage.Coverage(config_file="metacov.ini") cov._warn_unimported_source = False cov._warn_preimported_source = False cov.start() try: # Re-import coverage to get it coverage tested! I don't understand all # the mechanics here, but if I don't carry over the imported modules # (in covmods), then things go haywire (os == None, eventually). covmods = {} covdir = os.path.split(coverage.__file__)[0] # We have to make a list since we'll be deleting in the loop. modules = list(sys.modules.items()) for name, mod in modules: if name.startswith('coverage'): if getattr(mod, '__file__', "??").startswith(covdir): covmods[name] = mod del sys.modules[name] import coverage # pylint: disable=reimported sys.modules.update(covmods) # Run tests, with the arguments from our command line. status = run_tests(tracer, *runner_args) finally: cov.stop() os.remove(pth_path) cov.combine() cov.save() return status