Files
Jatin K MalikandGitHub 3d65e5cea9 chore(release): prepare v0.14.2 (#537)
* chore(release): prepare v0.14.2

IBus stability patch on the 0.14 series: engine process launch after XDG
import (#534) and FocusIn gate for first dictation on GNOME Wayland (#533).

Keep 0.14 series feature list in README/UPDATE for patch releases; changelog
and AppStream note only the delta. Document that rule in RELEASE_PROCESS.

* fix(release): address 0.14.2 review findings

- Dates: v0.14.2 uses 2026-07-17 (not before 0.14.1)
- AUR: sha256sums=SKIP until tag; document updpkgsums in RELEASE_PROCESS
- Single version source: package __init__ re-exports version.py; User-Agent uses __version__
- Docs: drop redundant series recaps; shrink AppStream/changelog delta
- README ecosystem status: Stable v0.14.2 (not Beta)

* docs(release): include settings scroll fixes in 0.14.2 notes

Cover #538 and #541 (scrollable settings tabs / wheel polish) in README,
UPDATE, website changelog, AppStream, and version history after rebasing
onto main.
2026-07-17 18:42:53 -07:00

65 lines
2.3 KiB
Python

"""
Tests for the version module.
"""
import unittest
class TestVersion(unittest.TestCase):
"""Test cases for version information."""
def test_version_exists(self):
"""Test that version string exists and is valid."""
from vocalinux.version import __version__
self.assertIsInstance(__version__, str)
self.assertTrue(len(__version__) > 0)
# Version should follow semver-like pattern
parts = __version__.replace("-", ".").split(".")
self.assertTrue(len(parts) >= 3)
def test_package_version_matches_version_module(self):
"""Package root re-exports version.py so import vocalinux.__version__ is correct."""
import vocalinux
from vocalinux.version import __version__
self.assertEqual(vocalinux.__version__, __version__)
def test_version_info_tuple(self):
"""Test that version info tuple exists and is valid."""
from vocalinux.version import __version_info__
self.assertIsInstance(__version_info__, tuple)
self.assertTrue(len(__version_info__) >= 3)
# First three elements should be integers
self.assertIsInstance(__version_info__[0], int)
self.assertIsInstance(__version_info__[1], int)
self.assertIsInstance(__version_info__[2], int)
def test_author_info(self):
"""Test that author information exists."""
from vocalinux.version import __author__, __email__
self.assertIsInstance(__author__, str)
self.assertTrue(len(__author__) > 0)
self.assertIsInstance(__email__, str)
self.assertIn("@", __email__)
def test_license_info(self):
"""Test that license information exists."""
from vocalinux.version import __copyright__, __license__
self.assertIsInstance(__license__, str)
self.assertTrue(len(__license__) > 0)
self.assertIsInstance(__copyright__, str)
self.assertIn("Copyright", __copyright__)
def test_url_and_description(self):
"""Test that URL and description exist."""
from vocalinux.version import __description__, __url__
self.assertIsInstance(__url__, str)
self.assertTrue(__url__.startswith("http"))
self.assertIsInstance(__description__, str)
self.assertTrue(len(__description__) > 0)