diff --git a/hippolyzer/lib/base/inventory.py b/hippolyzer/lib/base/inventory.py index 4d640eb..bc3beaa 100644 --- a/hippolyzer/lib/base/inventory.py +++ b/hippolyzer/lib/base/inventory.py @@ -3,6 +3,11 @@ Parse the horrible legacy inventory-related format. It's typically only used for object contents now. """ + +# TODO: Maybe handle CRC calculation? Does anything care about that? +# I don't think anything in the viewer actually looks at the result +# of the CRC check for UDP stuff. + from __future__ import annotations import abc @@ -451,8 +456,8 @@ class InventoryCategory(InventoryContainerBase): pref_type: FolderType = schema_field(SchemaEnumField(FolderType), llsd_name="preferred_type") name: str = schema_field(SchemaMultilineStr) owner_id: Optional[UUID] = schema_field(SchemaUUID, default=None) - version: Optional[int] = schema_field(SchemaInt, default=None) - metadata: Optional[Dict[str, Any]] = schema_field(SchemaLLSD, default=None, include_none=True) + version: int = schema_field(SchemaInt, default=VERSION_NONE, llsd_only=True) + metadata: Optional[Dict[str, Any]] = schema_field(SchemaLLSD, default=None, include_none=False) __hash__ = InventoryNodeBase.__hash__ diff --git a/tests/base/test_legacy_schema.py b/tests/base/test_legacy_schema.py index 790956d..4d0900c 100644 --- a/tests/base/test_legacy_schema.py +++ b/tests/base/test_legacy_schema.py @@ -79,6 +79,9 @@ class TestLegacyInv(unittest.TestCase): new_model = InventoryModel.from_str(model.to_str()) self.assertEqual(model, new_model) + def test_category_legacy_serialization(self): + self.assertEqual(INV_CATEGORY, InventoryModel.from_str(INV_CATEGORY).to_str()) + def test_item_access(self): item = self.model.nodes[UUID('dd163122-946b-44df-99f6-a6030e2b9597')] self.assertEqual(item.name, "New Script")