1#!/usr/bin/env python 2# This Source Code Form is subject to the terms of the Mozilla Public 3# License, v. 2.0. If a copy of the MPL was not distributed with this file, 4# You can obtain one at http://mozilla.org/MPL/2.0/. 5 6from __future__ import absolute_import 7 8import mock 9import mozunit 10 11import mozrunnertest 12 13 14class MozrunnerCrashTestCase(mozrunnertest.MozrunnerTestCase): 15 16 @mock.patch('mozcrash.log_crashes', return_value=2) 17 def test_crash_count_with_logger(self, log_crashes): 18 self.assertEqual(self.runner.crashed, 0) 19 self.assertEqual(self.runner.check_for_crashes(), 2) 20 self.assertEqual(self.runner.crashed, 2) 21 self.assertEqual(self.runner.check_for_crashes(), 2) 22 self.assertEqual(self.runner.crashed, 4) 23 24 log_crashes.return_value = 0 25 self.assertEqual(self.runner.check_for_crashes(), 0) 26 self.assertEqual(self.runner.crashed, 4) 27 28 @mock.patch('mozcrash.check_for_crashes', return_value=2) 29 def test_crash_count_without_logger(self, check_for_crashes): 30 self.runner.logger = None 31 32 self.assertEqual(self.runner.crashed, 0) 33 self.assertEqual(self.runner.check_for_crashes(), 2) 34 self.assertEqual(self.runner.crashed, 2) 35 self.assertEqual(self.runner.check_for_crashes(), 2) 36 self.assertEqual(self.runner.crashed, 4) 37 38 check_for_crashes.return_value = 0 39 self.assertEqual(self.runner.check_for_crashes(), 0) 40 self.assertEqual(self.runner.crashed, 4) 41 42 43if __name__ == '__main__': 44 mozunit.main() 45