def test_print_current_version(self):
        print_mock = MagicMock()
        VersionCommand.get_current_version = MagicMock(return_value='1.2.3')
        VersionCommand._print = print_mock  # pylint: disable=protected-access

        cmd = VersionCommand()
        cmd.print_current_version()

        print_mock.assert_called_with('1.2.3')
    def test_current_version_not_pep440_compliant(self):
        fake_version_py = Path('foo.py')
        VersionCommand.get_current_version = MagicMock(return_value='1.02.03')
        cmd = VersionCommand(version_file_path=fake_version_py)

        with self.assertRaisesRegex(
            VersionError, 'The version .* in foo.py is not PEP 440 compliant.',
        ):
            cmd.verify_version('1.2.3')
Beispiel #3
0
    def test_update_version_file(self):
        fake_path_class = MagicMock(spec=Path)
        fake_path = fake_path_class.return_value

        cmd = VersionCommand(version_file_path=fake_path)
        cmd.update_version_file('22.04dev1')

        text = fake_path.write_text.call_args[0][0]

        *_, version_line, _last_line = text.split('\n')

        self.assertEqual(version_line, '__version__ = "22.4.dev1"')
    def test_override_existing_version(self):
        fake_path_class = MagicMock(spec=Path)
        fake_path = fake_path_class.return_value
        fake_path.read_text.return_value = '[tool.poetry]\nversion = "1.2.3"'

        cmd = VersionCommand(pyproject_toml_path=fake_path)
        cmd.update_pyproject_version('20.04dev1')

        text = fake_path.write_text.call_args[0][0]

        toml = tomlkit.parse(text)

        self.assertEqual(toml['tool']['poetry']['version'], '20.4.dev1')
    def test_empty_tool_section(self):
        fake_path_class = MagicMock(spec=Path)
        fake_path = fake_path_class.return_value
        fake_path.read_text.return_value = "[tool]"

        cmd = VersionCommand(pyproject_toml_path=fake_path)
        cmd.update_pyproject_version('20.04dev1')

        text = fake_path.write_text.call_args[0][0]

        toml = tomlkit.parse(text)

        self.assertEqual(toml['tool']['poetry']['version'], '20.4.dev1')
    def test_verify_success(self):
        fake_version_py = Path('foo.py')
        fake_path_class = MagicMock(spec=Path)
        fake_path = fake_path_class.return_value
        fake_path.read_text.return_value = '[tool.poetry]\nversion = "1.2.3"'

        print_mock = MagicMock()
        VersionCommand.get_current_version = MagicMock(return_value='1.2.3')
        VersionCommand._print = print_mock  # pylint: disable=protected-access

        cmd = VersionCommand(
            version_file_path=fake_version_py, pyproject_toml_path=fake_path,
        )
        cmd.verify_version('1.2.3')

        print_mock.assert_called_with('OK')
    def test_current_version_not_equal_pyproject_toml_version(self):
        fake_version_py = Path('foo.py')
        fake_path_class = MagicMock(spec=Path)
        fake_path = fake_path_class.return_value
        fake_path.read_text.return_value = '[tool.poetry]\nversion = "1.1.1"'

        VersionCommand.get_current_version = MagicMock(return_value='1.2.3')
        cmd = VersionCommand(
            version_file_path=fake_version_py, pyproject_toml_path=fake_path,
        )

        with self.assertRaisesRegex(
            VersionError,
            'The version .* in .* doesn\'t match the current version .*.',
        ):
            cmd.verify_version('1.2.3')