Code Duplication    Length = 25-27 lines in 7 locations

omaha_server/omaha/tests/test_tasks.py 7 locations

@@ 137-163 (lines=27) @@
134
135
136
class SizeExceedTest(TestCase):
137
    @freeze_time("2012-12-21 12:00:00")
138
    @patch('logging.getLogger')
139
    @is_private()
140
    def test_crashes(self, mocked_get_logger):
141
        gpm['Crash__limit_size'] = 1
142
        crash_size = 10*1024*1023
143
        crashes = CrashFactory.create_batch(200, archive_size=crash_size, minidump_size=0)
144
        deleted_crash = crashes[97]
145
        self.assertEqual(Crash.objects.all().count(), 200)
146
147
        extra_meta = dict(count=98, reason='size_is_exceeded', meta=True, log_id='36446dc3-ae7c-42ad-ae4e-6a826dcf0a00',
148
                          model='Crash', size='979.0 MB')
149
        log_extra_msg = add_extra_to_log_message('Automatic cleanup', extra=extra_meta)
150
151
        extra = dict(Crash_id=deleted_crash.id, element_created=deleted_crash.created.strftime("%d. %B %Y %I:%M%p"),
152
                     signature=deleted_crash.signature, userid=deleted_crash.userid, appid=deleted_crash.appid,
153
                     log_id='36446dc3-ae7c-42ad-ae4e-6a826dcf0a00')
154
        log_msg = add_extra_to_log_message('Automatic cleanup element', extra=extra)
155
156
        mocked_logger = mocked_get_logger.return_value
157
        with patch('uuid.uuid4') as mocked_uuid4:
158
            mocked_uuid4.side_effect = (uuid.UUID('36446dc3-ae7c-42ad-ae4e-6a826dcf0a%02d' % x) for x in range(100))
159
            auto_delete_size_is_exceeded()
160
161
        self.assertEqual(mocked_logger.info.call_count, 99)
162
        mocked_logger.info.assert_any_call(log_extra_msg)
163
        mocked_logger.info.assert_any_call(log_msg)
164
165
    @freeze_time("2012-12-21 12:00:00")
166
    @patch('logging.getLogger')
@@ 248-273 (lines=26) @@
245
        mocked_logger.info.assert_any_call(log_extra_msg)
246
        mocked_logger.info.assert_any_call(log_msg)
247
248
    @freeze_time("2012-12-21 12:00:00")
249
    @patch('logging.getLogger')
250
    @is_private()
251
    def test_symbols(self, mocked_get_logger):
252
        storage_with_spaces_instance._setup()
253
        gpm['Feedback__limit_size'] = 1
254
        symbols_size = 100*1024*1023
255
        symbols = SymbolsFactory.create_batch(20, file_size=symbols_size)
256
        deleted_symbols = symbols[7]
257
        self.assertEqual(Symbols.objects.count(), 20)
258
259
        extra_meta = dict(count=10, reason='manual', meta=True, log_id='36446dc3-ae7c-42ad-ae4e-6a826dcf0a00',
260
                          model='Symbols', limit_duplicated=None, limit_size=1, limit_days=None, size='999.0 MB')
261
        log_extra_msg = add_extra_to_log_message('Manual cleanup', extra=extra_meta)
262
263
        extra = dict(Symbols_id=deleted_symbols.id, element_created=deleted_symbols.created.strftime("%d. %B %Y %I:%M%p"),
264
                     log_id='36446dc3-ae7c-42ad-ae4e-6a826dcf0a00')
265
        log_msg = add_extra_to_log_message('Manual cleanup element', extra=extra)
266
        mocked_logger = mocked_get_logger.return_value
267
268
        with patch('uuid.uuid4') as mocked_uuid4:
269
            mocked_uuid4.side_effect = (uuid.UUID('36446dc3-ae7c-42ad-ae4e-6a826dcf0a%02d' % x) for x in range(100))
270
            deferred_manual_cleanup(['crash', 'Symbols'], limit_size=1)
271
        self.assertEqual(mocked_logger.info.call_count, 11)
272
        mocked_logger.info.assert_any_call(log_extra_msg)
273
        mocked_logger.info.assert_any_call(log_msg)
274
275
    @freeze_time("2012-12-21 12:00:00")
276
    @patch('logging.getLogger')
@@ 165-190 (lines=26) @@
162
        mocked_logger.info.assert_any_call(log_extra_msg)
163
        mocked_logger.info.assert_any_call(log_msg)
164
165
    @freeze_time("2012-12-21 12:00:00")
166
    @patch('logging.getLogger')
167
    @is_private()
168
    def test_feedbacks(self, mocked_get_logger):
169
        gpm['Feedback__limit_size'] = 1
170
        feedback_size = 10*1024*1023
