copyleftconf-website/pinaxcon/monkey_patch.py
Christopher Neugebauer 4a67271b94 monkey_patches sync_card
2017-10-05 16:09:16 -07:00

32 lines
799 B
Python

from django.conf import settings
from django.core.mail import EmailMultiAlternatives
from functools import wraps
class MonkeyPatchMiddleware(object):
''' Ensures that our monkey patching only gets called after it is safe to do so.'''
def process_request(self, request):
do_monkey_patch()
def do_monkey_patch():
patch_stripe_card_defaults()
# Remove this function from existence
global do_monkey_patch
do_monkey_patch = lambda: None
def patch_stripe_card_defaults():
from pinax.stripe.actions import sources
from collections import defaultdict
old_sync_card = sources.sync_card
def sync_card(customer, source):
d = defaultdict(str)
d.update(source)
return old_sync_card(customer, d)
sources.sync_card = sync_card