Code Duplication    Length = 25-27 lines in 8 locations

omaha_server/omaha/tests/test_tasks.py 8 locations

@@ 215-240 (lines=26) @@
212
213
        with patch('uuid.uuid4') as mocked_uuid4:
214
            mocked_uuid4.side_effect = (uuid.UUID('36446dc3-ae7c-42ad-ae4e-6a826dcf0a%02d' % x) for x in range(100))
215
            deferred_manual_cleanup(['crash', 'Crash'], limit_duplicated=2)
216
217
        self.assertEqual(mocked_logger.info.call_count, 10)
218
        mocked_logger.info.assert_any_call(log_extra_msg)
219
        mocked_logger.info.assert_any_call(log_msg)
220
221
    @freeze_time("2012-12-21 12:00:00")
222
    @patch('logging.getLogger')
223
    @is_private()
224
    def test_feedbacks(self, mocked_get_logger):
225
        gpm['Feedback__limit_size'] = 1
226
        feedback_size = 100*1024*1023
227
        feedbacks = FeedbackFactory.create_batch(20, screenshot_size=feedback_size, system_logs_size=0, attached_file_size=0,
228
                                                 blackbox_size=0)
229
        deleted_feedback = feedbacks[7]
230
        self.assertEqual(Feedback.objects.count(), 20)
231
232
        extra_meta = dict(count=10, reason='manual', meta=True, log_id='36446dc3-ae7c-42ad-ae4e-6a826dcf0a00',
233
                          model='Feedback', limit_duplicated=None, limit_size=1, limit_days=None, size='999.0 MB')
234
        log_extra_msg = add_extra_to_log_message('Manual cleanup', extra=extra_meta)
235
236
        extra = dict(Feedback_id=deleted_feedback.id, element_created=deleted_feedback.created.strftime("%d. %B %Y %I:%M%p"),
237
                     log_id='36446dc3-ae7c-42ad-ae4e-6a826dcf0a00')
238
        log_msg = add_extra_to_log_message('Manual cleanup element', extra=extra)
239
        mocked_logger = mocked_get_logger.return_value
240
241
        with patch('uuid.uuid4') as mocked_uuid4:
242
            mocked_uuid4.side_effect = (uuid.UUID('36446dc3-ae7c-42ad-ae4e-6a826dcf0a%02d' % x) for x in range(100))
243
            deferred_manual_cleanup(['feedback', 'Feedback'], limit_size=1)
@@ 188-213 (lines=26) @@
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):
194
    @freeze_time("2012-12-21 12:00:00")
195
    @patch('logging.getLogger')
196
    @is_private()
197
    def test_crashes(self, mocked_get_logger):
198
        gpm['Crash__duplicate_number'] = 2
199
        crashes = CrashFactory.create_batch(10, signature='test')
200
        deleted_crash = crashes[7]
201
        self.assertEqual(Crash.objects.count(), 10)
202
203
        extra_meta = dict(count=8, reason='manual', meta=True, log_id='36446dc3-ae7c-42ad-ae4e-6a826dcf0a00',
204
                          model='Crash', limit_duplicated=2, limit_size=None, limit_days=None, size='0 bytes')
205
        log_extra_msg = add_extra_to_log_message('Manual cleanup', extra=extra_meta)
206
207
        extra = dict(Crash_id=deleted_crash.id, element_created=deleted_crash.created.strftime("%d. %B %Y %I:%M%p"),
208
                     signature=deleted_crash.signature, userid=deleted_crash.userid, appid=deleted_crash.appid,
209
                     log_id='36446dc3-ae7c-42ad-ae4e-6a826dcf0a00')
210
        log_msg = add_extra_to_log_message('Manual cleanup element', extra=extra)
211
        mocked_logger = mocked_get_logger.return_value
212
213
        with patch('uuid.uuid4') as mocked_uuid4:
214
            mocked_uuid4.side_effect = (uuid.UUID('36446dc3-ae7c-42ad-ae4e-6a826dcf0a%02d' % x) for x in range(100))
215
            deferred_manual_cleanup(['crash', 'Crash'], limit_duplicated=2)
216
@@ 294-318 (lines=25) @@
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')
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))
@@ 268-292 (lines=25) @@
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')
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))
@@ 131-157 (lines=27) @@
128
            mocked_uuid4.side_effect = (uuid.UUID('36446dc3-ae7c-42ad-ae4e-6a826dcf0a%02d' % x) for x in range(100))
129
            auto_delete_older_than()
130
131
        self.assertEqual(mocked_logger.info.call_count, 11)
132
        mocked_logger.info.assert_any_call(log_extra_msg)
133
        mocked_logger.info.assert_any_call(log_msg)
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
@@ 159-184 (lines=26) @@
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')
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()
@@ 76-101 (lines=26) @@
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):
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
@@ 47-72 (lines=26) @@
44
    auto_delete_dangling_files
45
)
46
from omaha_server.utils import add_extra_to_log_message
47
from sparkle.models import SparkleVersion
48
from sparkle.factories import SparkleVersionFactory
49
from omaha.tasks import get_prefix
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