Эх сурвалжийг харах

tests: Add some simple unittests

Jan Holthuis 4 жил өмнө
parent
commit
5d81419a4d
2 өөрчлөгдсөн 116 нэмэгдсэн , 0 устгасан
  1. 0 0
      tests/__init__.py
  2. 116 0
      tests/test_sphinx.py

+ 0 - 0
tests/__init__.py


+ 116 - 0
tests/test_sphinx.py

@@ -0,0 +1,116 @@
+import os.path
+import posixpath
+import tempfile
+import unittest
+
+import sphinx_multiversion
+
+
+class VersionInfoTestCase(unittest.TestCase):
+    def setUp(self):
+        root = tempfile.gettempdir()
+
+        self.versioninfo = sphinx_multiversion.sphinx.VersionInfo(
+            app=None,
+            context={"pagename": "testpage"},
+            metadata={
+                "master": {
+                    "name": "master",
+                    "version": "",
+                    "release": "0.2",
+                    "is_released": False,
+                    "source": "heads",
+                    "creatordate": "2020-08-07 07:45:20 -0700",
+                    "basedir": os.path.join(root, "master"),
+                    "sourcedir": os.path.join(root, "master", "docs"),
+                    "outputdir": os.path.join(root, "build", "html", "master"),
+                    "confdir": os.path.join(root, "master", "docs"),
+                    "docnames": ["testpage", "appendix/faq"],
+                },
+                "v0.1.0": {
+                    "name": "v0.1.0",
+                    "version": "",
+                    "release": "0.1.0",
+                    "is_released": True,
+                    "source": "tags",
+                    "creatordate": "2020-07-16 08:45:20 -0100",
+                    "basedir": os.path.join(root, "v0.1.0"),
+                    "sourcedir": os.path.join(root, "v0.1.0", "docs"),
+                    "outputdir": os.path.join(root, "build", "html", "v0.1.0"),
+                    "confdir": os.path.join(root, "v0.1.0", "docs"),
+                    "docnames": ["old_testpage", "appendix/faq"],
+                },
+                "branch-with/slash": {
+                    "name": "branch-with/slash",
+                    "version": "",
+                    "release": "0.1.1",
+                    "is_released": False,
+                    "source": "heads",
+                    "creatordate": "2020-08-06 11:53:06 -0400",
+                    "basedir": os.path.join(root, "branch-with/slash"),
+                    "sourcedir": os.path.join(
+                        root, "branch-with/slash", "docs"
+                    ),
+                    "outputdir": os.path.join(
+                        root, "build", "html", "branch-with/slash"
+                    ),
+                    "confdir": os.path.join(root, "branch-with/slash", "docs"),
+                    "docnames": ["testpage"],
+                },
+            },
+            current_version_name="master",
+        )
+
+    def test_tags_property(self):
+        versions = self.versioninfo.tags
+        self.assertEqual([version.name for version in versions], ["v0.1.0"])
+
+    def test_branches_property(self):
+        versions = self.versioninfo.branches
+        self.assertEqual(
+            [version.name for version in versions],
+            ["master", "branch-with/slash"],
+        )
+
+    def test_releases_property(self):
+        versions = self.versioninfo.releases
+        self.assertEqual([version.name for version in versions], ["v0.1.0"])
+
+    def test_in_development_property(self):
+        versions = self.versioninfo.in_development
+        self.assertEqual(
+            [version.name for version in versions],
+            ["master", "branch-with/slash"],
+        )
+
+    def test_vhasdoc(self):
+        self.assertTrue(self.versioninfo.vhasdoc("master"))
+        self.assertFalse(self.versioninfo.vhasdoc("v0.1.0"))
+        self.assertTrue(self.versioninfo.vhasdoc("branch-with/slash"))
+
+        self.versioninfo.context["pagename"] = "appendix/faq"
+        self.assertTrue(self.versioninfo.vhasdoc("master"))
+        self.assertTrue(self.versioninfo.vhasdoc("v0.1.0"))
+        self.assertFalse(self.versioninfo.vhasdoc("branch-with/slash"))
+
+    def test_vpathto(self):
+        self.assertEqual(self.versioninfo.vpathto("master"), "testpage.html")
+        self.assertEqual(
+            self.versioninfo.vpathto("v0.1.0"),
+            posixpath.join("..", "v0.1.0", "index.html"),
+        )
+        self.assertEqual(
+            self.versioninfo.vpathto("branch-with/slash"),
+            posixpath.join("..", "branch-with/slash", "testpage.html"),
+        )
+
+        self.versioninfo.context["pagename"] = "appendix/faq"
+        self.assertEqual(self.versioninfo.vpathto("master"), "faq.html")
+        self.assertEqual(
+            self.versioninfo.vpathto("v0.1.0"),
+            posixpath.join("..", "..", "v0.1.0", "appendix", "faq.html"),
+        )
+        self.assertEqual(
+            self.versioninfo.vpathto("branch-with/slash"),
+            posixpath.join("..", "..", "branch-with/slash", "index.html"),
+        )