@@ -587,3 +587,44 @@ def test_config_set_typed_values(self, mock_requests):
587587 response = self .client .post (url , body )
588588 self .assertEqual (response .status_code , 201 , response .data )
589589 self .assertEqual (response .data ['typed_values' ], {}, response .data )
590+
591+ def test_config_version (self , mock_requests ):
592+ """
593+ Test that config sets on the same key function properly
594+ """
595+ app_id = self .create_app ()
596+ url = f"/v2/apps/{ app_id } /config"
597+
598+ # set an initial config value
599+ body = {'values' : {'PORT' : '5000' }}
600+ response = self .client .post (url , body )
601+ self .assertEqual (response .status_code , 201 , response .data )
602+ self .assertIn ('PORT' , response .data ['values' ])
603+ url = f"/v2/apps/{ app_id } /config"
604+
605+ # set config NAME
606+ body = {'values' : {'NAME' : 'drycc' }}
607+ response = self .client .post (url , body )
608+ self .assertEqual (response .status_code , 201 , response .data )
609+ self .assertIn ('NAME' , response .data ['values' ])
610+
611+ # set config WEBSITE
612+ body = {'values' : {'WEBSITE' : 'www.drycc.cc' }}
613+ response = self .client .post (url , body )
614+ self .assertEqual (response .status_code , 201 , response .data )
615+ self .assertIn ('WEBSITE' , response .data ['values' ])
616+
617+ url = f"/v2/apps/{ app_id } /config/?version=v2"
618+ response = self .client .get (url )
619+ self .assertEqual (response .data ['values' ], {'PORT' : '5000' }, response .data )
620+
621+ url = f"/v2/apps/{ app_id } /config/?version=v3"
622+ response = self .client .get (url )
623+ self .assertEqual (
624+ response .data ['values' ], {'PORT' : '5000' , 'NAME' : 'drycc' }, response .data )
625+
626+ url = f"/v2/apps/{ app_id } /config/?version=v4"
627+ response = self .client .get (url )
628+ self .assertEqual (
629+ response .data ['values' ],
630+ {'PORT' : '5000' , 'NAME' : 'drycc' , 'WEBSITE' : 'www.drycc.cc' }, response .data )
0 commit comments