~paolorotolo/software-center/fix-for-963309

« back to all changes in this revision

Viewing changes to test/gtk3/test_appdetailsview.py

  • Committer: Danny Tamez
  • Date: 2012-01-19 16:17:34 UTC
  • mfrom: (2682 trunk)
  • mto: This revision was merged to the branch mainline in revision 2683.
  • Revision ID: danny.tamez@canonical.com-20120119161734-8viwvv83ph9d4kfx
MergeĀ fromĀ trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
6
6
from testutils import setup_test_env
7
7
setup_test_env()
8
8
 
9
 
from mock import Mock
 
9
from mock import Mock, patch
10
10
 
11
11
from softwarecenter.db.application import Application
12
12
from softwarecenter.testutils import get_mock_app_from_real_app, do_events
108
108
        view.show_app(app)
109
109
        self.assertEqual(view._reviews_server_page, 1)
110
110
 
 
111
    def test_human_readable_name_in_view(self):
 
112
        model = self.view.reviews.review_language.get_model()
 
113
        self.assertEqual(model[0][0], "English")
 
114
 
111
115
    def test_pkgstatus_bar(self):
112
116
        # make sure configure is run with the various states
113
117
        # test
155
159
                "for state %s the function %s was not called" % (state, func))
156
160
            mock.reset()
157
161
 
158
 
 
159
162
    def test_switch_language_resets_page(self):
160
163
        self.view._reviews_server_page = 4
161
164
 
170
173
 
171
174
        self.assertEqual(1, self.view._reviews_server_page)
172
175
 
 
176
    @patch('softwarecenter.backend.reviews.rnr.ReviewLoaderSpawningRNRClient'
 
177
           '.get_reviews')
 
178
    def test_no_reviews_returned_attempts_relaxing(self, mock_get_reviews):
 
179
        """AppDetailsView._reviews_ready_callback will attempt to drop the
 
180
           origin and distroseries restriction if no reviews are returned
 
181
           with the restrictions in place.
 
182
        """
 
183
        self.view._do_load_reviews()
 
184
 
 
185
        self.assertEqual(1, mock_get_reviews.call_count)
 
186
        kwargs = mock_get_reviews.call_args[1]
 
187
        self.assertEqual(False, kwargs['relaxed'])
 
188
        self.assertEqual(1, kwargs['page'])
 
189
 
 
190
        # Now we come back with no data
 
191
        application, callback = mock_get_reviews.call_args[0]
 
192
        callback(application, [])
 
193
 
 
194
        self.assertEqual(2, mock_get_reviews.call_count)
 
195
        kwargs = mock_get_reviews.call_args[1]
 
196
        self.assertEqual(True, kwargs['relaxed'])
 
197
        self.assertEqual(1, kwargs['page'])
 
198
 
 
199
    @patch('softwarecenter.backend.reviews.rnr.ReviewLoaderSpawningRNRClient'
 
200
           '.get_reviews')
 
201
    def test_all_duplicate_reviews_keeps_going(self, mock_get_reviews):
 
202
        """AppDetailsView._reviews_ready_callback will fetch another page if
 
203
           all data returned was already displayed in the reviews list.
 
204
        """
 
205
        # Fixme: Do we have a test factory?
 
206
        review = Mock()
 
207
        review.rating = 3
 
208
        review.date_created = "2011-01-01 18:00:00"
 
209
        review.version = "1.0"
 
210
        review.summary = 'some summary'
 
211
        review.review_text = 'Some text'
 
212
        review.reviewer_username = "name"
 
213
        review.reviewer_displayname = "displayname"
 
214
 
 
215
        reviews = [review]
 
216
        self.view.reviews.reviews = reviews
 
217
        self.view._do_load_reviews()
 
218
 
 
219
        self.assertEqual(1, mock_get_reviews.call_count)
 
220
        kwargs = mock_get_reviews.call_args[1]
 
221
        self.assertEqual(False, kwargs['relaxed'])
 
222
        self.assertEqual(1, kwargs['page'])
 
223
 
 
224
        # Now we come back with no NEW data
 
225
        application, callback = mock_get_reviews.call_args[0]
 
226
        callback(application, reviews)
 
227
 
 
228
        self.assertEqual(2, mock_get_reviews.call_count)
 
229
        kwargs = mock_get_reviews.call_args[1]
 
230
        self.assertEqual(False, kwargs['relaxed'])
 
231
        self.assertEqual(2, kwargs['page'])
 
232
 
173
233
 
174
234
if __name__ == "__main__":
175
235
    import logging