171
        feedbacks = FeedbackFactory.create_batch(200, screenshot_size=feedback_size, system_logs_size=0, attached_file_size=0,
172
                                                 blackbox_size=0)
173
        deleted_feedback = feedbacks[97]
174
        self.assertEqual(Feedback.objects.all().count(), 200)
175
176
        extra_meta = dict(count=98, reason='size_is_exceeded', meta=True, log_id='36446dc3-ae7c-42ad-ae4e-6a826dcf0a00',
177
                          model='Feedback', size='979.0 MB')
178
        log_extra_msg = add_extra_to_log_message('Automatic cleanup', extra=extra_meta)
179
180
        extra = dict(Feedback_id=deleted_feedback.id, element_created=deleted_feedback.created.strftime("%d. %B %Y %I:%M%p"),
181
                     log_id='36446dc3-ae7c-42ad-ae4e-6a826dcf0a00')
182
        log_msg = add_extra_to_log_message('Automatic cleanup element', extra=extra)
183
184
        mocked_logger = mocked_get_logger.return_value
185
        with patch('uuid.uuid4') as mocked_uuid4:
186
            mocked_uuid4.side_effect = (uuid.UUID('36446dc3-ae7c-42ad-ae4e-6a826dcf0a%02d' % x) for x in range(100))
187
            auto_delete_size_is_exceeded()
188
        self.assertEqual(mocked_logger.info.call_count, 99)
189
        mocked_logger.info.assert_any_call(log_extra_msg)
190
        mocked_logger.info.assert_any_call(log_msg)
191
192
193
class ManualCleanupTest(TestCase):
@@ 82-107 (lines=26) @@
79
80
81
class OldObjectsTest(TestCase):
82
    @patch('logging.getLogger')
83
    @is_private()
84
    def test_crashes(self, mocked_get_logger):
85
        gpm['Crash__limit_storage_days'] = 2
86
        with freeze_time("2012-12-21 12:00:00"):
87
            crashes = CrashFactory.create_batch(10, signature='test')
88
        deleted_crash = crashes[-1]
89
        self.assertEqual(Crash.objects.all().count(), 10)
90
91
        extra_meta = dict(count=10, reason='old', meta=True, log_id='36446dc3-ae7c-42ad-ae4e-6a826dcf0a00',
92
                          model='Crash', size='0 bytes')
93
        log_extra_msg = add_extra_to_log_message('Automatic cleanup', extra=extra_meta)
94
95
        extra = dict(Crash_id=deleted_crash.id, element_created=deleted_crash.created.strftime("%d. %B %Y %I:%M%p"),
96
                     signature=deleted_crash.signature, userid=deleted_crash.userid, appid=deleted_crash.appid,
97
                     log_id='36446dc3-ae7c-42ad-ae4e-6a826dcf0a00')
98
        log_msg = add_extra_to_log_message('Automatic cleanup element', extra=extra)
99
100
        mocked_logger = mocked_get_logger.return_value
101
        with patch('uuid.uuid4') as mocked_uuid4:
102
            mocked_uuid4.side_effect = (uuid.UUID('36446dc3-ae7c-42ad-ae4e-6a826dcf0a%02d' % x) for x in range(100))
103
            auto_delete_older_than()
104
105
        self.assertEqual(mocked_logger.info.call_count, 11)
106
        mocked_logger.info.assert_any_call(log_extra_msg)
107
        mocked_logger.info.assert_any_call(log_msg)
108
109
    @patch('logging.getLogger')
110
    @is_private()
@@ 53-78 (lines=26) @@
50
51
52
class DuplicatedCrashesTest(TestCase):
53
    @freeze_time("2012-12-21 12:00:00")
54
    @patch('logging.getLogger')
55
    @is_private()
56
    def test_crashes(self, mocked_get_logger):
57
        gpm['Crash__duplicate_number'] = 2
58
        crashes = CrashFactory.create_batch(10, signature='test')
59
        deleted_crash = crashes[7]
60
        self.assertEqual(Crash.objects.all().count(), 10)
61
62
        extra_meta = dict(count=8, reason='duplicated', meta=True, log_id='36446dc3-ae7c-42ad-ae4e-6a826dcf0a00',
63
                          model='Crash', size='0 bytes')
64
        log_extra_msg = add_extra_to_log_message('Automatic cleanup', extra=extra_meta)
65
66
        extra = dict(Crash_id=deleted_crash.id, element_created=deleted_crash.created.strftime("%d. %B %Y %I:%M%p"),
67
                     signature=deleted_crash.signature, userid=deleted_crash.userid, appid=deleted_crash.appid,
68
                     log_id='36446dc3-ae7c-42ad-ae4e-6a826dcf0a00')
69
        log_msg = add_extra_to_log_message('Automatic cleanup element', extra=extra)
