def test_coveralls_unavailable(self, mock_requests): mock_requests.post.return_value.json.side_effect = ValueError mock_requests.post.return_value.status_code = 500 mock_requests.post.return_value.text = '<html>Http 1./1 500</html>' with pytest.raises(coveralls.exception.CoverallsException): coveralls.Coveralls(repo_token='xxx').wear()
def test_no_coverage(self, report_files, mock_requests): mock_requests.post.return_value.json.return_value = EXPECTED report_files.side_effect = coverage.CoverageException( 'No data to report') with pytest.raises(coverage.CoverageException): coveralls.Coveralls(repo_token='xxx').wear()
def test_merge_empty_data(self, _mock_requests): coverage_file = tempfile.NamedTemporaryFile() coverage_file.write(b'{}') coverage_file.seek(0) api = coveralls.Coveralls(repo_token='xxx') api.merge(coverage_file.name) result = api.create_report() source_files = json.loads(result)['source_files'] assert source_files == []
def test_merge(self, _mock_requests): coverage_file = tempfile.NamedTemporaryFile() coverage_file.write( b'{"source_files": [{"name": "foobar", "coverage": []}]}') coverage_file.seek(0) api = coveralls.Coveralls(repo_token='xxx') api.merge(coverage_file.name) result = api.create_report() source_files = json.loads(result)['source_files'] assert source_files == [{'name': 'foobar', 'coverage': []}]
def test_merge_invalid_data(self, mock_logger, _mock_requests): coverage_file = tempfile.NamedTemporaryFile() coverage_file.write(b'{"random": "stuff"}') coverage_file.seek(0) api = coveralls.Coveralls(repo_token='xxx') api.merge(coverage_file.name) result = api.create_report() source_files = json.loads(result)['source_files'] assert source_files == [] mock_logger.assert_called_once_with('No data to be merged; does the ' 'json file contain "source_files" ' 'data?')
def main(): parser = argparse.ArgumentParser() parser.add_argument('--build', help='build ID') parser.add_argument('--pr', type=int, help='pull request ID on github') parser.add_argument('--branch', help='branch name') args = parser.parse_args() if 'COVERALLS_REPO_TOKEN' not in os.environ: print('COVERALLS_REPO_TOKEN environment variable is not set') return if args.build: build = args.build elif 'COVERALLS_BUILD' in os.environ: build = os.getenv('COVERALLS_BUILD') else: build = None if args.pr: pr = args.pr elif 'COVERALLS_PR' in os.environ: pr = os.getenv('COVERALLS_PR') else: pr = None if args.branch: branch = args.branch elif 'COVERALLS_BRANCH' in os.environ: branch = os.getenv('COVERALLS_BRANCH') else: branch = None kwargs = {} if build is not None: kwargs['service_number'] = str(build) if pr is not None: kwargs['service_pull_request'] = str(pr) if branch is not None: # git.branch cannot be updates with kwargs os.environ['CIRCLE_BRANCH'] = branch c = coveralls.Coveralls(False, **kwargs) res = c.wear() print(res['message']) print(res['url'])
def test_repo_token_in_not_compromised_verbose(self, mock_logger, mock_requests): mock_requests.post.return_value.json.return_value = EXPECTED coveralls.Coveralls(repo_token='xxx').wear(dry_run=True) assert 'xxx' not in mock_logger.call_args[0][0]
def test_dry_run(self, mock_requests): mock_requests.post.return_value.json.return_value = EXPECTED result = coveralls.Coveralls(repo_token='xxx').wear(dry_run=True) assert result == {}
def test_api_call_uses_default_host_if_no_env_var_set(self, mock_requests): coveralls.Coveralls(repo_token='xxx').wear(dry_run=False) mock_requests.post.assert_called_once_with( 'https://coveralls.io/api/v1/jobs', files=mock.ANY)
def test_coveralls_host_env_var_overrides_api_url(self, mock_requests): coveralls.Coveralls(repo_token='xxx').wear(dry_run=False) mock_requests.post.assert_called_once_with( 'https://coveralls.my-enterprise.info/api/v1/jobs', files=mock.ANY)
def collect(self): coverall = coveralls.Coveralls() self.merge(coverall.create_data()) for f in self.files: self.merge(self.parse(f))