import importlib.util import unittest from pathlib import Path ROOT = Path(__file__).resolve().parents[1] EXTRACTOR = ROOT / "salesforce-crm-standard-v66" / "_extractor" / "extract.py" def load_extractor(): spec = importlib.util.spec_from_file_location("salesforce_v66_extractor", EXTRACTOR) if spec is None or spec.loader is None: raise RuntimeError(f"cannot load extractor: {EXTRACTOR}") module = importlib.util.module_from_spec(spec) spec.loader.exec_module(module) return module class V66ExtractorDefaultTest(unittest.TestCase): def test_preserves_false_boolean_and_zero_numeric_defaults(self): extractor = load_extractor() boolean = extractor.map_field( { "name": "HasOptedOutOfEmail", "label": "Email Opt Out", "type": "boolean", "nillable": False, "defaultedOnCreate": True, "defaultValue": False, }, [], "Contact", ) numeric = extractor.map_field( { "name": "SortOrder", "label": "Sort Order", "type": "double", "nillable": False, "defaultedOnCreate": True, "defaultValue": 0, }, [], "Example", ) enabled = extractor.map_field( { "name": "Enabled__c", "label": "Enabled", "type": "boolean", "nillable": False, "defaultedOnCreate": True, "defaultValue": True, }, [], "Example", ) self.assertEqual(boolean["default"], "0") self.assertEqual(numeric["default"], "0") self.assertEqual(enabled["default"], "1") if __name__ == "__main__": unittest.main()