@@ -82,6 +82,8 @@ def test_tags_with_double_quotes_can_contain_commas(self):
82
82
['a-one' , 'a-two, and a-three' ])
83
83
self .assertEqual (parse_tag_input ('"two", one, one, two, "one"' ),
84
84
['one' , 'two' ])
85
+ self .assertEqual (parse_tag_input ('two", one' ),
86
+ ['one' , 'two' ])
85
87
86
88
def test_with_naughty_input (self ):
87
89
""" Test with naughty input. """
@@ -684,6 +686,49 @@ def test_related_for_model_with_tag_strings_as_input(self):
684
686
self .assertEqual (len (relevant_attribute_list ), 0 )
685
687
686
688
689
+ class TestTagCloudForModel (TestCase ):
690
+ def setUp (self ):
691
+ parrot_details = (
692
+ ('pining for the fjords' , 9 , True , 'foo bar' ),
693
+ ('passed on' , 6 , False , 'bar baz ter' ),
694
+ ('no more' , 4 , True , 'foo ter' ),
695
+ ('late' , 2 , False , 'bar ter' ),
696
+ )
697
+
698
+ for state , perch_size , perch_smelly , tags in parrot_details :
699
+ perch = Perch .objects .create (size = perch_size , smelly = perch_smelly )
700
+ parrot = Parrot .objects .create (state = state , perch = perch )
701
+ Tag .objects .update_tags (parrot , tags )
702
+
703
+ def test_tag_cloud_for_model (self ):
704
+ tag_cloud = Tag .objects .cloud_for_model (Parrot )
705
+ relevant_attribute_list = [(tag .name , tag .count , tag .font_size )
706
+ for tag in tag_cloud ]
707
+ self .assertEqual (len (relevant_attribute_list ), 4 )
708
+ self .assertTrue (('bar' , 3 , 4 ) in relevant_attribute_list )
709
+ self .assertTrue (('baz' , 1 , 1 ) in relevant_attribute_list )
710
+ self .assertTrue (('foo' , 2 , 2 ) in relevant_attribute_list )
711
+ self .assertTrue (('ter' , 3 , 4 ) in relevant_attribute_list )
712
+
713
+ def test_tag_cloud_for_model_filters (self ):
714
+ tag_cloud = Tag .objects .cloud_for_model (Parrot ,
715
+ filters = {'state' : 'no more' })
716
+ relevant_attribute_list = [(tag .name , tag .count , tag .font_size )
717
+ for tag in tag_cloud ]
718
+ self .assertEqual (len (relevant_attribute_list ), 2 )
719
+ self .assertTrue (('foo' , 1 , 1 ) in relevant_attribute_list )
720
+ self .assertTrue (('ter' , 1 , 1 ) in relevant_attribute_list )
721
+
722
+ def test_tag_cloud_for_model_min_count (self ):
723
+ tag_cloud = Tag .objects .cloud_for_model (Parrot , min_count = 2 )
724
+ relevant_attribute_list = [(tag .name , tag .count , tag .font_size )
725
+ for tag in tag_cloud ]
726
+ self .assertEqual (len (relevant_attribute_list ), 3 )
727
+ self .assertTrue (('bar' , 3 , 4 ) in relevant_attribute_list )
728
+ self .assertTrue (('foo' , 2 , 1 ) in relevant_attribute_list )
729
+ self .assertTrue (('ter' , 3 , 4 ) in relevant_attribute_list )
730
+
731
+
687
732
class TestGetTaggedObjectsByModel (TestCase ):
688
733
def setUp (self ):
689
734
parrot_details = (
@@ -802,6 +847,12 @@ def test_get_union_by_model(self):
802
847
# Issue 114 - Union with non-existant tags
803
848
parrots = TaggedItem .objects .get_union_by_model (Parrot , [])
804
849
self .assertEqual (len (parrots ), 0 )
850
+ parrots = TaggedItem .objects .get_union_by_model (Parrot , ['albert' ])
851
+ self .assertEqual (len (parrots ), 0 )
852
+
853
+ Tag .objects .create (name = 'titi' )
854
+ parrots = TaggedItem .objects .get_union_by_model (Parrot , ['titi' ])
855
+ self .assertEqual (len (parrots ), 0 )
805
856
806
857
807
858
class TestGetRelatedTaggedItems (TestCase ):
@@ -1036,6 +1087,12 @@ def test_tag_d_validation(self):
1036
1087
forms .ValidationError , t .clean ,
1037
1088
'foo qwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvbn bar' )
1038
1089
1090
+ def test_tag_get_from_model (self ):
1091
+ FormTest .objects .create (tags = 'test3 test2 test1' )
1092
+ FormTest .objects .create (tags = 'toto titi' )
1093
+ self .assertEquals (FormTest .tags , 'test1 test2 test3 titi toto' )
1094
+
1095
+
1039
1096
#########
1040
1097
# Forms #
1041
1098
#########
0 commit comments