From 931a4b1b655b3f637ecfb4f656666f40f1f98865 Mon Sep 17 00:00:00 2001 From: lcrpkking Date: Thu, 18 May 2023 16:09:57 +0000 Subject: [PATCH] fix tests and parse archive name Signed-off-by: lcrpkking --- pyporter/pyporter.py | 18 +++++++++++++++- tests/test_get_archive_name.py | 24 +++++++++++++++++++++ tests/test_get_home.py | 38 +++++++++++++++++++++++++++++----- tests/test_get_source_url.py | 19 +++++++++++++++-- tests/test_get_ver.py | 19 +++++++++++++++-- 5 files changed, 108 insertions(+), 10 deletions(-) create mode 100644 tests/test_get_archive_name.py diff --git a/pyporter/pyporter.py b/pyporter/pyporter.py index fcd06ca..b4f0ce0 100755 --- a/pyporter/pyporter.py +++ b/pyporter/pyporter.py @@ -113,6 +113,22 @@ class PyPorter: def get_module_name(self): return self.__module_name + def get_archive_name(self): + s_info = self.get_source_info() + if s_info: + # filename is {archive_name}-{version}.{suffix} + filename = s_info.get("filename") + if not filename: + return "" + filename = ( + filename[: -len(".tar.gz")] + if "tar.gz" in filename + else filename[: -len(".zip")] + ) + v = self.get_version() + return filename.replace("-" + v, "") + return "" + def get_pkg_name(self): return self.__pkg_name @@ -526,7 +542,7 @@ def build_spec(porter, output): print(porter.get_description()) print("") print("%prep") - print("%autosetup -n {name}-{ver}".format(name=porter.get_module_name(), ver=porter.get_version())) + print("%autosetup -n {name}-{ver}".format(name=porter.get_archive_name(), ver=porter.get_version())) print("") print("%build") porter.prepare_pkg_build() diff --git a/tests/test_get_archive_name.py b/tests/test_get_archive_name.py new file mode 100644 index 0000000..ddb626f --- /dev/null +++ b/tests/test_get_archive_name.py @@ -0,0 +1,24 @@ +import unittest +from unittest.mock import MagicMock +from pyporter.pyporter import porter_creator + +VALID_PKG = ["pure-eval", "oic", "XStatic-Patternfly"] +VALID_ARCHIVE_NAME = ["pure_eval", "oic", "XStatic-Patternfly"] + + +class TestValidArchive(unittest.TestCase): + def test(self): + args = MagicMock() + args.configure_mock(type="python") + args.pkgversion = "" + args.arch = None + args.mirror = "" + + for i, pkg in enumerate(VALID_PKG): + args.pkg = pkg + p = porter_creator(args) + self.assertEqual(p.get_archive_name(), VALID_ARCHIVE_NAME[i]) + + +if __name__ == '__main__': + unittest.main() diff --git a/tests/test_get_home.py b/tests/test_get_home.py index 5a086b5..5ff8941 100644 --- a/tests/test_get_home.py +++ b/tests/test_get_home.py @@ -16,8 +16,15 @@ class TestNoHomepageNone(unittest.TestCase): cm.read.return_value = self.data cm.__enter__.return_value = cm m.return_value = cm - - p = porter_creator('python', None, None) + + args = MagicMock() + args.configure_mock(type="python") + args.pkg = "oic" + args.pkgversion = "1.5.0" + args.arch = None + args.mirror = "" + + p = porter_creator(args) self.assertRaises(SystemExit, p.get_home) def tearDown(self): @@ -36,7 +43,14 @@ class TestNoHomepageUseProjectUrl(unittest.TestCase): cm.__enter__.return_value = cm m.return_value = cm - p = porter_creator('python', None, None) + args = MagicMock() + args.configure_mock(type="python") + args.pkg = "oic" + args.pkgversion = "1.5.0" + args.arch = None + args.mirror = "" + + p = porter_creator(args) self.assertEqual("test_project_url", p.get_home()) def tearDown(self): @@ -55,7 +69,14 @@ class TestNoHomepageUsePackageUrl(unittest.TestCase): cm.__enter__.return_value = cm m.return_value = cm - p = porter_creator('python', None, None) + args = MagicMock() + args.configure_mock(type="python") + args.pkg = "oic" + args.pkgversion = "1.5.0" + args.arch = None + args.mirror = "" + + p = porter_creator(args) self.assertEqual("test_package_url", p.get_home()) def tearDown(self): @@ -74,7 +95,14 @@ class TestNoHomepageUseHomePage(unittest.TestCase): cm.__enter__.return_value = cm m.return_value = cm - p = porter_creator('python', None, None) + args = MagicMock() + args.configure_mock(type="python") + args.pkg = "oic" + args.pkgversion = "1.5.0" + args.arch = None + args.mirror = "" + + p = porter_creator(args) self.assertEqual("test_home_page", p.get_home()) def tearDown(self): diff --git a/tests/test_get_source_url.py b/tests/test_get_source_url.py index f87cd8f..6228728 100644 --- a/tests/test_get_source_url.py +++ b/tests/test_get_source_url.py @@ -1,4 +1,5 @@ import unittest +from unittest.mock import MagicMock from pyporter.pyporter import porter_creator SRC_URL = "https://files.pythonhosted.org/packages/36/62/7cda20a9bd8c52bf47c6f1cf7e"\ @@ -9,11 +10,25 @@ MIRROR_URL = "https://mirrors.aliyun.com/pypi/packages/36/62/7cda20a9bd8c52bf47c class TestValidSource(unittest.TestCase): def test_no_mirror(self): - p = porter_creator('python', None, "oic", "1.5.0") + args = MagicMock() + args.configure_mock(type="python") + args.pkg = "oic" + args.pkgversion = "1.5.0" + args.arch = None + args.mirror = "" + + p = porter_creator(args) self.assertEqual(p.get_source_url(), SRC_URL) def test_valid_mirror(self): - p = porter_creator('python', None, "oic", "1.5.0", "https://mirrors.aliyun.com/pypi") + args = MagicMock() + args.configure_mock(type="python") + args.pkg = "oic" + args.pkgversion = "1.5.0" + args.arch = None + args.mirror = "https://mirrors.aliyun.com/pypi" + + p = porter_creator(args) self.assertEqual(p.get_source_url(), MIRROR_URL) diff --git a/tests/test_get_ver.py b/tests/test_get_ver.py index c0d7de2..033059b 100644 --- a/tests/test_get_ver.py +++ b/tests/test_get_ver.py @@ -1,13 +1,28 @@ import unittest +from unittest.mock import MagicMock from pyporter.pyporter import porter_creator class TestGetByVer(unittest.TestCase): def test_invalid_ver(self): - self.assertRaises(SystemExit, porter_creator, "python", None, "oic", "3.11.1") + args = MagicMock() + args.configure_mock(type="python") + args.pkg = "oic" + args.pkgversion = "0.0.0" + args.arch = None + args.mirror = "" + + self.assertRaises(SystemExit, porter_creator, args) def test_valid_ver(self): - p = porter_creator("python", None, "oic", "1.5.0") + args = MagicMock() + args.configure_mock(type="python") + args.pkg = "oic" + args.pkgversion = "1.5.0" + args.arch = None + args.mirror = "" + + p = porter_creator(args) self.assertEqual(p.get_version(), "1.5.0") -- Gitee