def main(argv=None): options = docopt(__doc__, argv=argv) if options['debug']: options['--verbose'] = True level = logging.DEBUG if options['--verbose'] else logging.INFO log.addHandler(logging.StreamHandler()) log.setLevel(level) try: token_required = not options['debug'] and not options['--output'] coverallz = Coveralls(token_required, config_file=options['--rcfile']) if options['--merge']: coverallz.merge(options['--merge']) if options['debug']: log.info("Testing coveralls-python...") coverallz.wear(dry_run=True) elif options['--output']: log.info('Write coverage report to file...') coverallz.save_report(options['--output']) else: log.info("Submitting coverage to coveralls.io...") result = coverallz.wear() log.info("Coverage submitted!") log.info(result['message']) log.info(result['url']) log.debug(result) except KeyboardInterrupt: # pragma: no cover log.info('Aborted') except CoverallsException as e: log.error(e) except KeyError as e: # pragma: no cover log.error(e) except Exception: # pragma: no cover raise
def main(argv=None): options = docopt(__doc__, argv=argv) if options['debug']: options['--verbose'] = True level = logging.DEBUG if options['--verbose'] else logging.INFO log.addHandler(logging.StreamHandler()) log.setLevel(level) try: token_required = not options['debug'] and not options['--output'] coverallz = Coveralls(token_required, config_file=options['--rcfile']) if options['--merge']: coverallz.merge(options['--merge']) if options['debug']: log.info("Testing coveralls-python...") coverallz.wear(dry_run=True) elif options['--output']: log.info('Write coverage report to file...') coverallz.save_report(options['--output']) else: log.info("Submitting coverage to coveralls.io...") result = coverallz.wear() log.info("Coverage submitted!") log.info(result['message']) log.info(result['url']) log.debug(result) except KeyboardInterrupt: # pragma: no cover log.info('Aborted') except CoverallsException as e: log.error(e) except KeyError as e: # pragma: no cover log.error(e) except Exception: # pragma: no cover raise
def test_merge_empty_data(self, mock_requests): api = Coveralls(repo_token='xxx') coverage_file = tempfile.NamedTemporaryFile() coverage_file.write(b'{}') coverage_file.seek(0) api.merge(coverage_file.name) result = api.create_report() assert json.loads(result)['source_files'] == []
def test_merge(self, mock_requests): api = Coveralls(repo_token='xxx') coverage_file = tempfile.NamedTemporaryFile() coverage_file.write(b'{"source_files": [{"name": "foobar", "coverage": []}]}') coverage_file.seek(0) api.merge(coverage_file.name) result = api.create_report() assert json.loads(result)['source_files'] == [{'name': 'foobar', 'coverage': []}]
def test_merge_invalid_data(self, mock_logger, mock_requests): api = Coveralls(repo_token='xxx') coverage_file = tempfile.NamedTemporaryFile() coverage_file.write(b'{"random": "stuff"}') coverage_file.seek(0) api.merge(coverage_file.name) result = api.create_report() assert json.loads(result)['source_files'] == [] mock_logger.assert_called_once_with('No data to be merged; does the ' 'json file contain "source_files" data?')