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