~widelands-dev/widelands-website/trunk

« back to all changes in this revision

Viewing changes to djangoratings/tests.py

  • Committer: franku
  • Author(s): GunChleoc
  • Date: 2016-12-13 18:30:38 UTC
  • mfrom: (438.1.6 pyformat_util)
  • Revision ID: somal@arcor.de-20161213183038-5cgmvfh2fkgmoc1s
adding a script to run pyformat over the code base

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
 
13
13
settings.RATINGS_VOTES_PER_IP = 1
14
14
 
 
15
 
15
16
class RatingTestModel(models.Model):
16
17
    rating = AnonymousRatingField(range=2, can_change_vote=True)
17
18
    rating2 = RatingField(range=2, can_change_vote=False)
18
 
    
 
19
 
19
20
    def __unicode__(self):
20
21
        return unicode(self.pk)
21
22
 
 
23
 
22
24
class RatingTestCase(unittest.TestCase):
 
25
 
23
26
    def testRatings(self):
24
27
        instance = RatingTestModel.objects.create()
25
 
        
 
28
 
26
29
        # Test adding votes
27
30
        instance.rating.add(score=1, user=None, ip_address='127.0.0.1')
28
31
        self.assertEquals(instance.rating.score, 1)
37
40
        instance.rating.add(score=2, user=None, ip_address='127.0.0.1')
38
41
        self.assertEquals(instance.rating.score, 4)
39
42
        self.assertEquals(instance.rating.votes, 2)
40
 
        
 
43
 
41
44
        # Test users
42
45
        user = User.objects.create(username=str(random.randint(0, 100000000)))
43
46
        user2 = User.objects.create(username=str(random.randint(0, 100000000)))
44
 
        
 
47
 
45
48
        instance.rating.add(score=2, user=user, ip_address='127.0.0.3')
46
49
        self.assertEquals(instance.rating.score, 6)
47
50
        self.assertEquals(instance.rating.votes, 3)
48
 
        
 
51
 
49
52
        instance.rating2.add(score=2, user=user, ip_address='127.0.0.3')
50
53
        self.assertEquals(instance.rating2.score, 2)
51
54
        self.assertEquals(instance.rating2.votes, 1)
52
 
        
53
 
        self.assertRaises(IPLimitReached, instance.rating2.add, score=2, user=user2, ip_address='127.0.0.3')
 
55
 
 
56
        self.assertRaises(IPLimitReached, instance.rating2.add,
 
57
                          score=2, user=user2, ip_address='127.0.0.3')
54
58
 
55
59
        # Test deletion hooks
56
60
        Vote.objects.filter(ip_address='127.0.0.3').delete()
57
 
        
 
61
 
58
62
        instance = RatingTestModel.objects.get(pk=instance.pk)
59
63
 
60
64
        self.assertEquals(instance.rating.score, 4)
62
66
        self.assertEquals(instance.rating2.score, 0)
63
67
        self.assertEquals(instance.rating2.votes, 0)
64
68
 
 
69
 
65
70
class RecommendationsTestCase(unittest.TestCase):
 
71
 
66
72
    def setUp(self):
67
73
        self.instance = RatingTestModel.objects.create()
68
74
        self.instance2 = RatingTestModel.objects.create()
69
75
        self.instance3 = RatingTestModel.objects.create()
70
76
        self.instance4 = RatingTestModel.objects.create()
71
77
        self.instance5 = RatingTestModel.objects.create()
72
 
        
 
78
 
73
79
        # Test users
74
 
        self.user = User.objects.create(username=str(random.randint(0, 100000000)))
75
 
        self.user2 = User.objects.create(username=str(random.randint(0, 100000000)))
76
 
    
 
80
        self.user = User.objects.create(
 
81
            username=str(random.randint(0, 100000000)))
 
82
        self.user2 = User.objects.create(
 
83
            username=str(random.randint(0, 100000000)))
 
84
 
77
85
    def testExclusions(self):
