Add tests for version parsing

This commit is contained in:
IamTheFij 2022-01-10 11:50:26 -08:00
parent f36c0b7ff7
commit 94b011799d

View File

@ -1,9 +1,11 @@
import unittest
from pathlib import Path
from typing import Any
from typing import Callable
from typing import NamedTuple
from typing import Optional
from unittest.mock import MagicMock
from unittest.mock import mock_open
from unittest.mock import patch
import requests
@ -103,5 +105,34 @@ class TestRemoteInfo(unittest.TestCase):
subtest.run(release_gitter.GitRemoteInfo.get_releases_url)
class TestVersionInfo(unittest.TestCase):
def test_no_cargo_file(self):
with patch("pathlib.Path.exists", return_value=False):
version = release_gitter.read_version()
self.assertIsNone(version)
def test_cargo_file_has_version(self):
with (
patch("pathlib.Path.exists", return_value=True),
patch(
"pathlib.Path.open",
mock_open(read_data="\n".join(["[package]", 'version = "1.0.0"'])),
),
):
version = release_gitter.read_version()
self.assertEqual(version, "1.0.0")
def test_cargo_file_missing_version(self):
with (
patch("pathlib.Path.exists", return_value=True),
patch(
"pathlib.Path.open",
mock_open(read_data="\n".join(["[package]"])),
),
):
with self.assertRaises(ValueError):
release_gitter.read_version()
if __name__ == "__main__":
unittest.main()