def test_parse_input()

in aws/hhvm1/lambdas/test.py [0:0]


  def test_parse_input(self):
    debian = 'debian-9-stretch'
    ubuntu = 'ubuntu-19.04-disco'
    macos = next(iter(Config.macos_versions))
    self.assertEqual(
      parse_input.lambda_handler({}),
      {
        'buildInput': {
          'versions': [date.today().strftime('%Y.%m.%d')],
          'platforms': [],
          'activities': [],
          'debug': '',
        },
      },
    )
    self.assertEqual(
      parse_input.lambda_handler({
        'foo': ['4.2', 'a', '1.2a'],
        'bar': {'foo': '0.42.0', 'bar': 'MakeBinaryPackage'},
        'baz': '42',
      }),
      {
        'buildInput': {
          'versions': ['0.42.0'],
          'platforms': [],
          'activities': ['MakeBinaryPackage'],
          'debug': '',
        },
      },
    )
    self.assertEqual(
      parse_input.lambda_handler({'inputs': ['--fake-ec2']}),
      {
        'buildInput': {
          'versions': [date.today().strftime('%Y.%m.%d')],
          'platforms': [],
          'activities': [],
          'debug': 'fake_ec2',
        },
      },
    )
    self.assertEqual(
      parse_input.lambda_handler(
        f'4.26.1 {macos} foo {ubuntu} --skip-ec2 {debian}'
      ),
      {
        'buildInput': {
          'versions': ['4.26.1'],
          'platforms': [macos, ubuntu, debian],
          'activities': [],
          'debug': 'skip_ec2',
        },
      },
    )
    # --test also forces the correct step names
    self.assertEqual(
      parse_input.lambda_handler('4.42.4242 --test-build'),
      {
        'buildInput': {
          'versions': ['4.42.4242'],
          'platforms': [],
          'activities': ['MakeBinaryPackage', 'BuildAndPublishMacOS'],
          'debug': 'test_build',
        },
      },
    )
    self.assertEqual(
      parse_input.lambda_handler('4.42.4242 test MakeBinaryPackage'),
      {
        'buildInput': {
          'versions': ['4.42.4242'],
          'platforms': [],
          'activities': ['MakeBinaryPackage'],
          'debug': 'test_build',
        },
      },
    )
    with self.assertRaisesRegex(
      Exception,
      '^PublishSourceTarball is not a valid test build step$'
    ):
      parse_input.lambda_handler('4.42.4242 --test PublishSourceTarball')