78
86
        Vote.objects.all().delete()
79
87
 
80
 
        self.instance.rating.add(score=1, user=self.user, ip_address='127.0.0.1')
81
 
        self.instance2.rating.add(score=1, user=self.user, ip_address='127.0.0.1')
82
 
        self.instance3.rating.add(score=1, user=self.user, ip_address='127.0.0.1')
83
 
        self.instance4.rating.add(score=1, user=self.user, ip_address='127.0.0.1')
84
 
        self.instance5.rating.add(score=1, user=self.user, ip_address='127.0.0.1')
85
 
        self.instance.rating.add(score=1, user=self.user2, ip_address='127.0.0.2')
 
88
        self.instance.rating.add(
 
89
            score=1, user=self.user, ip_address='127.0.0.1')
 
90
        self.instance2.rating.add(
 
91
            score=1, user=self.user, ip_address='127.0.0.1')
 
92
        self.instance3.rating.add(
 
93
            score=1, user=self.user, ip_address='127.0.0.1')
 
94
        self.instance4.rating.add(
 
95
            score=1, user=self.user, ip_address='127.0.0.1')
 
96
        self.instance5.rating.add(
 
97
            score=1, user=self.user, ip_address='127.0.0.1')
 
98
        self.instance.rating.add(
 
99
            score=1, user=self.user2, ip_address='127.0.0.2')
86
100
 
87
101
        # we should only need to call this once
88
102
        SimilarUser.objects.update_recommendations()
89
103
 
90
104
        self.assertEquals(SimilarUser.objects.count(), 2)
91
105
 
92
 
        recs = list(SimilarUser.objects.get_recommendations(self.user2, RatingTestModel))
 
106
        recs = list(SimilarUser.objects.get_recommendations(
 
107
            self.user2, RatingTestModel))
93
108
        self.assertEquals(len(recs), 4)
94
 
        
 
109
 
95
110
        ct = ContentType.objects.get_for_model(RatingTestModel)
96
 
        
97
 
        IgnoredObject.objects.create(user=self.user2, content_type=ct, object_id=self.instance2.pk)
98
 
 
99
 
        recs = list(SimilarUser.objects.get_recommendations(self.user2, RatingTestModel))
 
111
 
 
112
        IgnoredObject.objects.create(
 
113
            user=self.user2, content_type=ct, object_id=self.instance2.pk)
 
114
 
 
115
        recs = list(SimilarUser.objects.get_recommendations(
 
116
            self.user2, RatingTestModel))
100
117
        self.assertEquals(len(recs), 3)
101
118
 
102
 
        IgnoredObject.objects.create(user=self.user2, content_type=ct, object_id=self.instance3.pk)
103
 
        IgnoredObject.objects.create(user=self.user2, content_type=ct, object_id=self.instance4.pk)
 
119
        IgnoredObject.objects.create(
 
120
            user=self.user2, content_type=ct, object_id=self.instance3.pk)
 
121
        IgnoredObject.objects.create(
 
122
            user=self.user2, content_type=ct, object_id=self.instance4.pk)
104
123
 
105
 
        recs = list(SimilarUser.objects.get_recommendations(self.user2, RatingTestModel))
 
124
        recs = list(SimilarUser.objects.get_recommendations(
 
125
            self.user2, RatingTestModel))
106
126
        self.assertEquals(len(recs), 1)
107
127
        self.assertEquals(recs, [self.instance5])
108
 
        
109
 
        self.instance5.rating.add(score=1, user=self.user2, ip_address='127.0.0.2')
110
 
        recs = list(SimilarUser.objects.get_recommendations(self.user2, RatingTestModel))
 
128
 
 
129
        self.instance5.rating.add(
 
130
            score=1, user=self.user2, ip_address='127.0.0.2')
 
131
        recs = list(SimilarUser.objects.get_recommendations(
 
132
            self.user2, RatingTestModel))
111
133
        self.assertEquals(len(recs), 0)
