@@ -110,6 +110,41 @@ def test_vetiver_model_dict_like_prototype(prototype_data):
110110 assert json_schema == expected
111111
112112
113+ @pytest .mark .skipif (
114+ pydantic .__version__ .startswith ("1" ), reason = "only run for pydantic v2"
115+ )
116+ @pytest .mark .parametrize (
117+ "prototype_data,expected" ,
118+ [
119+ (
120+ {"B" : 0 , "C" : False , "D" : None },
121+ {
122+ "properties" : {
123+ "B" : {"example" : 0 , "title" : "B" , "type" : "integer" },
124+ "C" : {"example" : False , "title" : "C" , "type" : "boolean" },
125+ "D" : {"example" : None , "title" : "D" , "type" : "null" },
126+ },
127+ "required" : ["B" , "C" , "D" ],
128+ "title" : "prototype" ,
129+ "type" : "object" ,
130+ },
131+ )
132+ ],
133+ )
134+ def test_falsy_prototypes (prototype_data , expected ):
135+ v = VetiverModel (
136+ model = model ,
137+ prototype_data = prototype_data ,
138+ model_name = "model" ,
139+ versioned = None ,
140+ description = None ,
141+ metadata = None ,
142+ )
143+
144+ assert isinstance (v .prototype .construct (), pydantic .BaseModel )
145+ assert v .prototype .model_json_schema () == expected
146+
147+
113148@pytest .mark .parametrize ("prototype_data" , [MockPrototype (B = 4 , C = 0 , D = 0 ), None ])
114149def test_vetiver_model_prototypes (prototype_data ):
115150 v = VetiverModel (
0 commit comments