|
From: <aa-...@us...> - 2024-08-09 07:52:39
|
Revision: 9877
http://sourceforge.net/p/docutils/code/9877
Author: aa-turner
Date: 2024-08-09 07:52:36 +0000 (Fri, 09 Aug 2024)
Log Message:
-----------
Move unused ``version_identifier()`` to a test helper
Modified Paths:
--------------
trunk/docutils/docutils/utils/__init__.py
trunk/docutils/test/test__init__.py
trunk/docutils/test/test_utils/test__init__.py
Modified: trunk/docutils/docutils/utils/__init__.py
===================================================================
--- trunk/docutils/docutils/utils/__init__.py 2024-08-09 07:45:39 UTC (rev 9876)
+++ trunk/docutils/docutils/utils/__init__.py 2024-08-09 07:52:36 UTC (rev 9877)
@@ -20,7 +20,7 @@
from pathlib import PurePath, Path
from typing import TYPE_CHECKING
-from docutils import ApplicationError, DataError, __version_info__
+from docutils import ApplicationError, DataError
from docutils import io, nodes
# for backwards compatibility
from docutils.nodes import unescape # noqa: F401
@@ -31,7 +31,6 @@
from typing_extensions import TypeAlias
- from docutils import VersionInfo
from docutils.nodes import Element, Text
from docutils.frontend import Values
@@ -874,46 +873,3 @@
except AttributeError:
output_file = None
return '%s(%r, %s)' % (self.__class__.__name__, output_file, self.list)
-
-
-release_level_abbreviations: dict[str, str] = {
- 'alpha': 'a',
- 'beta': 'b',
- 'candidate': 'rc',
- 'final': '',
-}
-
-
-def version_identifier(version_info: VersionInfo | None = None) -> str:
- """
- Return a version identifier string built from `version_info`, a
- `docutils.VersionInfo` namedtuple instance or compatible tuple. If
- `version_info` is not provided, by default return a version identifier
- string based on `docutils.__version_info__` (i.e. the current Docutils
- version).
- """
- if version_info is None:
- version_info = __version_info__
- if version_info.micro:
- micro = '.%s' % version_info.micro
- else:
- # 0 is omitted:
- micro = ''
- releaselevel = release_level_abbreviations[version_info.releaselevel]
- if version_info.serial:
- serial = version_info.serial
- else:
- # 0 is omitted:
- serial = ''
- if version_info.release:
- dev = ''
- else:
- dev = '.dev'
- version = '%s.%s%s%s%s%s' % (
- version_info.major,
- version_info.minor,
- micro,
- releaselevel,
- serial,
- dev)
- return version
Modified: trunk/docutils/test/test__init__.py
===================================================================
--- trunk/docutils/test/test__init__.py 2024-08-09 07:45:39 UTC (rev 9876)
+++ trunk/docutils/test/test__init__.py 2024-08-09 07:52:36 UTC (rev 9877)
@@ -8,6 +8,8 @@
Test module for the docutils' __init__.py.
"""
+from __future__ import annotations
+
from pathlib import Path
import sys
import unittest
@@ -22,6 +24,42 @@
from docutils import VersionInfo
+_RELEASE_LEVEL_ABBREVIATIONS: dict[str, str] = {
+ 'alpha': 'a',
+ 'beta': 'b',
+ 'candidate': 'rc',
+ 'final': '',
+}
+
+
+def version_identifier(version_info: VersionInfo) -> str:
+ """
+ Return a version identifier string built from `version_info`, a
+ `docutils.VersionInfo` namedtuple instance or compatible tuple. If
+ `version_info` is not provided, by default return a version identifier
+ string based on `docutils.__version_info__` (i.e. the current Docutils
+ version).
+ """
+ if version_info.micro:
+ micro = f'.{version_info.micro}'
+ else:
+ # 0 is omitted:
+ micro = ''
+ releaselevel = _RELEASE_LEVEL_ABBREVIATIONS[version_info.releaselevel]
+ if version_info.serial:
+ serial = version_info.serial
+ else:
+ # 0 is omitted:
+ serial = ''
+ if version_info.release:
+ dev = ''
+ else:
+ dev = '.dev'
+ version = (f'{version_info.major}.{version_info.minor}{micro}'
+ f'{releaselevel}{serial}{dev}')
+ return version
+
+
class ApplicationErrorTests(unittest.TestCase):
def test_message(self):
@@ -73,7 +111,7 @@
def test__version__(self):
"""Test that __version__ is equivalent to __version_info__."""
self.assertEqual(
- docutils.utils.version_identifier(docutils.__version_info__),
+ version_identifier(docutils.__version_info__),
docutils.__version__, f'{docutils.__version_info__} differs')
def test_version_info_comparing(self):
@@ -104,8 +142,7 @@
VersionInfo(0, 2, 0, 'final', 0, True),
]
# transform to version strings
- versions = [docutils.utils.version_identifier(vinfo)
- for vinfo in versioninfos]
+ versions = [version_identifier(vinfo) for vinfo in versioninfos]
# ensure version infos corresponding to the dev cycle are ascending
self.assertEqual(versions, devcycle.split())
Modified: trunk/docutils/test/test_utils/test__init__.py
===================================================================
--- trunk/docutils/test/test_utils/test__init__.py 2024-08-09 07:45:39 UTC (rev 9876)
+++ trunk/docutils/test/test_utils/test__init__.py 2024-08-09 07:52:36 UTC (rev 9877)
@@ -19,9 +19,7 @@
# so we import the local `docutils` package.
sys.path.insert(0, str(Path(__file__).resolve().parents[2]))
-import docutils
from docutils import nodes, utils
-import docutils.utils.math
TEST_ROOT = Path(__file__).parents[1] # ./test/ from the docutils root
@@ -239,29 +237,6 @@
class HelperFunctionTests(unittest.TestCase):
-
- # Test conversion from `version information tuple` to a PEP 440 compliant
- # Docutils version identifier.
- # See 'Version Numbering' in docs/dev/policies.txt.
- def test_version_identifier(self):
- release_0_14_final = docutils.VersionInfo(
- major=0, minor=14, micro=0,
- releaselevel='final', serial=0, release=True)
- self.assertEqual(utils.version_identifier(release_0_14_final), '0.14')
- dev_0_15_beta = docutils.VersionInfo(
- major=0, minor=15, micro=0,
- releaselevel='beta', serial=0, release=False)
- self.assertEqual(utils.version_identifier(dev_0_15_beta), '0.15b.dev')
- release_0_14_rc1 = docutils.VersionInfo(
- major=0, minor=14, micro=0,
- releaselevel='candidate', serial=1, release=True)
- self.assertEqual(utils.version_identifier(release_0_14_rc1), '0.14rc1')
-
- def test_implicit_version_identifier(self):
- self.assertEqual(
- utils.version_identifier(docutils.__version_info__),
- utils.version_identifier())
-
def test_normalize_language_tag(self):
self.assertEqual(utils.normalize_language_tag('de'), ['de'])
self.assertEqual(utils.normalize_language_tag('de-AT'),
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|