Beispiel #1
0
    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
Beispiel #2
0
    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')
Beispiel #3
0
 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')
Beispiel #4
0
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")
Beispiel #5
0
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
Beispiel #7
0
 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
Beispiel #8
0
    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
Beispiel #9
0
    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')
Beispiel #10
0
 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'))