Example #1
0
 def test_parse_renders_tags(self):
     tagstr = "adam, brian, chris"
     tags = tag_utils.parse_tags(tagstr)
     tagstr2 = tag_utils.render_tags(tags)
     self.assertEqual(len(tags), 3)
     self.assertEqual(tags[0], "adam")
     self.assertEqual(tags[1], "brian")
     self.assertEqual(tags[2], "chris")
     self.assertEqual(tagstr, tagstr2)
Example #2
0
 def test_parse_renders_tags_complex(self):
     tagstr = '"""adam brian"", ""chris, dave", "ed, frank", gary'
     tags = tag_utils.parse_tags(tagstr)
     tagstr2 = tag_utils.render_tags(tags)
     self.assertEqual(len(tags), 3)
     self.assertEqual(tags[0], '"adam brian", "chris, dave')
     self.assertEqual(tags[1], "ed, frank")
     self.assertEqual(tags[2], "gary")
     self.assertEqual(tagstr, tagstr2)
Example #3
0
    def prepare_value(self, value):
        """
        Prepare the value
        """
        # Could receive iterable of tags from a form's initial object
        if (isinstance(value, TagModelQuerySet)
                or (hasattr(value, '__getitem__')
                    and all(isinstance(tag, BaseTagModel) for tag in value))):
            value = render_tags(value)

        # Deal with it as normal
        return super(TagField, self).prepare_value(value)
Example #4
0
    def prepare_value(self, value):
        """
        Prepare the value
        """
        # Could receive iterable of tags from a form's initial object
        if (
            isinstance(value, TagModelQuerySet)
            or (
                hasattr(value, '__getitem__')
                and all(isinstance(tag, BaseTagModel) for tag in value)
            )
        ):
            value = render_tags(value)

        # Deal with it as normal
        return super(TagField, self).prepare_value(value)
Example #5
0
    def __setattr__(self, name, value):
        """
        Only allow an option to be set if it's valid
        """
        if name == 'initial':
            # Store as a list of strings, with the tag string available on
            # initial_string for migrations
            if value is None:
                self.__dict__['initial_string'] = ''
                self.__dict__['initial'] = []
            elif isinstance(value, six.string_types):
                self.__dict__['initial_string'] = value
                self.__dict__['initial'] = parse_tags(value)
            else:
                self.__dict__['initial_string'] = render_tags(value)
                self.__dict__['initial'] = value

        elif name in constants.OPTION_DEFAULTS:
            self.__dict__[name] = value
        else:
            raise AttributeError(name)
Example #6
0
    def __setattr__(self, name, value):
        """
        Only allow an option to be set if it's valid
        """
        if name == 'initial':
            # Store as a list of strings, with the tag string available on
            # initial_string for migrations
            if value is None:
                self.__dict__['initial_string'] = ''
                self.__dict__['initial'] = []
            elif isinstance(value, six.string_types):
                self.__dict__['initial_string'] = value
                self.__dict__['initial'] = parse_tags(value)
            else:
                self.__dict__['initial_string'] = render_tags(value)
                self.__dict__['initial'] = value

        elif name in constants.OPTION_DEFAULTS:
            self.__dict__[name] = value
        else:
            raise AttributeError(name)
Example #7
0
 def test_quotes_commas_and_spaces(self):
     tagstr = tag_utils.render_tags(["adam brian", "chris, dave", "ed"])
     self.assertEqual(tagstr, '"adam brian", "chris, dave", ed')
Example #8
0
 def test_escapes_quotes(self):
     tagstr = tag_utils.render_tags(['ad"am', '"brian', 'chris"', '"dave"'])
     self.assertEqual(tagstr, '""brian, ""dave"", ad""am, chris""')
Example #9
0
 def test_simple(self):
     tagstr = tag_utils.render_tags(["adam", "brian", "chris"])
     self.assertEqual(tagstr, "adam, brian, chris")
Example #10
0
 def __str__(self):
     return utils.render_tags(self)
Example #11
0
 def get_tag_string(self):
     """
     Get the tag edit string for this instance as a string
     """
     return render_tags(self.tags)
Example #12
0
 def __str__(self):
     return utils.render_tags(self)
Example #13
0
 def get_tag_string(self):
     """
     Get the tag edit string for this instance as a string
     """
     return render_tags(self.tags)