Beispiel #1
0
 def test_05_opt_current_mode(self):
     """Checking option mode"""
     # empty
     config1 = ConfigManager(codemirror_attrs={'mode': None}, )
     self.assertEqual(config1.settings['current_mode_name'], None)
     self.assertEqual(config1.settings['current_mode_path'], None)
     # simple value resolving
     config2 = ConfigManager(codemirror_attrs={'mode': 'rst'}, )
     self.assertEqual(config2.settings['current_mode_name'], 'rst')
     self.assertEqual(
         config2.settings['current_mode_path'],
         dict(settings_local.CODEMIRROR_MODES).get('rst', None))
     # dict value resolving
     config3 = ConfigManager(
         codemirror_attrs={'mode': {
             'name': "jinja2",
             'htmlMode': True
         }}, )
     self.assertEqual(config3.settings['current_mode_name'], 'jinja2')
     self.assertEqual(
         config3.settings['current_mode_path'],
         dict(settings_local.CODEMIRROR_MODES).get('jinja2', None))
     # merge isntance kwargs with given config
     config4 = ConfigManager(codemirror_attrs={'mode': 'rst'},
                             mode={
                                 'name': "python",
                                 'htmlMode': False
                             })
     self.assertEqual(config4.settings['current_mode_name'], 'python')
     self.assertEqual(
         config4.settings['current_mode_path'],
         dict(settings_local.CODEMIRROR_MODES).get('python', None))
Beispiel #2
0
    def test_09_merge_config(self):
        """Checking config merge"""
        # Init with various options
        config = ConfigManager(codemirror_attrs={
            'codemirror_only': True,
            'embed_settings': False,
            'add_jquery': True,
            'mode': 'rst',
            'lineWrapping': False,
            'lineNumbers': True,
            'preview_url': "/foo/bar/",
        },
                               codemirror_only=False,
                               embed_settings=True,
                               add_jquery=True,
                               mode={
                                   'name': "python",
                                   'htmlMode': False
                               })
        self.assertEqual(
            config.editor_config, {
                'mode': {
                    'name': "python",
                    'htmlMode': False
                },
                'lineWrapping': False,
                'lineNumbers': True,
                'preview_url': "/foo/bar/",
            })

        # Push new options to merge
        config.merge_config(
            **{
                'codemirror_only': True,
                'embed_settings': True,
                'mode': 'jinja2',
                'add_jquery': "/foo/bar.js",
                'lineWrapping': True,
                'preview_url': ('djangocodemirror-sample-preview', [], {}),
                'quicksave_url': ('djangocodemirror-sample-quicksave', [], {}),
            })
        self.assertEqual(
            config.editor_config, {
                'mode': 'jinja2',
                'lineWrapping': True,
                'lineNumbers': True,
                'preview_url': reverse('djangocodemirror-sample-preview'),
                'quicksave_url': reverse('djangocodemirror-sample-quicksave'),
            })
        self.assertTrue(config.settings['codemirror_only'])
        self.assertTrue(config.settings['embed_settings'])
        self.assertEqual(config.settings['add_jquery'], "/foo/bar.js")
Beispiel #3
0
 def test_07_publish_config(self):
     """Checking editor_config attribute output"""
     # Empty
     config = ConfigManager(codemirror_attrs={
         'codemirror_only': True,
         'embed_settings': False,
         'add_jquery': True,
         'mode': 'rst',
         'lineWrapping': False,
         'lineNumbers': True,
     },
                            codemirror_only=False,
                            embed_settings=True,
                            add_jquery=True,
                            mode={
                                'name': "python",
                                'htmlMode': False
                            })
     self.assertEqual(
         config.editor_config, {
             'mode': {
                 'name': "python",
                 'htmlMode': False
             },
             'lineWrapping': False,
             'lineNumbers': True,
         })
Beispiel #4
0
 def test_10_setting_name(self):
     """Test to resolve settings from the setting name"""
     config = ConfigManager(
         codemirror_settings_name='djangocodemirror_with_preview')
     self.assertEqual(config.settings['codemirror_settings_name'],
                      "djangocodemirror_with_preview")
     self.assertEqual(config.settings['mode'], "rst")
     self.assertTrue(config.settings['lineNumbers'])
Beispiel #5
0
 def test_09_merge_config(self):
     """Checking config merge"""
     # Init with various options
     config = ConfigManager(
         codemirror_attrs={
             'codemirror_only': True,
             'embed_settings': False,
             'add_jquery': True,
             'mode': 'rst',
             'lineWrapping': False,
             'lineNumbers': True,
             'preview_url': "/foo/bar/",
         },
         codemirror_only=False,
         embed_settings=True,
         add_jquery=True,
         mode={'name': "python", 'htmlMode': False}
     )
     self.assertEqual(config.editor_config, {
         'mode': {'name': "python", 'htmlMode': False},
         'lineWrapping': False,
         'lineNumbers': True,
         'preview_url': "/foo/bar/",
     })
     
     # Push new options to merge
     config.merge_config(**{
         'codemirror_only': True,
         'embed_settings': True,
         'mode': 'jinja2',
         'add_jquery': "/foo/bar.js",
         'lineWrapping': True,
         'preview_url': ('djangocodemirror-sample-preview', [], {}),
         'quicksave_url': ('djangocodemirror-sample-quicksave', [], {}),
     })
     self.assertEqual(config.editor_config, {
         'mode': 'jinja2',
         'lineWrapping': True,
         'lineNumbers': True,
         'preview_url': reverse('djangocodemirror-sample-preview'),
         'quicksave_url': reverse('djangocodemirror-sample-quicksave'),
     })
     self.assertTrue(config.settings['codemirror_only'])
     self.assertTrue(config.settings['embed_settings'])
     self.assertEqual(config.settings['add_jquery'], "/foo/bar.js")
