def path(self, name): if name == "": return "" if name != 'dajaxice/dajaxice.core.js': return context = Context({ 'dajaxice_js_functions': DajaxiceRequest.get_js_functions(), 'DAJAXICE_URL_PREFIX': DajaxiceRequest.get_media_prefix(), 'DAJAXICE_XMLHTTPREQUEST_JS_IMPORT': DajaxiceRequest\ .get_xmlhttprequest_js_import(), 'DAJAXICE_JSON2_JS_IMPORT': DajaxiceRequest\ .get_json2_js_import(), 'DAJAXICE_EXCEPTION': DajaxiceRequest.get_exception_message(), 'DAJAXICE_JS_DOCSTRINGS': DajaxiceRequest.get_js_docstrings(), }) template = loader.get_template('dajaxice/dajaxice.core.js') content = template.render(context) digest = get_hexdigest(content) filename = os.path.join(get_cache_path(), 'dajaxice.core.%s.js' % digest) if self._filename is None or self._filename != filename: with open(filename, 'wb') as fout: fout.write(content) self._filename = filename return filename
def test_get_js_functions(self): js_functions = DajaxiceRequest.get_js_functions() functions = [DajaxiceFunction('test_registered_function', 'dajaxice.tests.ajax.test_registered_function'), DajaxiceFunction('test_string', 'dajaxice.tests.ajax.test_string'), DajaxiceFunction('test_ajax_exception', 'dajaxice.tests.ajax.test_ajax_exception'), DajaxiceFunction('test_foo', 'dajaxice.tests.ajax.test_foo'), DajaxiceFunction('test_foo_with_params', 'dajaxice.tests.ajax.test_foo_with_params'), DajaxiceFunction('test_submodule_registered_function', 'dajaxice.tests.submodules.ajax.test_submodule_registered_function')] callables = [f.path for f in functions] self.failUnlessEqual(len(js_functions), 1) self.failUnlessEqual(dajaxice_functions._callable, callables) sub = js_functions[0] self.failUnlessEqual(len(sub.sub_modules), 1) self.failUnlessEqual(len(sub.functions), 0) self.failUnlessEqual(sub.name, 'dajaxice') sub = js_functions[0].sub_modules[0] self.failUnlessEqual(len(sub.sub_modules), 1) self.failUnlessEqual(len(sub.functions), 5) self.failUnlessEqual(sub.functions, functions[:-1]) self.failUnlessEqual(sub.name, 'tests') sub = js_functions[0].sub_modules[0].sub_modules[0] self.failUnlessEqual(len(sub.sub_modules), 0) self.failUnlessEqual(len(sub.functions), 1) self.failUnlessEqual(sub.functions, functions[-1:]) self.failUnlessEqual(sub.name, 'submodules')
def test_get_js_functions(self): js_functions = DajaxiceRequest.get_js_functions() callables = ['dajaxice.tests.ajax.test_registered_function', 'dajaxice.tests.ajax.test_string', 'dajaxice.tests.ajax.test_ajax_exception', 'dajaxice.tests.ajax.test_foo', 'dajaxice.tests.ajax.test_foo_with_params'] functions = [f.rsplit('.',1)[1] for f in callables] self.failUnlessEqual(len(js_functions), 1) self.failUnlessEqual(dajaxice_functions._callable, callables) sub = js_functions[0] self.failUnlessEqual(len(sub.sub_modules), 1) self.failUnlessEqual(len(sub.functions), 0) self.failUnlessEqual(sub.name, 'dajaxice') sub = js_functions[0].sub_modules[0] self.failUnlessEqual(len(sub.sub_modules), 0) self.failUnlessEqual(len(sub.functions), 5) self.failUnlessEqual(sub.functions, functions) self.failUnlessEqual(sub.name, 'tests')
def js_core(request): """ Return the dajax JS code according settings.DAJAXICE_FUNCTIONS registered functions. """ data = { 'dajaxice_js_functions': DajaxiceRequest.get_js_functions(), 'DAJAXICE_URL_PREFIX': DajaxiceRequest.get_media_prefix(), 'DAJAXICE_XMLHTTPREQUEST_JS_IMPORT': DajaxiceRequest.get_xmlhttprequest_js_import(), 'DAJAXICE_JSON2_JS_IMPORT': DajaxiceRequest.get_json2_js_import(), 'DAJAXICE_EXCEPTION': DajaxiceRequest.get_exception_message(), 'DAJAXICE_JS_DOCSTRINGS': DajaxiceRequest.get_js_docstrings(), 'DEBUG': settings.DEBUG, } return render(request, 'dajaxice/dajaxice.core.js', data, content_type="text/javascript")
def js_core(request): """ Return the dajax JS code according settings.DAJAXICE_FUNCTIONS registered functions. """ data = {'dajaxice_js_functions':DajaxiceRequest.get_js_functions(), 'DAJAXICE_URL_PREFIX': DajaxiceRequest.get_media_prefix(), 'DAJAXICE_XMLHTTPREQUEST_JS_IMPORT':DajaxiceRequest.get_xmlhttprequest_js_import(), 'DAJAXICE_JSON2_JS_IMPORT':DajaxiceRequest.get_json2_js_import(), 'DAJAXICE_EXCEPTION':DajaxiceRequest.get_exception_message() } return render_to_response('dajaxice/dajaxice.core.js', data, mimetype="text/javascript" )
def handle(self, *app_labels, **options): compile_output = options.get('compile','yes') data = {'dajaxice_js_functions':DajaxiceRequest.get_js_functions(), 'DAJAXICE_URL_PREFIX': DajaxiceRequest.get_media_prefix(), 'DAJAXICE_XMLHTTPREQUEST_JS_IMPORT':DajaxiceRequest.get_xmlhttprequest_js_import(), 'DAJAXICE_JSON2_JS_IMPORT':DajaxiceRequest.get_json2_js_import(), 'DAJAXICE_EXCEPTION':DajaxiceRequest.get_exception_message() } js = render_to_string('dajaxice/dajaxice.core.js', data ) if compile_output.lower() == "closure": print self.complie_js_with_closure(js) else: print js
def path(self, name): if name == "": return "" if name != 'dajaxice/dajaxice.core.js': return context = Context({'dajaxice_js_functions': DajaxiceRequest.get_js_functions(), 'DAJAXICE_URL_PREFIX': DajaxiceRequest.get_media_prefix(), 'DAJAXICE_XMLHTTPREQUEST_JS_IMPORT': DajaxiceRequest.get_xmlhttprequest_js_import(), 'DAJAXICE_JSON2_JS_IMPORT': DajaxiceRequest.get_json2_js_import(), 'DAJAXICE_EXCEPTION': DajaxiceRequest.get_exception_message(), 'DAJAXICE_JS_DOCSTRINGS': DajaxiceRequest.get_js_docstrings()}) template = loader.get_template('dajaxice/dajaxice.core.js') self._tmp_file = NamedTemporaryFile(suffix='.js') self._tmp_file.write(template.render(context)) self._tmp_file.flush() return self._tmp_file.name
def handle(self, *app_labels, **options): compile_output = options.get('compile', 'yes') data = { 'dajaxice_js_functions': DajaxiceRequest.get_js_functions(), 'DAJAXICE_URL_PREFIX': DajaxiceRequest.get_media_prefix(), 'DAJAXICE_XMLHTTPREQUEST_JS_IMPORT': DajaxiceRequest.get_xmlhttprequest_js_import(), 'DAJAXICE_JSON2_JS_IMPORT': DajaxiceRequest.get_json2_js_import(), 'DAJAXICE_EXCEPTION': DajaxiceRequest.get_exception_message() } js = render_to_string('dajaxice/dajaxice.core.js', data) if compile_output.lower() == "closure": print self.complie_js_with_closure(js) else: print js
def test_get_js_functions(self): js_functions = DajaxiceRequest.get_js_functions() functions = [ DajaxiceFunction('test_registered_function', 'dajaxice.tests.ajax.test_registered_function'), DajaxiceFunction('test_string', 'dajaxice.tests.ajax.test_string'), DajaxiceFunction('test_ajax_exception', 'dajaxice.tests.ajax.test_ajax_exception'), DajaxiceFunction('test_foo', 'dajaxice.tests.ajax.test_foo'), DajaxiceFunction('test_foo_with_params', 'dajaxice.tests.ajax.test_foo_with_params'), DajaxiceFunction( 'test_submodule_registered_function', 'dajaxice.tests.submodules.ajax.test_submodule_registered_function' ) ] callables = [f.path for f in functions] self.failUnlessEqual(len(js_functions), 1) self.failUnlessEqual(dajaxice_functions._callable, callables) sub = js_functions[0] self.failUnlessEqual(len(sub.sub_modules), 1) self.failUnlessEqual(len(sub.functions), 0) self.failUnlessEqual(sub.name, 'dajaxice') sub = js_functions[0].sub_modules[0] self.failUnlessEqual(len(sub.sub_modules), 1) self.failUnlessEqual(len(sub.functions), 5) self.failUnlessEqual(sub.functions, functions[:-1]) self.failUnlessEqual(sub.name, 'tests') sub = js_functions[0].sub_modules[0].sub_modules[0] self.failUnlessEqual(len(sub.sub_modules), 0) self.failUnlessEqual(len(sub.functions), 1) self.failUnlessEqual(sub.functions, functions[-1:]) self.failUnlessEqual(sub.name, 'submodules')
def test_get_js_functions(self): settings.DAJAXICE_FUNCTIONS = ('test1.ajax.a', 'test2.ajax.b', 'test2.ajax.c', 'test3.ajax.d',) js_functions = DajaxiceRequest.get_js_functions() self.failUnlessEqual(len(js_functions), 3) self.failUnless('test1' in js_functions.keys()) self.failUnless('test2' in js_functions.keys()) self.failUnless('test3' in js_functions.keys()) self.failUnlessEqual(len(js_functions.get('test1')), 1) self.failUnless('a' in js_functions.get('test1')) self.failUnlessEqual(len(js_functions.get('test2')), 2) self.failUnless('b' in js_functions.get('test2')) self.failUnless('c' in js_functions.get('test2')) self.failUnlessEqual(len(js_functions.get('test3')), 1) self.failUnless('d' in js_functions.get('test3'))