Esempio n. 1
0
 def test_non_required_multikwarg(self):
     options = core.Options(
         arguments.MultiKeywordArgument('multi', required=False), )
     dummy_tokens = DummyTokens()
     kwargs, blocks = options.parse(dummy_parser, dummy_tokens)
     self.assertTrue('multi' in kwargs)
     self.assertEqual(kwargs['multi'], {})
     options = core.Options(
         arguments.MultiKeywordArgument('multi',
                                        required=False,
                                        default={'hello': 'world'}), )
     dummy_tokens = DummyTokens()
     kwargs, blocks = options.parse(dummy_parser, dummy_tokens)
     self.assertTrue('multi' in kwargs)
     self.assertEqual(kwargs['multi'].resolve({}), {'hello': 'world'})
Esempio n. 2
0
 def test_multikwarg_no_key(self):
     options = core.Options(arguments.MultiKeywordArgument('multi'), )
     with SettingsOverride(DEBUG=True):
         dummy_tokens = DummyTokens('value')
         self.assertRaises(template.TemplateSyntaxError, options.parse,
                           dummy_parser, dummy_tokens)
     with SettingsOverride(DEBUG=False):
         dummy_tokens = DummyTokens('value')
         self.assertRaises(template.TemplateSyntaxError, options.parse,
                           dummy_parser, dummy_tokens)
Esempio n. 3
0
    def test_multi_keyword_argument(self):
        opts = core.Options(
            arguments.MultiKeywordArgument('multi', max_values=2), )

        class MultiKeywordArgumentTag(core.Tag):
            name = 'multi_kwarg_tag'
            options = opts

            def render_tag(self, context, multi):
                items = sorted(multi.items())
                return ','.join(['%s:%s' % item for item in items])

        ctx = {'key': 'thekey', 'value': 'thevalue'}
        templates = [
            ("{% multi_kwarg_tag key='value' key2='value2' %}",
             'key:value,key2:value2', ctx),
            ("{% multi_kwarg_tag key=value %}", 'key:thevalue', ctx),
        ]
        self._tag_tester(MultiKeywordArgumentTag, templates)
        dummy_tokens = DummyTokens('key="value"', 'key2="value2"',
                                   'key3="value3"')
        self.assertRaises(exceptions.TooManyArguments, opts.parse,
                          dummy_parser, dummy_tokens)