70
71
        mocked_logger = mocked_get_logger.return_value
72
        with patch('uuid.uuid4') as mocked_uuid4:
73
            mocked_uuid4.side_effect = (uuid.UUID('36446dc3-ae7c-42ad-ae4e-6a826dcf0a%02d' % x) for x in range(100))
74
            auto_delete_duplicate_crashes()
75
76
        self.assertEqual(mocked_logger.info.call_count, 10)
77
        mocked_logger.info.assert_any_call(log_extra_msg)
78
        mocked_logger.info.assert_any_call(log_msg)
79
80
81
class OldObjectsTest(TestCase):
@@ 301-325 (lines=25) @@
298
        mocked_logger.info.assert_any_call(log_extra_msg)
299
        mocked_logger.info.assert_any_call(log_msg)
300
301
    @freeze_time("2012-12-21 12:00:00")
302
    @patch('logging.getLogger')
303
    @is_private()
304
    def test_sparkle_versions(self, mocked_get_logger):
305
        gpm['SparkleVersion__limit_size'] = 1
306
        version_size = 1000*1024*1023
307
        versions = SparkleVersionFactory.create_batch(2, file_size=version_size)
308
        deleted_version = versions[0]
309
        self.assertEqual(SparkleVersion.objects.count(), 2)
310
311
        extra_meta = dict(count=1, reason='manual', meta=True, log_id='36446dc3-ae7c-42ad-ae4e-6a826dcf0a00',
312
                          model='SparkleVersion', limit_duplicated=None, limit_size=1, limit_days=None, size='999.0 MB')
313
        log_extra_msg = add_extra_to_log_message('Manual cleanup', extra=extra_meta)
314
315
        extra = dict(SparkleVersion_id=deleted_version.id, element_created=deleted_version.created.strftime("%d. %B %Y %I:%M%p"),
316
                     log_id='36446dc3-ae7c-42ad-ae4e-6a826dcf0a00')
317
        log_msg = add_extra_to_log_message('Manual cleanup element', extra=extra)
318
        mocked_logger = mocked_get_logger.return_value
319
320
        with patch('uuid.uuid4') as mocked_uuid4:
321
            mocked_uuid4.side_effect = (uuid.UUID('36446dc3-ae7c-42ad-ae4e-6a826dcf0a%02d' % x) for x in range(100))
322
            deferred_manual_cleanup(['sparkle', 'SparkleVersion'], limit_size=1)
323
        self.assertEqual(mocked_logger.info.call_count, 2)
324
        mocked_logger.info.assert_any_call(log_extra_msg)
325
        mocked_logger.info.assert_any_call(log_msg)
326
327
328
class DeleteDanglingTest(TestCase):
@@ 275-299 (lines=25) @@
272
        mocked_logger.info.assert_any_call(log_extra_msg)
273
        mocked_logger.info.assert_any_call(log_msg)
274
275
    @freeze_time("2012-12-21 12:00:00")
276
    @patch('logging.getLogger')
277
    @is_private()
278
    def test_omaha_versions(self, mocked_get_logger):
279
        gpm['Version__limit_size'] = 1
280
        version_size = 1000*1024*1023
281
        versions = VersionFactory.create_batch(2, file_size=version_size)
282
        deleted_version = versions[0]
283
        self.assertEqual(Version.objects.count(), 2)
284
285
        extra_meta = dict(count=1, reason='manual', meta=True, log_id='36446dc3-ae7c-42ad-ae4e-6a826dcf0a00',
286
                          model='Version', limit_duplicated=None, limit_size=1, limit_days=None, size='999.0 MB')
287
        log_extra_msg = add_extra_to_log_message('Manual cleanup', extra=extra_meta)
288
289
        extra = dict(Version_id=deleted_version.id, element_created=deleted_version.created.strftime("%d. %B %Y %I:%M%p"),
290
                     log_id='36446dc3-ae7c-42ad-ae4e-6a826dcf0a00')
291
        log_msg = add_extra_to_log_message('Manual cleanup element', extra=extra)
292
        mocked_logger = mocked_get_logger.return_value
293
294
        with patch('uuid.uuid4') as mocked_uuid4:
295
            mocked_uuid4.side_effect = (uuid.UUID('36446dc3-ae7c-42ad-ae4e-6a826dcf0a%02d' % x) for x in range(100))
296
            deferred_manual_cleanup(['omaha', 'Version'], limit_size=1)
297
        self.assertEqual(mocked_logger.info.call_count, 2)
298
        mocked_logger.info.assert_any_call(log_extra_msg)
299
        mocked_logger.info.assert_any_call(log_msg)
300
301
    @freeze_time("2012-12-21 12:00:00")
302
    @patch('logging.getLogger')