예제 #1
0
    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
        )
예제 #2
0
    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)
예제 #3
0
 def test_setup(self):
     config = self.get_standard_config()
     sub = SubmitterApp(config)
     eq_(sub.config, config)
     eq_(sub.config.logger, config.logger)
예제 #4
0
    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)