|
@@ -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"),
|
|
|
+ )
|