App: Add Metadata content type test

This commit is contained in:
Chris Hennes
2022-03-21 09:10:51 -05:00
parent 6160d0fe78
commit 9fe1bdb092
4 changed files with 76 additions and 3 deletions

View File

@@ -58,7 +58,7 @@ XERCES_CPP_NAMESPACE_USE
namespace MetadataInternal {
class XMLErrorHandler : public HandlerBase {
void warning(const SAXParseException& toCatch)
void warning(const SAXParseException&)
{
// Don't deal with warnings at all
std::ignore = toCatch;

View File

@@ -21,6 +21,7 @@ SET(TestData_SRCS
TestData/bad_root_node.xml
TestData/bad_xml.xml
TestData/bad_version.xml
TestData/content_items.xml
)
SOURCE_GROUP("" FILES ${Test_SRCS} ${TestData_SRCS})

View File

@@ -84,12 +84,28 @@ class TestMetadata(unittest.TestCase):
def test_default_constructor(self):
try:
md = FreeCAD.Metadata()
_ = FreeCAD.Metadata()
except Exception:
self.fail("Metadata default constructor failed")
def test_content_types(self):
pass
filename = os.path.join(self.test_dir, "content_items.xml")
md = FreeCAD.Metadata(filename)
content = md.Content
self.assertTrue("workbench" in content)
self.assertTrue("preferencepack" in content)
self.assertTrue("macro" in content)
self.assertTrue("other_content_item" in content)
workbenches = content["workbench"]
preferencepacks = content["preferencepack"]
macros = content["macro"]
other = content["other_content_item"]
self.assertEqual(len(workbenches), 3)
self.assertEqual(len(macros), 2)
self.assertEqual(len(preferencepacks), 1)
def test_content_item_tags(self):
pass

View File

@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="utf-8" standalone="no" ?>
<package format="1" xmlns="https://wiki.freecad.org/Package_Metadata">
<name>Test Workbench</name>
<description>A package.xml file for unit testing.</description>
<version>1.0.1</version>
<date>2022-01-07</date>
<maintainer email="developer1@freecad.org">FreeCAD Developer 1</maintainer>
<maintainer email="developer2@freecad.org">FreeCAD Developer 2</maintainer>
<author email="developer3@freecad.org">FreeCAD Developer 3</author>
<author>FreeCAD Developer 4</author>
<author>FreeCAD Developer 5</author>
<license file="LICENSE">LGPLv2.1</license>
<url type="repository" branch="main">https://github.com/chennes/FreeCAD-Package</url>
<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>
<icon>Resources/icons/PackageIcon.svg</icon>
<tag>Tag0</tag>
<tag>Tag1</tag>
<content>
<workbench>
<classname>TestWorkbenchA</classname>
<freecadmin>0.20</freecadmin>
<tag>Tag A</tag>
</workbench>
<workbench>
<classname>TestWorkbenchB</classname>
<freecadmin>0.1</freecadmin>
<freecadmax>0.19</freecadmax>
<tag>Tag B</tag>
</workbench>
<workbench>
<classname>TestWorkbenchC</classname>
<tag>Tag C</tag>
<tag>Tag D</tag>
</workbench>
<macro>
<name>Macro A</name>
<file>Nonexistent File.FCMacro</file>
<freecadmin>0.20</freecadmin>
<freecadmax>999.999</freecadmax>
</macro>
<macro>
<name>Macro B</name>
<file>Another Nonexistent File.FCMacro</file>
</macro>
<preferencepack>
<name>Preference Pack A</name>
</preferencepack>
<other_content_item>
<name>Doesn't Really Matter</name>
</other_content_item>
</content>
</package>