112
 
    
 
134
 
113
135
    def testSimilarUsers(self):
114
136
        Vote.objects.all().delete()
115
137
 
116
 
        self.instance.rating.add(score=1, user=self.user, ip_address='127.0.0.1')
117
 
        self.instance2.rating.add(score=1, user=self.user, ip_address='127.0.0.1')
118
 
        self.instance3.rating.add(score=1, user=self.user, ip_address='127.0.0.1')
119
 
        self.instance4.rating.add(score=1, user=self.user, ip_address='127.0.0.1')
120
 
        self.instance5.rating.add(score=1, user=self.user, ip_address='127.0.0.1')
121
 
        self.instance.rating.add(score=1, user=self.user2, ip_address='127.0.0.2')
122
 
        self.instance2.rating.add(score=1, user=self.user2, ip_address='127.0.0.2')
123
 
        self.instance3.rating.add(score=1, user=self.user2, ip_address='127.0.0.2')
124
 
        
 
138
        self.instance.rating.add(
 
139
            score=1, user=self.user, ip_address='127.0.0.1')
 
140
        self.instance2.rating.add(
 
141
            score=1, user=self.user, ip_address='127.0.0.1')
 
142
        self.instance3.rating.add(
 
143
            score=1, user=self.user, ip_address='127.0.0.1')
 
144
        self.instance4.rating.add(
 
145
            score=1, user=self.user, ip_address='127.0.0.1')
 
146
        self.instance5.rating.add(
 
147
            score=1, user=self.user, ip_address='127.0.0.1')
 
148
        self.instance.rating.add(
 
149
            score=1, user=self.user2, ip_address='127.0.0.2')
 
150
        self.instance2.rating.add(
 
151
            score=1, user=self.user2, ip_address='127.0.0.2')
 
152
        self.instance3.rating.add(
 
153
            score=1, user=self.user2, ip_address='127.0.0.2')
 
154
 
125
155
        SimilarUser.objects.update_recommendations()
126
156
 
127
157
        self.assertEquals(SimilarUser.objects.count(), 2)
128
158
 
129
 
        recs = list(SimilarUser.objects.get_recommendations(self.user2, RatingTestModel))
 
159
        recs = list(SimilarUser.objects.get_recommendations(
 
160
            self.user2, RatingTestModel))
130
161
        self.assertEquals(len(recs), 2)
131
 
        
132
 
        self.instance4.rating.add(score=1, user=self.user2, ip_address='127.0.0.2')
 
162
 
 
163
        self.instance4.rating.add(
 
164
            score=1, user=self.user2, ip_address='127.0.0.2')
133
165
 
134
166
        SimilarUser.objects.update_recommendations()
135
167
 
136
168
        self.assertEquals(SimilarUser.objects.count(), 2)
137
169
 
138
 
        recs = list(SimilarUser.objects.get_recommendations(self.user2, RatingTestModel))
 
170
        recs = list(SimilarUser.objects.get_recommendations(
 
171
            self.user2, RatingTestModel))
139
172
        self.assertEquals(len(recs), 1)
140
173
        self.assertEquals(recs, [self.instance5])
141
 
        
142
 
        self.instance5.rating.add(score=1, user=self.user2, ip_address='127.0.0.2')
 
174
 
 
175
        self.instance5.rating.add(
 
176
            score=1, user=self.user2, ip_address='127.0.0.2')
143
177
 
144
178
        SimilarUser.objects.update_recommendations()
145
179
 
146
180
        self.assertEquals(SimilarUser.objects.count(), 2)
147
181
 
148
 
        recs = list(SimilarUser.objects.get_recommendations(self.user2, RatingTestModel))
149
 
        self.assertEquals(len(recs), 0)
 
 
b'\\ No newline at end of file'
 
182
        recs = list(SimilarUser.objects.get_recommendations(
 
183
            self.user2, RatingTestModel))
 
184
        self.assertEquals(len(recs), 0)