示例#1
0
    def test_logrequest_path_build_type_override(self):
        # logrequest contains build event, overrid the type with an arg.
        with infra_libs.temporary_directory(prefix='common_test-') as tmpdir:
            outfile = os.path.join(tmpdir, 'out.bin')
            args = get_arguments([
                '--event-mon-run-type',
                'file',
                '--event-mon-output-file',
                outfile,
                '--event-mon-service-name',
                'thing',
                '--event-logrequest-path',
                os.path.join(DATA_DIR, 'build-foo-builder.bin'),
                '--build-event-build-number',
                '3',
                '--build-event-type',
                'STEP',
            ])
            self.assertEquals(args.event_mon_run_type, 'file')
            event_mon.process_argparse_options(args)
            common.process_argparse_options(args)
            self.assertTrue(common.send_build_event(args))

            # Now open the resulting file and check what was written
            with open(outfile, 'rb') as f:
                request = LogRequestLite.FromString(f.read())

        self.assertEqual(len(request.log_event), 1)
        event = ChromeInfraEvent.FromString(
            request.log_event[0].source_extension)
        self.assertEqual(event.build_event.host_name, 'myhostname')
        self.assertEqual(event.build_event.type, BuildEvent.STEP)
        self.assertEqual(event.build_event.build_number, 3)
        self.assertEqual(event.timestamp_kind, ChromeInfraEvent.BEGIN)
示例#2
0
    def test_logrequest_path_service_type_override(self):
        with infra_libs.temporary_directory(prefix='common_test-') as tmpdir:
            outfile = os.path.join(tmpdir, 'out.bin')
            args = get_arguments([
                '--event-mon-run-type',
                'file',
                '--event-mon-output-file',
                outfile,
                '--event-mon-service-name',
                'thing',
                '--event-logrequest-path',
                os.path.join(DATA_DIR, 'service-bar-service.bin'),
                '--service-event-type',
                'STOP',
            ])
            self.assertEquals(args.event_mon_run_type, 'file')
            event_mon.process_argparse_options(args)
            common.process_argparse_options(args)
            self.assertTrue(common.send_service_event(args))

            # Now open the resulting file and check what was written
            with open(outfile, 'rb') as f:
                request = LogRequestLite.FromString(f.read())

        self.assertEqual(len(request.log_event), 1)
        event = ChromeInfraEvent.FromString(
            request.log_event[0].source_extension)
        self.assertEqual(event.event_source.host_name, 'myhostname')
        self.assertEqual(event.service_event.type, ServiceEvent.STOP)
        self.assertEqual(event.timestamp_kind, ChromeInfraEvent.END)
示例#3
0
    def test_logrequest_with_bad_content(self):
        orig_event = event_mon.get_default_event()
        self.assertIsNot(orig_event, None)

        opts = _parse_arguments([])
        opts.event_logrequest_path = os.path.join(DATA_DIR, 'garbage')
        with self.assertRaises(google.protobuf.message.DecodeError):
            common.process_argparse_options(opts)
示例#4
0
  def test_logrequest_with_no_log_event(self):
    orig_event = event_mon.get_default_event()
    self.assertIsNot(orig_event, None)

    opts = _parse_arguments([])
    opts.event_logrequest_path = os.path.join(DATA_DIR, 'logrequest-empty.bin')
    with self.assertRaises(ValueError):
      common.process_argparse_options(opts)
示例#5
0
    def test_logrequest_missing_args(self):
        orig_event = event_mon.get_default_event()
        self.assertIsNot(orig_event, None)

        opts = _parse_arguments([])
        opts.event_logrequest_path = None
        common.process_argparse_options(opts)

        self.assertEqual(orig_event, event_mon.get_default_event())
示例#6
0
  def test_logrequest_with_valid_file(self):
    orig_event = event_mon.get_default_event()
    self.assertIsNot(orig_event, None)

    opts = _parse_arguments([])
    opts.event_logrequest_path = os.path.join(DATA_DIR, 'logrequest-build.bin')
    opts.service_event_type = None
    opts.build_event_type = None
    common.process_argparse_options(opts)

    new_event = event_mon.get_default_event()
    self.assertNotEqual(orig_event, new_event)
    self.assertEqual(new_event.build_event.type, BuildEvent.BUILD)
示例#7
0
 def test_logrequest_path_service_build_conflict(self):
   with infra_libs.temporary_directory(prefix='common_test-') as tmpdir:
     outfile = os.path.join(tmpdir, 'out.bin')
     args = get_arguments(
       ['--event-mon-run-type', 'file',
        '--event-mon-output-file', outfile,
        '--event-mon-service-name', 'thing',
        '--event-logrequest-path',
            os.path.join(DATA_DIR, 'service-bar-service.bin'),
        '--build-event-type', 'BUILD',
       ])
     self.assertEquals(args.event_mon_run_type, 'file')
     event_mon.process_argparse_options(args)
     with self.assertRaises(ValueError):
       common.process_argparse_options(args)
示例#8
0
 def test_logrequest_path_service_build_and_service(self):
   # The logrequest provided contains both a service and a build type,
   # which is invalid.
   with infra_libs.temporary_directory(prefix='common_test-') as tmpdir:
     outfile = os.path.join(tmpdir, 'out.bin')
     args = get_arguments(
       ['--event-mon-run-type', 'file',
        '--event-mon-output-file', outfile,
        '--event-mon-service-name', 'thing',
        '--event-logrequest-path',
            os.path.join(DATA_DIR, 'build-and-service-event.bin'),
       ])
     self.assertEquals(args.event_mon_run_type, 'file')
     event_mon.process_argparse_options(args)
     with self.assertRaises(ValueError):
       common.process_argparse_options(args)
示例#9
0
 def test_logrequest_path_build_service_conflicts(self):
   # logrequest contains build event, provides service event as arg
   with infra_libs.temporary_directory(prefix='common_test-') as tmpdir:
     outfile = os.path.join(tmpdir, 'out.bin')
     args = get_arguments(
       ['--event-mon-run-type', 'file',
        '--event-mon-output-file', outfile,
        '--event-mon-service-name', 'thing',
        '--event-logrequest-path',
            os.path.join(DATA_DIR, 'build-foo-builder.bin'),
        '--build-event-build-number', '3',
        '--service-event-type', 'START',
       ])
     self.assertEquals(args.event_mon_run_type, 'file')
     event_mon.process_argparse_options(args)
     with self.assertRaises(ValueError):
       common.process_argparse_options(args)
示例#10
0
 def process_argparse_options(self, opts):
   super(SendMonitoringEvent, self).process_argparse_options(opts)
   common.process_argparse_options(opts)
示例#11
0
 def test_logrequest_with_missing_file(self):
     opts = _parse_arguments([])
     opts.event_logrequest_path = os.path.join(DATA_DIR,
                                               'non-existent-file.bin')
     with self.assertRaises(IOError):
         common.process_argparse_options(opts)