def test_transform(self): config = self.get_standard_config() sub = SubmitterApp(config) sub._setup_source_and_destination() crash_id = '86b58ff2-9708-487d-bfc4-9dac32121214' fake_raw_crash = DotDict() mocked_get_raw_crash = mock.Mock(return_value=fake_raw_crash) sub.source.get_raw_crash = mocked_get_raw_crash fake_dump = {'upload_file_minidump': 'fake dump'} mocked_get_raw_dumps_as_files = mock.Mock(return_value=fake_dump) sub.source.get_raw_dumps_as_files = mocked_get_raw_dumps_as_files sub.destination.save_raw_crash = mock.Mock() sub.transform(crash_id) sub.source.get_raw_crash.assert_called_with(crash_id) sub.source.get_raw_dumps_as_files.assert_called_with(crash_id) sub.destination.save_raw_crash_with_file_dumps.assert_called_with( fake_raw_crash, fake_dump, crash_id )
def test_source_iterator(self): # Test with number of submissions equal to all # It raises StopIterations after all the elements were called config = self.get_standard_config() config.submitter.number_of_submissions = "all" sub = SubmitterApp(config) sub._setup_source_and_destination() sub._setup_task_manager() itera = sub.source_iterator() sequence_generator = sequencer(1, 2, 3) sub.source.new_crashes = mock.Mock(side_effect=sequence_generator) eq_(itera.next(), ((1,), {})) eq_(itera.next(), ((2,), {})) eq_(itera.next(), ((3,), {})) assert_raises(StopIteration, itera.next) # Test with number of submissions equal to forever # It never raises StopIterations config = self.get_standard_config() config.submitter.number_of_submissions = "forever" sub = SubmitterApp(config) sub._setup_source_and_destination() itera = sub.source_iterator() sequence_generator = sequencer(1, 2, 3) sub.source.new_crashes = mock.Mock(side_effect=sequence_generator) eq_(itera.next(), ((1,), {})) eq_(itera.next(), ((2,), {})) eq_(itera.next(), ((3,), {})) eq_(itera.next(), ((1,), {})) eq_(itera.next(), ((2,), {})) eq_(itera.next(), ((3,), {})) # Test with number of submissions equal to an integer > number of items # It raises StopIterations after some number of elements were called config = self.get_standard_config() config.submitter.number_of_submissions = "5" sub = SubmitterApp(config) sub._setup_source_and_destination() sub._setup_task_manager() itera = sub.source_iterator() sequence_generator = sequencer(1, 2, 3) sub.source.new_crashes = mock.Mock(side_effect=sequence_generator) eq_(itera.next(), ((1,), {})) eq_(itera.next(), ((2,), {})) eq_(itera.next(), ((3,), {})) eq_(itera.next(), ((1,), {})) eq_(itera.next(), ((2,), {})) assert_raises(StopIteration, itera.next) # Test with number of submissions equal to an integer < number of items # It raises StopIterations after some number of elements were called config = self.get_standard_config() config.submitter.number_of_submissions = "1" sub = SubmitterApp(config) sub._setup_source_and_destination() sub._setup_task_manager() itera = sub.source_iterator() sequence_generator = sequencer(1, 2, 3) sub.source.new_crashes = mock.Mock(side_effect=sequence_generator) eq_(itera.next(), ((1,), {})) assert_raises(StopIteration, itera.next)
def test_source_iterator(self): # Test with number of submissions equal to all # It raises StopIterations after all the elements were called config = self.get_standard_config() config.submitter.number_of_submissions = "all" sub = SubmitterApp(config) sub._setup_source_and_destination() sub._setup_task_manager() sub.source.new_crashes = lambda: iter([1, 2, 3]) itera = sub.source_iterator() eq_(itera.next(), ((1, ), {})) eq_(itera.next(), ((2, ), {})) eq_(itera.next(), ((3, ), {})) assert_raises(StopIteration, itera.next) # Test with number of submissions equal to forever # It never raises StopIterations config = self.get_standard_config() config.submitter.number_of_submissions = "forever" sub = SubmitterApp(config) sub._setup_source_and_destination() itera = sub.source_iterator() sub.source.new_crashes = lambda: iter([1, 2, 3]) eq_(itera.next(), ((1, ), {})) eq_(itera.next(), ((2, ), {})) eq_(itera.next(), ((3, ), {})) eq_(itera.next(), ((1, ), {})) eq_(itera.next(), ((2, ), {})) eq_(itera.next(), ((3, ), {})) # Test with number of submissions equal to an integer > number of items # It raises StopIterations after some number of elements were called config = self.get_standard_config() config.submitter.number_of_submissions = "5" sub = SubmitterApp(config) sub._setup_source_and_destination() sub._setup_task_manager() itera = sub.source_iterator() sub.source.new_crashes = lambda: iter([1, 2, 3]) eq_(itera.next(), ((1, ), {})) eq_(itera.next(), ((2, ), {})) eq_(itera.next(), ((3, ), {})) eq_(itera.next(), ((1, ), {})) eq_(itera.next(), ((2, ), {})) assert_raises(StopIteration, itera.next) # Test with number of submissions equal to an integer < number of items # It raises StopIterations after some number of elements were called config = self.get_standard_config() config.submitter.number_of_submissions = "1" sub = SubmitterApp(config) sub._setup_source_and_destination() sub._setup_task_manager() itera = sub.source_iterator() sub.source.new_crashes = lambda: iter([1, 2, 3]) eq_(itera.next(), ((1, ), {})) assert_raises(StopIteration, itera.next)
def test_setup(self): config = self.get_standard_config() sub = SubmitterApp(config) eq_(sub.config, config) eq_(sub.config.logger, config.logger)
def test_new_crash_source_iterator(self): # Test with number of submissions equal to all # It raises StopIterations after all the elements were called config = self.get_new_crash_source_config() config.number_of_submissions = "all" sub = SubmitterApp(config) sub._setup_source_and_destination() sub._setup_task_manager() config.new_crash_source.new_crash_source_class.return_value \ .new_crashes = lambda: iter([1, 2, 3]) itera = sub.source_iterator() eq_(itera.next(), ((1,), {})) eq_(itera.next(), ((2,), {})) eq_(itera.next(), ((3,), {})) assert_raises(StopIteration, itera.next) # Test with number of submissions equal to forever # It never raises StopIterations config = self.get_new_crash_source_config() config.number_of_submissions = "forever" sub = SubmitterApp(config) sub._setup_source_and_destination() sub._setup_task_manager() itera = sub.source_iterator() # setup a fake iter using two form of the data to ensure it deals # with both forms correctly. config.new_crash_source.new_crash_source_class.return_value \ .new_crashes = lambda: iter([1, ((2, ), {}), 3]) eq_(itera.next(), ((1,), {})) eq_(itera.next(), ((2,), {})) eq_(itera.next(), ((3,), {})) eq_(itera.next(), ((1,), {})) eq_(itera.next(), ((2,), {})) eq_(itera.next(), ((3,), {})) # Test with number of submissions equal to an integer > number of items # It raises StopIterations after some number of elements were called config = self.get_new_crash_source_config() config.number_of_submissions = "5" sub = SubmitterApp(config) sub._setup_source_and_destination() sub._setup_task_manager() itera = sub.source_iterator() config.new_crash_source.new_crash_source_class.return_value \ .new_crashes = lambda: iter([((1, ), {'finished_func': 1,}), 2, 3]) eq_(itera.next(), ((1,), {'finished_func': 1,})) eq_(itera.next(), ((2,), {})) eq_(itera.next(), ((3,), {})) eq_(itera.next(), ((1,), {'finished_func': 1,})) eq_(itera.next(), ((2,), {})) assert_raises(StopIteration, itera.next) # Test with number of submissions equal to an integer < number of items # It raises StopIterations after some number of elements were called config = self.get_new_crash_source_config() config.number_of_submissions = "1" sub = SubmitterApp(config) sub._setup_source_and_destination() sub._setup_task_manager() itera = sub.source_iterator() config.new_crash_source.new_crash_source_class.return_value \ .new_crashes = lambda: iter([1, 2, 3]) eq_(itera.next(), ((1,), {})) assert_raises(StopIteration, itera.next) # Test with number of submissions equal to an integer < number of items # AND the new_crashes iter returning an args, kwargs form rather than # than a crash_id # It raises StopIterations after some number of elements were called config = self.get_new_crash_source_config() config.number_of_submissions = "2" sub = SubmitterApp(config) sub._setup_source_and_destination() sub._setup_task_manager() itera = sub.source_iterator() config.new_crash_source.new_crash_source_class.return_value \ .new_crashes = lambda: iter( [ (((1, ['./1.json', './1.dump', './1.other.dump']), ), {}), (((2, ['./2.json', './1.dump']), ), {}) ] ) eq_( itera.next(), (((1, ['./1.json', './1.dump', './1.other.dump']), ), {}) ) eq_( itera.next(), (((2, ['./2.json', './1.dump']), ), {}) ) assert_raises(StopIteration, itera.next)
def test_new_crash_source_iterator(self): # Test with number of submissions equal to all # It raises StopIterations after all the elements were called config = self.get_new_crash_source_config() config.submitter.number_of_submissions = "all" sub = SubmitterApp(config) sub._setup_source_and_destination() sub._setup_task_manager() config.new_crash_source.new_crash_source_class.return_value \ .new_crashes = lambda: iter([1, 2, 3]) itera = sub.source_iterator() eq_(itera.next(), ((1, ), {})) eq_(itera.next(), ((2, ), {})) eq_(itera.next(), ((3, ), {})) assert_raises(StopIteration, itera.next) # Test with number of submissions equal to forever # It never raises StopIterations config = self.get_new_crash_source_config() config.submitter.number_of_submissions = "forever" sub = SubmitterApp(config) sub._setup_source_and_destination() itera = sub.source_iterator() # setup a fake iter using two form of the data to ensure it deals # with both forms correctly. config.new_crash_source.new_crash_source_class.return_value \ .new_crashes = lambda: iter([1, ((2, ), {}), 3]) eq_(itera.next(), ((1, ), {})) eq_(itera.next(), ((2, ), {})) eq_(itera.next(), ((3, ), {})) eq_(itera.next(), ((1, ), {})) eq_(itera.next(), ((2, ), {})) eq_(itera.next(), ((3, ), {})) # Test with number of submissions equal to an integer > number of items # It raises StopIterations after some number of elements were called config = self.get_new_crash_source_config() config.submitter.number_of_submissions = "5" sub = SubmitterApp(config) sub._setup_source_and_destination() sub._setup_task_manager() itera = sub.source_iterator() config.new_crash_source.new_crash_source_class.return_value \ .new_crashes = lambda: iter([((1, ), {'finished_func': 1,}), 2, 3]) eq_(itera.next(), ((1, ), { 'finished_func': 1, })) eq_(itera.next(), ((2, ), {})) eq_(itera.next(), ((3, ), {})) eq_(itera.next(), ((1, ), { 'finished_func': 1, })) eq_(itera.next(), ((2, ), {})) assert_raises(StopIteration, itera.next) # Test with number of submissions equal to an integer < number of items # It raises StopIterations after some number of elements were called config = self.get_new_crash_source_config() config.submitter.number_of_submissions = "1" sub = SubmitterApp(config) sub._setup_source_and_destination() sub._setup_task_manager() itera = sub.source_iterator() config.new_crash_source.new_crash_source_class.return_value \ .new_crashes = lambda: iter([1, 2, 3]) eq_(itera.next(), ((1, ), {})) assert_raises(StopIteration, itera.next)