Andrew Thompson Andrew Thompson - 3 years ago 173
Python Question

Dynamic parameters with Python's retry decorator

I'm currently using the python retrying package which contains the

decorator that has a number of optional parameters. I have these parameters set correctly for our production environment with long enough wait times in between retries (below it's set to 2000 milliseconds) but I would like to set these values differently for unit testing purposes so that execution is very quick.

For example here the wait_fixed time is set to 2000 milliseconds for production but for my unit test that calls
I'd like to override the
parameter to be 1 millisecond so it executes very quickly.

@retry(stop_max_attempt_number=3, wait_fixed=2000)
def some_function(self):
return True

The problem I'm running into is that the decorator is interpreted when the function is defined so as of yet I have not found a way to override the
parameter from my unit tests.

Answer Source

import settings
from retrying import retry

def some_function(self):
    return True

import json

with open('config.json') as jsonf:
    config = json.loads(



    "WAIT_FIXED" : "2000"

Have your test runner put a suitable config.json in place.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download