Files
pygitversionhelper/test/test_gitversionhelper.py
2023-03-18 00:10:00 +00:00

691 lines
29 KiB
Python

# pygitversionhelper (c) by chacha
#
# pygitversionhelper is licensed under a
# Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Unported License.
#
# You should have received a copy of the license along with this
# work. If not, see <https://creativecommons.org/licenses/by-nc-sa/4.0/>.
import unittest
import tempfile
import os
import pathlib
import re
from contextlib import redirect_stdout,redirect_stderr
print(__name__)
print(__package__)
from src import pygitversionhelper
HelperRegex=r"^(?P<MAJ>\d+)\.(?P<MIN>\d+)\.(?P<PATCH>\d+)([\.\-\+])?(?:.*)?"
class Test_gitversionhelper(unittest.TestCase):
def setUp(self):
self.TmpWorkingDir=tempfile.TemporaryDirectory()
self.TmpWorkingDirPath=pathlib.Path(self.TmpWorkingDir.name)
os.chdir(self.TmpWorkingDirPath)
os.system("git init")
def _test_version_readback(self,tag:str,**kwargs):
with open("demofile.txt", "w+t") as tmpFile:
tmpFile.write("testvalue")
os.system("git add .")
os.system("git commit -m \"first commit\"")
os.system(f"git tag {tag}")
_v = pygitversionhelper.gitversionhelper.version.getLastVersion(**kwargs)
self.assertIsInstance(_v, pygitversionhelper.gitversionhelper.version.MetaVersion)
self.assertIsInstance(_v.raw, str)
self.assertEqual(_v.raw, tag)
self.assertIsInstance(_v.major, int)
self.assertIsInstance(_v.minor, int)
self.assertIsInstance(_v.patch, int)
self.assertIsInstance(_v.pre_count, int)
self.assertIsInstance(_v.post_count, int)
_m = re.match(HelperRegex, tag)
self.assertEqual(int(_m.group("MAJ")),_v.major)
self.assertEqual(int(_m.group("MIN")),_v.minor)
self.assertEqual(int(_m.group("PATCH")),_v.patch)
return _v
def _test_version_format(self,_v:pygitversionhelper.gitversionhelper.version.MetaVersion,tag:str,**kwargs):
_f=_v.doFormatVersion(**kwargs)
self.assertRegex(_f,HelperRegex)
self.assertEqual(_f, tag)
def _test_version_readback_simple(self,tag:str,**kwargs):
_v=self._test_version_readback(tag,**kwargs)
self._test_version_format(_v,tag,**kwargs)
def test_nominal_version_auto_1(self):
self._test_version_readback_simple("0.0.1")
def test_nominal_version_auto_2(self):
self._test_version_readback_simple("0.0.2")
def test_nominal_version_auto_3(self):
self._test_version_readback_simple("0.1.0")
def test_nominal_version_auto_4(self):
self._test_version_readback_simple("0.1.1")
def test_nominal_version_auto_5(self):
self._test_version_readback_simple("1.0.0")
def test_nominal_version_auto_6(self):
self._test_version_readback_simple("1.1.0")
def test_nominal_version_auto_7(self):
self._test_version_readback_simple("1.2.0")
def test_nominal_version_auto_8(self):
self._test_version_readback_simple("1.1.1")
def test_nominal_version_auto_9(self):
self._test_version_readback_simple("1.2.1")
def test_nominal_version_auto_PEP440_post(self):
self._test_version_readback_simple("1.2.1.post1")
def test_nominal_version_auto_PEP440_pre(self):
self._test_version_readback_simple("1.2.1.pre1")
def test_nominal_version_auto_PEP440_post_2(self):
self._test_version_readback_simple("1.2.1.post10")
def test_nominal_version_auto_PEP440_pre_2(self):
self._test_version_readback_simple("1.2.1.pre10")
def test_nominal_version_auto_SemVer_post(self):
self._test_version_readback_simple("1.2.1+post.1")
def test_nominal_version_auto_SemVer_pre(self):
self._test_version_readback_simple("1.2.1-pre.1")
def test_nominal_version_auto_SemVer_post_2(self):
self._test_version_readback_simple("1.2.1+post.10")
def test_nominal_version_auto_Semver_pre_2(self):
self._test_version_readback_simple("1.2.1-pre.10")
def test_nominal_version_PEP440_1(self):
self._test_version_readback_simple("0.0.1",version_std="PEP440")
def test_nominal_version_PEP440_2(self):
self._test_version_readback_simple("0.0.2",version_std="PEP440")
def test_nominal_version_PEP440_3(self):
self._test_version_readback_simple("0.1.0",version_std="PEP440")
def test_nominal_version_PEP440_4(self):
self._test_version_readback_simple("0.1.1",version_std="PEP440")
def test_nominal_version_PEP440_5(self):
self._test_version_readback_simple("1.0.0",version_std="PEP440")
def test_nominal_version_PEP440_6(self):
self._test_version_readback_simple("1.1.0",version_std="PEP440")
def test_nominal_version_PEP440_7(self):
self._test_version_readback_simple("1.2.0",version_std="PEP440")
def test_nominal_version_PEP440_8(self):
self._test_version_readback_simple("1.1.1",version_std="PEP440")
def test_nominal_version_PEP440_9(self):
self._test_version_readback_simple("1.2.1",version_std="PEP440")
def test_nominal_version_PEP440_post(self):
self._test_version_readback_simple("1.2.1.post1",version_std="PEP440")
def test_nominal_version_PEP440_pre(self):
self._test_version_readback_simple("1.2.1.pre1",version_std="PEP440")
def test_nominal_version_PEP440_post_2(self):
self._test_version_readback_simple("1.2.1.post10",version_std="PEP440")
def test_nominal_version_PEP440_pre_2(self):
self._test_version_readback_simple("1.2.1.pre10",version_std="PEP440")
def test_nominal_version_SemVer_1(self):
self._test_version_readback_simple("0.0.1",version_std="SemVer")
def test_nominal_version_SemVer_2(self):
self._test_version_readback_simple("0.0.2",version_std="SemVer")
def test_nominal_version_SemVer_3(self):
self._test_version_readback_simple("0.1.0",version_std="SemVer")
def test_nominal_version_SemVer_4(self):
self._test_version_readback_simple("0.1.1",version_std="SemVer")
def test_nominal_version_SemVer_5(self):
self._test_version_readback_simple("1.0.0",version_std="SemVer")
def test_nominal_version_SemVer_6(self):
self._test_version_readback_simple("1.1.0",version_std="SemVer")
def test_nominal_version_SemVer_7(self):
self._test_version_readback_simple("1.2.0",version_std="SemVer")
def test_nominal_version_SemVer_8(self):
self._test_version_readback_simple("1.1.1",version_std="SemVer")
def test_nominal_version_SemVer_9(self):
self._test_version_readback_simple("1.2.1",version_std="SemVer")
def test_nominal_version_SemVer_post(self):
self._test_version_readback_simple("1.2.1+post.1",version_std="SemVer")
def test_nominal_version_SemVer_pre(self):
self._test_version_readback_simple("1.2.1-pre.1",version_std="SemVer")
def test_nominal_version_SemVer_post_2(self):
self._test_version_readback_simple("1.2.1+post.10",version_std="SemVer")
def test_nominal_version_SemVer_pre_2(self):
self._test_version_readback_simple("1.2.1-pre.10",version_std="SemVer")
def test_nominal_version_post_PEP440_to_SemVer(self):
_v=self._test_version_readback("1.2.1.post10",version_std="PEP440")
self._test_version_format(_v,"1.2.1+post.10",version_std="SemVer")
def test_nominal_version_post_SemVer_to_PEP440(self):
_v=self._test_version_readback("1.2.1+post.10",version_std="SemVer")
self._test_version_format(_v,"1.2.1.post10",version_std="PEP440")
def test_nominal_version_pre_PEP440_to_SemVer(self):
_v=self._test_version_readback("1.2.1.pre10",version_std="PEP440")
self._test_version_format(_v,"1.2.1-pre.10",version_std="SemVer")
def test_nominal_version_pre_SemVer_to_PEP440(self):
_v=self._test_version_readback("1.2.1-pre.10",version_std="SemVer")
self._test_version_format(_v,"1.2.1.pre10",version_std="PEP440")
def test_nominal_version_post_SemVer_nonum(self):
_v=self._test_version_readback("1.2.1+post",version_std="SemVer")
self._test_version_format(_v,"1.2.1+post.1",version_std="SemVer")
def test_nominal_version_post_SemVer_nonum_random(self):
_v=self._test_version_readback("1.2.1+toto",version_std="SemVer")
self._test_version_format(_v,"1.2.1+post.1",version_std="SemVer")
def test_nominal_version_pre_SemVer_nonum(self):
_v=self._test_version_readback("1.2.1-pre",version_std="SemVer")
self._test_version_format(_v,"1.2.1-pre.1",version_std="SemVer")
def test_nominal_version_pre_SemVer_nonum_random(self):
_v=self._test_version_readback("1.2.1-toto",version_std="SemVer")
self._test_version_format(_v,"1.2.1-pre.1",version_std="SemVer")
def test_version_pump_SemVer(self,**kwargs):
_v = self._test_version_readback("1.0.0",version_std="SemVer")
_v = _v.bump()
self.assertIsInstance(_v.raw, str)
self.assertIsInstance(_v.major, int)
self.assertIsInstance(_v.minor, int)
self.assertIsInstance(_v.patch, int)
self.assertIsInstance(_v.pre_count, int)
self.assertIsInstance(_v.post_count, int)
self.assertEqual(_v.raw, "1.0.1")
self.assertEqual(_v.major, 1)
self.assertEqual(_v.minor, 0)
self.assertEqual(_v.patch, 1)
self.assertEqual(_v.pre_count, 0)
self.assertEqual(_v.post_count, 0)
self.assertEqual(_v.doFormatVersion(), "1.0.1")
_v = _v.bump(bump_type="patch")
self.assertEqual(_v.raw, "1.0.2")
self.assertEqual(_v.major, 1)
self.assertEqual(_v.minor, 0)
self.assertEqual(_v.patch, 2)
self.assertEqual(_v.pre_count, 0)
self.assertEqual(_v.post_count, 0)
self.assertEqual(_v.doFormatVersion(), "1.0.2")
_v = _v.bump(bump_type="minor")
self.assertEqual(_v.raw, "1.1.2")
self.assertEqual(_v.major, 1)
self.assertEqual(_v.minor, 1)
self.assertEqual(_v.patch, 2)
self.assertEqual(_v.pre_count, 0)
self.assertEqual(_v.post_count, 0)
self.assertEqual(_v.doFormatVersion(), "1.1.2")
_v = _v.bump(bump_type="major")
self.assertEqual(_v.raw, "2.1.2")
self.assertEqual(_v.major, 2)
self.assertEqual(_v.minor, 1)
self.assertEqual(_v.patch, 2)
self.assertEqual(_v.pre_count, 0)
self.assertEqual(_v.post_count, 0)
self.assertEqual(_v.doFormatVersion(), "2.1.2")
_v = _v.bump(bump_type="dev")
self.assertEqual(_v.raw, "2.1.2+post.1")
self.assertEqual(_v.major, 2)
self.assertEqual(_v.minor, 1)
self.assertEqual(_v.patch, 2)
self.assertEqual(_v.pre_count, 0)
self.assertEqual(_v.post_count, 1)
self.assertEqual(_v.doFormatVersion(), "2.1.2+post.1")
_v = _v.bump(bump_type="dev")
self.assertEqual(_v.raw, "2.1.2+post.2")
self.assertEqual(_v.major, 2)
self.assertEqual(_v.minor, 1)
self.assertEqual(_v.patch, 2)
self.assertEqual(_v.pre_count, 0)
self.assertEqual(_v.post_count, 2)
self.assertEqual(_v.doFormatVersion(), "2.1.2+post.2")
_v = _v.bump(bump_type="patch")
self.assertEqual(_v.raw, "2.1.3")
self.assertEqual(_v.major, 2)
self.assertEqual(_v.minor, 1)
self.assertEqual(_v.patch, 3)
self.assertEqual(_v.pre_count, 0)
self.assertEqual(_v.post_count, 0)
self.assertEqual(_v.doFormatVersion(), "2.1.3")
_v = _v.bump(bump_type="dev",bump_dev_strategy="pre-patch")
self.assertEqual(_v.raw, "2.1.4-pre.1")
self.assertEqual(_v.major, 2)
self.assertEqual(_v.minor, 1)
self.assertEqual(_v.patch, 4)
self.assertEqual(_v.pre_count, 1)
self.assertEqual(_v.post_count, 0)
self.assertEqual(_v.doFormatVersion(), "2.1.4-pre.1")
_v = _v.bump(bump_type="dev",bump_dev_strategy="pre-patch")
self.assertEqual(_v.raw, "2.1.4-pre.2")
self.assertEqual(_v.major, 2)
self.assertEqual(_v.minor, 1)
self.assertEqual(_v.patch, 4)
self.assertEqual(_v.pre_count, 2)
self.assertEqual(_v.post_count, 0)
self.assertEqual(_v.doFormatVersion(), "2.1.4-pre.2")
_v = _v.bump(bump_type="dev",bump_dev_strategy="post")
self.assertEqual(_v.raw, "2.1.4-pre.3")
self.assertEqual(_v.major, 2)
self.assertEqual(_v.minor, 1)
self.assertEqual(_v.patch, 4)
self.assertEqual(_v.pre_count, 3)
self.assertEqual(_v.post_count, 0)
self.assertEqual(_v.doFormatVersion(), "2.1.4-pre.3")
_v = _v.bump(bump_type="patch")
self.assertEqual(_v.raw, "2.1.5")
self.assertEqual(_v.major, 2)
self.assertEqual(_v.minor, 1)
self.assertEqual(_v.patch, 5)
self.assertEqual(_v.pre_count, 0)
self.assertEqual(_v.post_count, 0)
self.assertEqual(_v.doFormatVersion(), "2.1.5")
_v = _v.bump(bump_type="dev",bump_dev_strategy="post")
self.assertEqual(_v.raw, "2.1.5+post.1")
self.assertEqual(_v.major, 2)
self.assertEqual(_v.minor, 1)
self.assertEqual(_v.patch, 5)
self.assertEqual(_v.pre_count, 0)
self.assertEqual(_v.post_count, 1)
self.assertEqual(_v.doFormatVersion(), "2.1.5+post.1")
_v = _v.bump(bump_type="dev",bump_dev_strategy="pre-patch")
self.assertEqual(_v.raw, "2.1.5+post.2")
self.assertEqual(_v.major, 2)
self.assertEqual(_v.minor, 1)
self.assertEqual(_v.patch, 5)
self.assertEqual(_v.pre_count, 0)
self.assertEqual(_v.post_count, 2)
self.assertEqual(_v.doFormatVersion(), "2.1.5+post.2")
def test_version_pump_PEP440(self,**kwargs):
_v = self._test_version_readback("1.0.0",version_std="PEP440")
_v = _v.bump()
self.assertIsInstance(_v.raw, str)
self.assertIsInstance(_v.major, int)
self.assertIsInstance(_v.minor, int)
self.assertIsInstance(_v.patch, int)
self.assertIsInstance(_v.pre_count, int)
self.assertIsInstance(_v.post_count, int)
self.assertEqual(_v.raw, "1.0.1")
self.assertEqual(_v.major, 1)
self.assertEqual(_v.minor, 0)
self.assertEqual(_v.patch, 1)
self.assertEqual(_v.pre_count, 0)
self.assertEqual(_v.post_count, 0)
self.assertEqual(_v.doFormatVersion(), "1.0.1")
_v = _v.bump(bump_type="patch")
self.assertEqual(_v.raw, "1.0.2")
self.assertEqual(_v.major, 1)
self.assertEqual(_v.minor, 0)
self.assertEqual(_v.patch, 2)
self.assertEqual(_v.pre_count, 0)
self.assertEqual(_v.post_count, 0)
self.assertEqual(_v.doFormatVersion(), "1.0.2")
_v = _v.bump(bump_type="minor")
self.assertEqual(_v.raw, "1.1.2")
self.assertEqual(_v.major, 1)
self.assertEqual(_v.minor, 1)
self.assertEqual(_v.patch, 2)
self.assertEqual(_v.pre_count, 0)
self.assertEqual(_v.post_count, 0)
self.assertEqual(_v.doFormatVersion(), "1.1.2")
_v = _v.bump(bump_type="major")
self.assertEqual(_v.raw, "2.1.2")
self.assertEqual(_v.major, 2)
self.assertEqual(_v.minor, 1)
self.assertEqual(_v.patch, 2)
self.assertEqual(_v.pre_count, 0)
self.assertEqual(_v.post_count, 0)
self.assertEqual(_v.doFormatVersion(), "2.1.2")
_v = _v.bump(bump_type="dev")
self.assertEqual(_v.raw, "2.1.2.post1")
self.assertEqual(_v.major, 2)
self.assertEqual(_v.minor, 1)
self.assertEqual(_v.patch, 2)
self.assertEqual(_v.pre_count, 0)
self.assertEqual(_v.post_count, 1)
self.assertEqual(_v.doFormatVersion(), "2.1.2.post1")
_v = _v.bump(bump_type="dev")
self.assertEqual(_v.raw, "2.1.2.post2")
self.assertEqual(_v.major, 2)
self.assertEqual(_v.minor, 1)
self.assertEqual(_v.patch, 2)
self.assertEqual(_v.pre_count, 0)
self.assertEqual(_v.post_count, 2)
self.assertEqual(_v.doFormatVersion(), "2.1.2.post2")
_v = _v.bump(bump_type="patch")
self.assertEqual(_v.raw, "2.1.3")
self.assertEqual(_v.major, 2)
self.assertEqual(_v.minor, 1)
self.assertEqual(_v.patch, 3)
self.assertEqual(_v.pre_count, 0)
self.assertEqual(_v.post_count, 0)
self.assertEqual(_v.doFormatVersion(), "2.1.3")
_v = _v.bump(bump_type="dev",bump_dev_strategy="pre-patch")
self.assertEqual(_v.raw, "2.1.4.pre1")
self.assertEqual(_v.major, 2)
self.assertEqual(_v.minor, 1)
self.assertEqual(_v.patch, 4)
self.assertEqual(_v.pre_count, 1)
self.assertEqual(_v.post_count, 0)
self.assertEqual(_v.doFormatVersion(), "2.1.4.pre1")
_v = _v.bump(bump_type="dev",bump_dev_strategy="pre-patch")
self.assertEqual(_v.raw, "2.1.4.pre2")
self.assertEqual(_v.major, 2)
self.assertEqual(_v.minor, 1)
self.assertEqual(_v.patch, 4)
self.assertEqual(_v.pre_count, 2)
self.assertEqual(_v.post_count, 0)
self.assertEqual(_v.doFormatVersion(), "2.1.4.pre2")
_v = _v.bump(bump_type="dev",bump_dev_strategy="post")
self.assertEqual(_v.raw, "2.1.4.pre3")
self.assertEqual(_v.major, 2)
self.assertEqual(_v.minor, 1)
self.assertEqual(_v.patch, 4)
self.assertEqual(_v.pre_count, 3)
self.assertEqual(_v.post_count, 0)
self.assertEqual(_v.doFormatVersion(), "2.1.4.pre3")
_v = _v.bump(bump_type="patch")
self.assertEqual(_v.raw, "2.1.5")
self.assertEqual(_v.major, 2)
self.assertEqual(_v.minor, 1)
self.assertEqual(_v.patch, 5)
self.assertEqual(_v.pre_count, 0)
self.assertEqual(_v.post_count, 0)
self.assertEqual(_v.doFormatVersion(), "2.1.5")
_v = _v.bump(bump_type="dev",bump_dev_strategy="post")
self.assertEqual(_v.raw, "2.1.5.post1")
self.assertEqual(_v.major, 2)
self.assertEqual(_v.minor, 1)
self.assertEqual(_v.patch, 5)
self.assertEqual(_v.pre_count, 0)
self.assertEqual(_v.post_count, 1)
self.assertEqual(_v.doFormatVersion(), "2.1.5.post1")
_v = _v.bump(bump_type="dev",bump_dev_strategy="pre-patch")
self.assertEqual(_v.raw, "2.1.5.post2")
self.assertEqual(_v.major, 2)
self.assertEqual(_v.minor, 1)
self.assertEqual(_v.patch, 5)
self.assertEqual(_v.pre_count, 0)
self.assertEqual(_v.post_count, 2)
self.assertEqual(_v.doFormatVersion(), "2.1.5.post2")
def test_nominal_version_SemVer_zeroRev(self):
_v=self._test_version_readback("0.0.0",version_std="SemVer")
self._test_version_format(_v,"0.0.0",version_std="SemVer")
def test_nominal_version_PEP440_zeroRev(self):
_v=self._test_version_readback("0.0.0",version_std="PEP440")
self._test_version_format(_v,"0.0.0",version_std="PEP440")
def test_nominal_version_PEP440_noRev_noTag(self):
with open("demofile.txt", "w+t") as tmpFile:
tmpFile.write("testvalue")
os.system("git add .")
os.system("git commit -m \"first commit\"")
_v = pygitversionhelper.gitversionhelper.version.getLastVersion(version_std="PEP440")
self.assertIsInstance(_v, pygitversionhelper.gitversionhelper.version.MetaVersion)
self.assertIsInstance(_v.raw, str)
self.assertEqual(_v.raw, "0.1.0")
self.assertIsInstance(_v.major, int)
self.assertIsInstance(_v.minor, int)
self.assertIsInstance(_v.patch, int)
self.assertIsInstance(_v.pre_count, int)
self.assertIsInstance(_v.post_count, int)
self.assertEqual(_v.major,0)
self.assertEqual(_v.minor,1)
self.assertEqual(_v.patch,0)
self._test_version_format(_v,"0.1.0",version_std="PEP440")
def test_nominal_version_SemVer_noRev_noTag(self):
with open("demofile.txt", "w+t") as tmpFile:
tmpFile.write("testvalue")
os.system("git add .")
os.system("git commit -m \"first commit\"")
_v = pygitversionhelper.gitversionhelper.version.getLastVersion(version_std="SemVer")
self.assertIsInstance(_v, pygitversionhelper.gitversionhelper.version.MetaVersion)
self.assertIsInstance(_v.raw, str)
self.assertEqual(_v.raw, "0.1.0")
self.assertIsInstance(_v.major, int)
self.assertIsInstance(_v.minor, int)
self.assertIsInstance(_v.patch, int)
self.assertIsInstance(_v.pre_count, int)
self.assertIsInstance(_v.post_count, int)
self.assertEqual(_v.major,0)
self.assertEqual(_v.minor,1)
self.assertEqual(_v.patch,0)
self._test_version_format(_v,"0.1.0",version_std="SemVer")
def test_nominal_version_AUTO_noRev_noTag(self):
with open("demofile.txt", "w+t") as tmpFile:
tmpFile.write("testvalue")
os.system("git add .")
os.system("git commit -m \"first commit\"")
_v = pygitversionhelper.gitversionhelper.version.getLastVersion()
self.assertIsInstance(_v, pygitversionhelper.gitversionhelper.version.MetaVersion)
self.assertIsInstance(_v.raw, str)
self.assertEqual(_v.raw, "0.1.0")
self.assertIsInstance(_v.major, int)
self.assertIsInstance(_v.minor, int)
self.assertIsInstance(_v.patch, int)
self.assertIsInstance(_v.pre_count, int)
self.assertIsInstance(_v.post_count, int)
self.assertEqual(_v.major,0)
self.assertEqual(_v.minor,1)
self.assertEqual(_v.patch,0)
self._test_version_format(_v,"0.1.0")
def test_nominal_version_AUTO_bump_commits(self):
with open("demofile.txt", "w+t") as tmpFile:
tmpFile.write("testvalue")
os.system("git add .")
os.system("git commit -m \"first commit\"")
os.system(f"git tag 0.2.0")
_v = pygitversionhelper.gitversionhelper.version.getCurrentVersion()
self.assertIsInstance(_v, pygitversionhelper.gitversionhelper.version.MetaVersion)
self.assertIsInstance(_v.raw, str)
self.assertEqual(_v.raw, "0.2.0")
self.assertIsInstance(_v.major, int)
self.assertIsInstance(_v.minor, int)
self.assertIsInstance(_v.patch, int)
self.assertIsInstance(_v.pre_count, int)
self.assertIsInstance(_v.post_count, int)
self.assertEqual(_v.major,0)
self.assertEqual(_v.minor,2)
self.assertEqual(_v.patch,0)
self.assertEqual(_v.pre_count,0)
self.assertEqual(_v.post_count,0)
self._test_version_format(_v,"0.2.0")
with open("demofile.txt", "w+t") as tmpFile:
tmpFile.write("testvalue22")
os.system("git add .")
os.system("git commit -m \"2nd commit\"")
_v = pygitversionhelper.gitversionhelper.version.getCurrentVersion()
self.assertIsInstance(_v, pygitversionhelper.gitversionhelper.version.MetaVersion)
self.assertIsInstance(_v.raw, str)
self.assertEqual(_v.raw, "0.2.1")
self.assertIsInstance(_v.major, int)
self.assertIsInstance(_v.minor, int)
self.assertIsInstance(_v.patch, int)
self.assertIsInstance(_v.pre_count, int)
self.assertIsInstance(_v.post_count, int)
self.assertEqual(_v.major,0)
self.assertEqual(_v.minor,2)
self.assertEqual(_v.patch,1)
self.assertEqual(_v.pre_count,0)
self.assertEqual(_v.post_count,0)
self._test_version_format(_v,"0.2.1")
with open("demofile.txt", "w+t") as tmpFile:
tmpFile.write("testvalue223")
os.system("git add .")
os.system("git commit -m \"3rd commit\"")
with open("demofile.txt", "w+t") as tmpFile:
tmpFile.write("testvalue224")
os.system("git add .")
os.system("git commit -m \"4th commit\"")
_v = pygitversionhelper.gitversionhelper.version.getCurrentVersion()
self.assertIsInstance(_v, pygitversionhelper.gitversionhelper.version.MetaVersion)
self.assertIsInstance(_v.raw, str)
self.assertEqual(_v.raw, "0.2.3")
self.assertIsInstance(_v.major, int)
self.assertIsInstance(_v.minor, int)
self.assertIsInstance(_v.patch, int)
self.assertIsInstance(_v.pre_count, int)
self.assertIsInstance(_v.post_count, int)
self.assertEqual(_v.major,0)
self.assertEqual(_v.minor,2)
self.assertEqual(_v.patch,3)
self.assertEqual(_v.pre_count,0)
self.assertEqual(_v.post_count,0)
self._test_version_format(_v,"0.2.3")
with open("demofile.txt", "w+t") as tmpFile:
tmpFile.write("testvalue225")
os.system("git add .")
os.system("git commit -m \"5th commit\"")
_v = pygitversionhelper.gitversionhelper.version.getCurrentVersion(bump_type="dev")
self.assertIsInstance(_v, pygitversionhelper.gitversionhelper.version.MetaVersion)
self.assertIsInstance(_v.raw, str)
self.assertEqual(_v.raw, "0.2.0+post.4")
self.assertIsInstance(_v.major, int)
self.assertIsInstance(_v.minor, int)
self.assertIsInstance(_v.patch, int)
self.assertIsInstance(_v.pre_count, int)
self.assertIsInstance(_v.post_count, int)
self.assertEqual(_v.major,0)
self.assertEqual(_v.minor,2)
self.assertEqual(_v.patch,0)
self.assertEqual(_v.pre_count,0)
self.assertEqual(_v.post_count,4)
self._test_version_format(_v,"0.2.0+post.4")
_v = pygitversionhelper.gitversionhelper.version.getCurrentVersion(bump_type="dev",bump_dev_strategy="pre-patch")
self.assertIsInstance(_v, pygitversionhelper.gitversionhelper.version.MetaVersion)
self.assertIsInstance(_v.raw, str)
self.assertEqual(_v.raw, "0.2.1-pre.4")
self.assertIsInstance(_v.major, int)
self.assertIsInstance(_v.minor, int)
self.assertIsInstance(_v.patch, int)
self.assertIsInstance(_v.pre_count, int)
self.assertIsInstance(_v.post_count, int)
self.assertEqual(_v.major,0)
self.assertEqual(_v.minor,2)
self.assertEqual(_v.patch,1)
self.assertEqual(_v.pre_count,4)
self.assertEqual(_v.post_count,0)
self._test_version_format(_v,"0.2.1-pre.4")
_v = pygitversionhelper.gitversionhelper.version.getCurrentVersion(bump_type="dev",bump_dev_strategy="pre-minor")
self.assertIsInstance(_v, pygitversionhelper.gitversionhelper.version.MetaVersion)
self.assertIsInstance(_v.raw, str)
self.assertEqual(_v.raw, "0.3.0-pre.4")
self.assertIsInstance(_v.major, int)
self.assertIsInstance(_v.minor, int)
self.assertIsInstance(_v.patch, int)
self.assertIsInstance(_v.pre_count, int)
self.assertIsInstance(_v.post_count, int)
self.assertEqual(_v.major,0)
self.assertEqual(_v.minor,3)
self.assertEqual(_v.patch,0)
self.assertEqual(_v.pre_count,4)
self.assertEqual(_v.post_count,0)
self._test_version_format(_v,"0.3.0-pre.4")
_v = pygitversionhelper.gitversionhelper.version.getCurrentVersion(bump_type="dev",bump_dev_strategy="pre-major")
self.assertIsInstance(_v, pygitversionhelper.gitversionhelper.version.MetaVersion)
self.assertIsInstance(_v.raw, str)
self.assertEqual(_v.raw, "1.0.0-pre.4")
self.assertIsInstance(_v.major, int)
self.assertIsInstance(_v.minor, int)
self.assertIsInstance(_v.patch, int)
self.assertIsInstance(_v.pre_count, int)
self.assertIsInstance(_v.post_count, int)
self.assertEqual(_v.major,1)
self.assertEqual(_v.minor,0)
self.assertEqual(_v.patch,0)
self.assertEqual(_v.pre_count,4)
self.assertEqual(_v.post_count,0)
self._test_version_format(_v,"1.0.0-pre.4")
def test_nominal_custom_format(self):
_v=self._test_version_readback("0.1.1",version_std="PEP440")
self.assertEqual("V_0_1_1____",_v.doFormatVersion(output_format="V_{major}_{minor}_{patch}____{revcount}"))
self.assertEqual("V_0_1",_v.doFormatVersion(output_format="V_{major}_{minor}"))
with open("demofile.txt", "w+t") as tmpFile:
tmpFile.write("testvalue225")
os.system("git add .")
os.system("git commit -m \"5th commit\"")
self.assertEqual("V_1_0",pygitversionhelper.gitversionhelper.version.getCurrentVersion(bump_type="dev",bump_dev_strategy="pre-major").doFormatVersion(output_format="V_{major}_{minor}"))
self.assertEqual("V_1_0",pygitversionhelper.gitversionhelper.version.getCurrentVersion(bump_type="dev",bump_dev_strategy="pre-major",output_format="V_{major}_{minor}",formated_output=True))
def tearDown(self):
os.chdir("/")