Test: Add more tag testing to Metadata tests
This commit is contained in:
@@ -60,7 +60,7 @@ class TestMetadata(unittest.TestCase):
|
||||
self.assertEqual(md.Name, "Test Workbench")
|
||||
self.assertEqual(md.Description, "A package.xml file for unit testing.")
|
||||
self.assertEqual(md.Version, "1.0.1")
|
||||
#self.assertEqual(md.Date, "2022-01-07")
|
||||
self.assertEqual(md.Date, "2022-01-07")
|
||||
self.assertEqual(md.Icon, "Resources/icons/PackageIcon.svg")
|
||||
|
||||
# Tags that are lists of elements:
|
||||
@@ -71,7 +71,7 @@ class TestMetadata(unittest.TestCase):
|
||||
self.assertEqual(len(authors), 3)
|
||||
|
||||
urls = md.Urls
|
||||
self.assertEqual(len(urls), 4)
|
||||
self.assertEqual(len(urls), 5)
|
||||
|
||||
tags = md.Tag
|
||||
self.assertEqual(len(tags), 2)
|
||||
@@ -105,7 +105,7 @@ class TestMetadata(unittest.TestCase):
|
||||
macros = content["macro"]
|
||||
other = content["other_content_item"]
|
||||
|
||||
self.assertEqual(len(workbenches), 3)
|
||||
self.assertEqual(len(workbenches), 4)
|
||||
self.assertEqual(len(macros), 2)
|
||||
self.assertEqual(len(preferencepacks), 1)
|
||||
|
||||
@@ -135,7 +135,47 @@ class TestMetadata(unittest.TestCase):
|
||||
print ("Ignore UnicodeEncodeError in test_file_path:\n{}".format(str(e)))
|
||||
|
||||
def test_content_item_tags(self):
|
||||
pass
|
||||
filename = os.path.join(self.test_dir, "content_items.xml")
|
||||
md = FreeCAD.Metadata(filename)
|
||||
|
||||
content = md.Content
|
||||
workbenches = content["workbench"]
|
||||
found = [False, False, False, False]
|
||||
for workbench in workbenches:
|
||||
print(workbench.Classname)
|
||||
if workbench.Classname == "TestWorkbenchA":
|
||||
found[0] = True
|
||||
self.assertEqual(workbench.FreeCADMin, "0.20.0")
|
||||
tags = workbench.Tag
|
||||
self.assertTrue("Tag A" in tags)
|
||||
elif workbench.Classname == "TestWorkbenchB":
|
||||
found[1] = True
|
||||
self.assertEqual(workbench.FreeCADMin, "0.1.0")
|
||||
self.assertEqual(workbench.FreeCADMax, "0.19.0")
|
||||
tags = workbench.Tag
|
||||
self.assertTrue("Tag B" in tags)
|
||||
elif workbench.Classname == "TestWorkbenchC":
|
||||
found[2] = True
|
||||
tags = workbench.Tag
|
||||
self.assertTrue("Tag C" in tags)
|
||||
self.assertTrue("Tag D" in tags)
|
||||
elif workbench.Classname == "TestWorkbenchD":
|
||||
found[3] = True
|
||||
dependencies = workbench.Depend
|
||||
expected_dependencies = {"DependencyA":{"type":"automatic","found":False},
|
||||
"InternalWorkbench":{"type":"internal","found":False},
|
||||
"AddonWorkbench":{"type":"addon","found":False},
|
||||
"PythonPackage":{"type":"python","found":False},
|
||||
"DependencyB":{"type":"automatic","found":False}}
|
||||
for dep in dependencies:
|
||||
self.assertTrue(dep["package"] in expected_dependencies)
|
||||
self.assertEqual(dep["type"], expected_dependencies[dep["package"]]["type"])
|
||||
expected_dependencies[dep["package"]]["found"] = True
|
||||
for name, expected_dep in expected_dependencies.items():
|
||||
self.assertTrue(expected_dep["found"], f"Failed to load dependency '{name}'")
|
||||
for f in found:
|
||||
self.assertTrue(f,f"One of the expected workbenches was not found in the metadata file")
|
||||
|
||||
|
||||
def test_last_supported_version(self):
|
||||
pass
|
||||
@@ -148,3 +188,6 @@ class TestMetadata(unittest.TestCase):
|
||||
|
||||
def test_generic_metadata(self):
|
||||
pass
|
||||
|
||||
def test_min_python_version(self):
|
||||
pass
|
||||
@@ -14,6 +14,7 @@
|
||||
<url type="readme">https://github.com/chennes/FreeCAD-Package/blob/main/README.md</url>
|
||||
<url type="documentation">https://github.com/chennes/FreeCAD-Package/blob/main/README.md</url>
|
||||
<url type="bugtracker">https://github.com/chennes/FreeCAD-Package/issues</url>
|
||||
<url type="discussion">https://forum.freecadweb.org/</url>
|
||||
<icon>Resources/icons/PackageIcon.svg</icon>
|
||||
<tag>Tag0</tag>
|
||||
<tag>Tag1</tag>
|
||||
|
||||
@@ -35,6 +35,14 @@
|
||||
<tag>Tag C</tag>
|
||||
<tag>Tag D</tag>
|
||||
</workbench>
|
||||
<workbench>
|
||||
<classname>TestWorkbenchD</classname>
|
||||
<depend>DependencyA</depend>
|
||||
<depend type="internal">InternalWorkbench</depend>
|
||||
<depend type="addon">AddonWorkbench</depend>
|
||||
<depend type="python">PythonPackage</depend>
|
||||
<depend type="automatic">DependencyB</depend>
|
||||
</workbench>
|
||||
<macro>
|
||||
<name>Macro A</name>
|
||||
<file>Nonexistent File.FCMacro</file>
|
||||
|
||||
Reference in New Issue
Block a user