def includeme(config): settings = config.registry.settings config.include('..rest') monkey.patch() # MongoDB db_uri = settings['mongodb.uri'] db_name = settings['mongodb.db_name'] # parse before mongoengine changes res = uri_parser.parse_uri(db_uri) host, port = res['nodelist'][0] conn = mongoengine.connect(db_name, host=host, port=port) config.registry.settings['mongodb_conn'] = conn config.add_subscriber(add_db_conn, NewRequest) config.add_subscriber(del_db_conn, NewRequest) # overwrite to celery to use the same conn #pcelery.celery.backend._connection = conn #pcelery.celery.backend._database = conn['celery'] config.scan()
def test_patch_func_func(self): return def old_func(foo, bar): return foo + bar def new_func(foo, bar): return 5 + (foo + bar) def new_func_2(foo, bar): return 10 + (foo + bar) self.assertEquals(3, old_func(1, 2)) old_func = monkey.patch('old_func', new_func) self.assertEquals(8, old_func(1, 2))
def test_patch_one_level(self): ''' makes sure this works for patching module2.func in module, ie, module.module2.func will be the monkey patched function ''' # now let's import a patched one def patched(*args, **kwargs): return "happy" copy_patched = monkey.patch('copy', {'weakref.proxy': patched}) self.assertEquals("happy", copy_patched.weakref.proxy('')) import copy as copy_orig self.assertNotEquals(id(copy_orig), id(copy_patched))
def test_patch(self): # this one should remain untouched import json as json_orig import json as json_orig_too self.assertEquals(id(json_orig), id(json_orig_too)) # now let's import a patched one def dumps_new(*args, **kwargs): return "happy" json_patched = monkey.patch('json', dumps=dumps_new) self.assertNotEquals(id(json_orig), id(json_patched)) self.assertEquals("happy", json_patched.dumps({})) import json as json_orig_also self.assertEquals(id(json_orig), id(json_orig_also))
for index, p in enumerate(sys.path): if ".jar" in p: site_packages_dir = os.path.join(p, "site-packages") sys.path.insert(index + 1, site_packages_dir) # also add pip and distribute sys.path.append(site_packages_dir + "/distribute-0.6.31-py2.5.egg") sys.path.append(site_packages_dir + "/pip-1.2.1-py2.5.egg") break sys.add_package("org.json") sys.add_package("org.json.simple") sys.add_package("org.json.simple.parser") from monkey import patch patch() # add WEB-INF/lib-python as site dir if we have a WT_HOME if "WT_HOME" in os.environ: from site import addsitedir WT_HOME = os.environ["WT_HOME"] addsitedir(os.path.join(WT_HOME, "codebase", "WEB-INF", "lib-python")) if "SETUP_WT_CLASSPATH" in os.environ: import wt_classpath wt_classpath.set_windchill_classpath(WT_HOME) # vim: set ft=python ts=4 sw=4 expandtab :
def test_patch_no_patches(self): with self.assertRaises(ValueError): json_patched = monkey.patch('json')