import json import pathlib import unittest ROOT = pathlib.Path(__file__).resolve().parents[1] OBJECT_SPEC = ( ROOT / "salesforce-crm-standard" / "objects" / "standard_objects_spec.json" ) class PricebookEntryLookupScopeContractsTest(unittest.TestCase): def test_line_item_pricebook_entry_lookups_are_parent_scoped(self) -> None: objects = { item["apiName"]: item for item in json.loads(OBJECT_SPEC.read_text(encoding="utf-8")) } expected = { "OpportunityLineItem": "OpportunityId", "QuoteLineItem": "QuoteId", "OrderItem": "OrderId", } for object_name, parent_field in expected.items(): fields = { field["apiName"]: field for field in objects[object_name]["fields"] } lookup = fields["PricebookEntryId"] self.assertEqual(lookup["validator"], "runtime_scoped_lookup") self.assertEqual( json.loads(lookup["validatorConfig"]), { "filterMappings": [ { "recordField": parent_field, "sourceField": "Pricebook2Id", "targetField": "Pricebook2Id", } ] }, ) if __name__ == "__main__": unittest.main()