Пример #1
0
    def test_release(self) -> None:

        releaser = Semversioner(path=self.directory_name)

        releaser.add_change("minor", "My description")
        releaser.add_change("major", "My description")
        self.assertEqual(
            releaser.get_status(), {
                'version':
                '0.0.0',
                'next_version':
                '1.0.0',
                'unreleased_changes': [{
                    'type': 'major',
                    'description': 'My description'
                }, {
                    'type': 'minor',
                    'description': 'My description'
                }],
            })
        releaser.release()
        self.assertEqual(releaser.get_status(), {
            'version': '1.0.0',
            'next_version': None,
            'unreleased_changes': [],
        })
        with self.assertRaises(SystemExit):
            releaser.release()
Пример #2
0
    def test_release_stress(self) -> None:

        releaser = Semversioner(path=self.directory_name)

        expected = []
        for i in range(100):
            releaser.add_change("major", f"My description {i}")
            expected.append({
                'type': 'major',
                'description': f"My description {i}"
            })

        expected = sorted(expected, key=lambda k: k['type'] + k['description'])
        self.assertEqual(
            releaser.get_status(), {
                'version': '0.0.0',
                'next_version': '1.0.0',
                'unreleased_changes': expected,
            })
        releaser.release()
        self.assertEqual(releaser.get_status(), {
            'version': '1.0.0',
            'next_version': None,
            'unreleased_changes': [],
        })
Пример #3
0
 def test_increase_version(self):
     releaser = Semversioner(self.directory_name)
     self.assertEqual(releaser._increase_version("1.0.0", "minor"), "1.1.0")
     self.assertEqual(releaser._increase_version("1.0.0", "major"), "2.0.0")
     self.assertEqual(releaser._increase_version("1.0.0", "patch"), "1.0.1")
     self.assertEqual(releaser._increase_version("0.1.1", "minor"), "0.2.0")
     self.assertEqual(releaser._increase_version("0.1.1", "major"), "1.0.0")
     self.assertEqual(releaser._increase_version("0.1.1", "patch"), "0.1.2")
     self.assertEqual(releaser._increase_version("9.9.9", "minor"), "9.10.0")
     self.assertEqual(releaser._increase_version("9.9.9", "major"), "10.0.0")
     self.assertEqual(releaser._increase_version("9.9.9", "patch"), "9.9.10")
Пример #4
0
 def test_commands_with_no_changesets(self) -> None:
     releaser = Semversioner(path=self.directory_name)
     self.assertEqual(
         releaser.generate_changelog(),
         "# Changelog\nNote: version releases in the 0.x.y range may introduce breaking changes.\n"
     )
     self.assertEqual(releaser.get_last_version(), "0.0.0")
     self.assertEqual(releaser.get_status(), {
         'version': '0.0.0',
         'next_version': None,
         'unreleased_changes': [],
     })
     with self.assertRaises(SystemExit):
         releaser.release()
Пример #5
0
    def test_empty_release(self):
        releaser = Semversioner(self.directory_name)

        with self.assertRaises(SystemExit):
            releaser.release()
Пример #6
0
    def test_generate_changelog(self):
        releaser = Semversioner(self.directory_name)
        self.assertEqual(releaser.generate_changelog(), """# Changelog
Note: version releases in the 0.x.y range may introduce breaking changes.
""")
Пример #7
0
def cli(ctx, path):
    ctx.obj = {'releaser': Semversioner(path=path)}
Пример #8
0
def cli(ctx: click.Context, path: str) -> None:
    ctx.obj = {'releaser': Semversioner(path=path)}
Пример #9
0
 def test_is_deprecated(self) -> None:
     releaser = Semversioner(self.directory_name)
     self.assertFalse(releaser.is_deprecated())