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')
    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')