Improve ModelStorage.copy

* Allow callable in copy default
* Support dotted notation in copy default
* Use setdefault in copy
* Copy default when needed
* Do not set default state in copy
* Use callable and dotted notation in copy default

issue5576
issue7648
review72291002
This commit is contained in:
Cédric Krier committed 2018-09-01 01:02:03 +02:00
1 parent 8d896ad3ba
commit 4c0600a4f5
1 file changed
+10 -10
+10 -10
View File
@@ -324,13 +324,13 @@ class Payment(metaclass=PoolMeta):
default = {}
else:
default = default.copy()
default['stripe_checkout_id'] = None
default['stripe_charge_id'] = None
default['stripe_token'] = None
default.setdefault('stripe_idempotency_key')
default.setdefault('stripe_error_message')
default.setdefault('stripe_error_code')
default.setdefault('stripe_error_param')
default.setdefault('stripe_checkout_id', None)
default.setdefault('stripe_charge_id', None)
default.setdefault('stripe_token', None)
default.setdefault('stripe_idempotency_key', None)
default.setdefault('stripe_error_message', None)
default.setdefault('stripe_error_code', None)
default.setdefault('stripe_error_param', None)
return super(Payment, cls).copy(payments, default=default)
@classmethod
@@ -774,9 +774,9 @@ class Customer(DeactivableMixin, ModelSQL, ModelView):
default = {}
else:
default = default.copy()
default['stripe_checkout_id'] = None
default['stripe_token'] = None
default['stripe_customer_id'] = None
default.setdefault('stripe_checkout_id', None)
default.setdefault('stripe_token', None)
default.setdefault('stripe_customer_id', None)
return super(Customer, cls).copy(customers, default=default)
@classmethod