Beispiel #6
0
 def test_06_opt_add_jquery(self):
     """Checking option add_jquery"""
     # Empty
     config1 = ConfigManager(codemirror_attrs={
         'add_jquery': False,
     })
     self.assertFalse(config1.settings['add_jquery'])
     # Default value in given config
     config2 = ConfigManager(codemirror_attrs={
         'add_jquery': True,
     })
     self.assertEqual(config2.settings['add_jquery'],
                      settings_local.DEFAULT_JQUERY_PATH)
     # Custom value than overwrites the one in config
     config3 = ConfigManager(codemirror_attrs={
         'add_jquery': True,
     },
                             add_jquery="foo/bar.js")
     self.assertEqual(config3.settings['add_jquery'], "foo/bar.js")
Beispiel #7
0
 def test_02_kwargs_init(self):
     """Checking only init with kwargs"""
     config = ConfigManager(
         codemirror_only=False,
         embed_settings=True,
         add_jquery=True,
     )
     self.assertFalse('codemirror_attrs' in config.settings)
     self.assertFalse(config.settings['codemirror_only'])
     self.assertTrue(config.settings['embed_settings'])
     self.assertTrue(config.settings['add_jquery'])
Beispiel #8
0
 def test_03_config_init(self):
     """Checking init with given config dict"""
     config = ConfigManager(codemirror_attrs={
         'codemirror_only': True,
         'embed_settings': True,
         'add_jquery': True,
     })
     self.assertFalse('codemirror_attrs' in config.settings)
     self.assertTrue(config.settings['codemirror_only'])
     self.assertTrue(config.settings['embed_settings'])
     self.assertEqual(config.settings['add_jquery'],
                      settings_local.DEFAULT_JQUERY_PATH)
Beispiel #9
0
 def test_04_config_n_kwargs_init(self):
     """Checking init with kwargs and given config dict"""
     config = ConfigManager(codemirror_attrs={
         'codemirror_only': True,
         'embed_settings': False,
         'add_jquery': True,
     },
                            codemirror_only=False,
                            embed_settings=True,
                            add_jquery=True)
     self.assertFalse(config.settings['codemirror_only'])
     self.assertTrue(config.settings['embed_settings'])
     self.assertEqual(config.settings['add_jquery'],
                      settings_local.DEFAULT_JQUERY_PATH)
Beispiel #10
0
 def test_08_reverse_urls(self):
     """Checking urls reversing in config"""
     config = ConfigManager(codemirror_attrs={
         'mode':
         'rst',
         'preview_url': ('djangocodemirror-sample-preview', [], {}),
         'quicksave_url': ('djangocodemirror-sample-quicksave', [], {}),
         'settings_url': ('djangocodemirror-settings', [], {}),
     }, )
     self.assertEqual(
         config.editor_config, {
             'mode': 'rst',
             'preview_url': reverse('djangocodemirror-sample-preview'),
             'quicksave_url': reverse('djangocodemirror-sample-quicksave'),
             'settings_url': reverse('djangocodemirror-settings'),
         })
Beispiel #11
0
"""
try:
    from django_assets import Bundle, register
except ImportError:
    DJANGO_ASSETS_INSTALLED = False
else:
    DJANGO_ASSETS_INSTALLED = True

if DJANGO_ASSETS_INSTALLED:
    from djangocodemirror import settings_local
    from djangocodemirror.config import ConfigManager

    # Build all Bundles from available editor settings
    for settings_name, settings_values in settings_local.CODEMIRROR_SETTINGS.items(
    ):
        config = ConfigManager(config_name=settings_name)

        css_options = settings_local.BUNDLES_CSS_OPTIONS.copy()
        css_options['output'] = css_options['output'].format(
            settings_name=settings_name)
        js_options = settings_local.BUNDLES_JS_OPTIONS.copy()
        js_options['output'] = js_options['output'].format(
            settings_name=settings_name)

        css_contents, js_contents = config.find_assets()

        register(config.settings['css_bundle_name'],
                 Bundle(*css_contents, **css_options))
        register(config.settings['js_bundle_name'],
                 Bundle(*js_contents, **js_options))
Beispiel #12
0
"settings.CODEMIRROR_SETTINGS".

In the template you will have to load the bundle accordly to your field settings, there 
is a templatetag and an include template to do this automatically from your form field,
see the doc.
"""
try:
    from django_assets import Bundle, register
except ImportError:
    DJANGO_ASSETS_INSTALLED = False
else:
    DJANGO_ASSETS_INSTALLED = True

if DJANGO_ASSETS_INSTALLED:
    from djangocodemirror import settings_local
    from djangocodemirror.config import ConfigManager
    
    # Build all Bundles from available editor settings
    for settings_name,settings_values in settings_local.CODEMIRROR_SETTINGS.items():
        config = ConfigManager(config_name=settings_name)
        
        css_options = settings_local.BUNDLES_CSS_OPTIONS.copy()
        css_options['output'] = css_options['output'].format(settings_name=settings_name)
        js_options = settings_local.BUNDLES_JS_OPTIONS.copy()
        js_options['output'] = js_options['output'].format(settings_name=settings_name)
        
        css_contents, js_contents = config.find_assets()
        
        register(config.settings['css_bundle_name'], Bundle(*css_contents, **css_options))
        register(config.settings['js_bundle_name'], Bundle(*js_contents, **js_options))
Beispiel #13
0
 def test_01_empty(self):
     """Just checkin with an empty init"""
     ConfigManager()
Beispiel #14
0
 def init_editor_config(self):
     return ConfigManager(config_name=self.config_name, )