@@ 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 |