App: Add Metadata content type test
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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})
|
||||
|
||||
@@ -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
|
||||
|
||||
56
src/Mod/Test/TestData/content_items.xml
Normal file
56
src/Mod/Test/TestData/content_items.xml
Normal 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>
|
||||
Reference in New Issue
Block a user