def version(**kwargs): """ Detects the new version according to git log and semver. Writes the new version number and commits it(unless the noop-option is True. """ click.echo('Creating new version..') current_version = get_current_version() click.echo('Current version: {0}'.format(current_version)) level_bump = evaluate_version_bump(current_version, kwargs['force_level']) new_version = get_new_version(current_version, level_bump) if new_version == current_version: click.echo(click.style('No release will be made.', fg='yellow')) return False if kwargs['noop'] is True: click.echo('{} Should have bumped from {} to {}.'.format( click.style('No operation mode.', fg='yellow'), current_version, new_version )) return False set_new_version(new_version) commit_new_version(new_version) tag_new_version(new_version) click.echo('Bumping with a {0} version to {1}.'.format(level_bump, new_version)) return True
def test_None_bump(self): self.assertEqual(get_new_version('1.0.0', None), '1.0.0')
def test_minor_bump(self): self.assertEqual(get_new_version('0.0.0', 'minor'), '0.1.0') self.assertEqual(get_new_version('1.2.0', 'minor'), '1.3.0') self.assertEqual(get_new_version('1.2.1', 'minor'), '1.3.0') self.assertEqual(get_new_version('10.1.0', 'minor'), '10.2.0')
def test_patch_bump(self): self.assertEqual(get_new_version('0.0.0', 'patch'), '0.0.1') self.assertEqual(get_new_version('0.1.0', 'patch'), '0.1.1') self.assertEqual(get_new_version('10.0.9', 'patch'), '10.0.10')
def test_major_bump(self): self.assertEqual(get_new_version('0.0.0', 'major'), '1.0.0') self.assertEqual(get_new_version('0.1.0', 'major'), '1.0.0') self.assertEqual(get_new_version('0.1.9', 'major'), '1.0.0') self.assertEqual(get_new_version('10.1.0', 'major'), '11.0.0')