@@ -148,3 +148,36 @@ def test_create_plan_mock(mocker, paddle_client): # NOQA: F811
148148 json = json ,
149149 method = method ,
150150 )
151+
152+
153+ @pytest .mark .parametrize (
154+ 'currency,missing_field' ,
155+ [
156+ ('USD' , 'initial_price_usd' ),
157+ ('USD' , 'recurring_price_usd' ),
158+ ('GBP' , 'initial_price_gbp' ),
159+ ('GBP' , 'recurring_price_gbp' ),
160+ ('EUR' , 'initial_price_eur' ),
161+ ('EUR' , 'recurring_price_eur' ),
162+ ]
163+ )
164+ def test_create_plan_missing_price (paddle_client , currency , missing_field ): # NOQA: F811, E501
165+ plan = {
166+ 'plan_name' : 'test_create_plan_mmissing_usd_initial' ,
167+ 'plan_trial_days' : 999 ,
168+ 'plan_length' : 999 ,
169+ 'plan_type' : 'year' ,
170+ 'main_currency_code' : currency ,
171+ 'initial_price_usd' : 0.0 ,
172+ 'initial_price_gbp' : 0.0 ,
173+ 'initial_price_eur' : 0.0 ,
174+ 'recurring_price_usd' : 0.0 ,
175+ 'recurring_price_gbp' : 0.0 ,
176+ 'recurring_price_eur' : 0.0 ,
177+ }
178+ del plan [missing_field ]
179+ with pytest .raises (ValueError ) as error :
180+ paddle_client .create_plan (** plan )
181+
182+ message = r'main_currency_code is {0} so {1} must be set'
183+ error .match (message .format (currency , missing_field ))
0 commit comments