@@ -141,7 +141,7 @@ def test_config(self, mock_requests):
141141 self .assertEqual (response .status_code , 405 , response .data )
142142 return config5
143143
144- def test_config_merge_false (self , mock_requests ):
144+ def test_config_group_merge_false (self , mock_requests ):
145145 """
146146 Test that config can be created with merge='false' parameter
147147 which replaces the entire config instead of merging
@@ -159,16 +159,47 @@ def test_config_merge_false(self, mock_requests):
159159
160160 # replace entire config with merge='false'
161161 value3 = {"name" : "NEW_CONFIG" , "value" : "replacement_value" , "group" : "global" }
162- body = {'values' : [value3 ]}
162+ body = {'values' : [value1 , value2 , value3 ]}
163163 response = self .client .post (f"{ url } ?merge=false" , body )
164164 self .assertEqual (response .status_code , 201 , response .data )
165+ response = self .client .get (url )
166+ self .assertEqual (response .status_code , 200 , response .data )
167+ self .assertEqual (len (response .data ['values' ]), 3 )
165168
166- # verify only the new config exists
169+ # remove value3
170+ body = {'values' : [value1 , value2 ]}
171+ response = self .client .post (f"{ url } ?merge=false" , body )
172+ self .assertEqual (response .status_code , 201 , response .data )
167173 response = self .client .get (url )
168174 self .assertEqual (response .status_code , 200 , response .data )
169- self .assertEqual (len (response .data ['values' ]), 1 )
170- self .assertEqual (response .data ['values' ][0 ]['name' ], "NEW_CONFIG" )
171- self .assertEqual (response .data ['values' ][0 ]['value' ], "replacement_value" )
175+ self .assertEqual (len (response .data ['values' ]), 2 )
176+
177+ def test_config_ptype_merge_false (self , mock_requests ):
178+ """
179+ Test that config can be created with merge='false' parameter
180+ which replaces the entire config instead of merging
181+ """
182+ app_id = self .create_app ()
183+
184+ # set initial config values
185+ url = f"/v2/apps/{ app_id } /config"
186+ value1 = {"name" : "DEBUG" , "value" : "true" , "ptype" : "web" }
187+ value2 = {"name" : "DATABASE_URL" , "value" : "postgres://localhost/db" , "ptype" : "web" }
188+ value3 = {"name" : "NEW_CONFIG" , "value" : "replacement_value" , "ptype" : "web" }
189+ body = {'values' : [value1 , value2 , value3 ]}
190+ response = self .client .post (f"{ url } ?merge=false" , body )
191+ self .assertEqual (response .status_code , 201 , response .data )
192+ response = self .client .get (url )
193+ self .assertEqual (response .status_code , 200 , response .data )
194+ self .assertEqual (len (response .data ['values' ]), 3 )
195+
196+ # remove value3
197+ body = {'values' : [value1 , value2 ]}
198+ response = self .client .post (f"{ url } ?merge=false" , body )
199+ self .assertEqual (response .status_code , 201 , response .data )
200+ response = self .client .get (url )
201+ self .assertEqual (response .status_code , 200 , response .data )
202+ self .assertEqual (len (response .data ['values' ]), 2 )
172203
173204 def test_config_merge_false_with_empty_values (self , mock_requests ):
174205 """
0 commit comments