コード例 #1
0
ファイル: test_presets.py プロジェクト: lambdaxymox/swift
    def test_get_preset_raw(self):
        parser = PresetParser()
        parser.read_string(INTERPOLATED_PRESET)

        preset = parser.get_preset('test', raw=True)
        self.assertEqual(preset.options,
                         [('install-symroot', '%(install_symroot)s')])
コード例 #2
0
ファイル: test_presets.py プロジェクト: lambdaxymox/swift
    def test_duplicate_preset_error(self):
        parser = PresetParser()

        with self.assertRaises(presets.DuplicatePresetError) as cm:
            parser.read_string(DUPLICATE_PRESET_NAMES)

        e = cm.exception
        self.assertEqual(e.preset_name, 'test')
コード例 #3
0
ファイル: test_presets.py プロジェクト: lambdaxymox/swift
    def test_get_missing_preset(self):
        parser = PresetParser()

        with self.assertRaises(presets.PresetNotFoundError) as cm:
            parser.get_preset('test')

        e = cm.exception
        self.assertEqual(e.preset_name, 'test')
コード例 #4
0
    def test_read_invalid_files(self):
        parser = PresetParser()

        with self.assertRaises(presets.UnparsedFilesError) as cm:
            parser.read(['nonsense-presets.ini'])

        e = cm.exception
        self.assertListEqual(e.filenames, ['nonsense-presets.ini'])
コード例 #5
0
ファイル: test_presets.py プロジェクト: lambdaxymox/swift
    def test_expand_option_name(self):
        parser = PresetParser()
        parser.read_string(EXPAND_OPTION_NAME)

        preset = parser.get_preset('test', vars={'my_option': 'macos'})
        self.assertEqual(preset.options, [
            ('macos', None),
        ])
コード例 #6
0
ファイル: test_presets.py プロジェクト: lambdaxymox/swift
    def test_duplicate_option_error(self):
        parser = PresetParser()

        with self.assertRaises(presets.DuplicateOptionError) as cm:
            parser.read_string(DUPLICATE_PRESET_OPTIONS)

        e = cm.exception
        self.assertEqual(e.preset_name, 'test')
        self.assertEqual(e.option, 'ios')
コード例 #7
0
ファイル: test_presets.py プロジェクト: lambdaxymox/swift
    def test_read_invalid_files(self):
        parser = PresetParser()

        with self.assertRaises(presets.UnparsedFilesError) as cm:
            parser.read_files(['nonsense-presets.ini'])

        e = cm.exception
        unparsed = e.unparsed_files
        self.assertEqual(len(unparsed), 1)
        self.assertEqual(unparsed[0].filename, 'nonsense-presets.ini')
        self.assertIsInstance(unparsed[0].reason, IOError)
コード例 #8
0
ファイル: test_presets.py プロジェクト: lambdaxymox/swift
    def __new__(cls, name, bases, attrs):
        preset_parser = PresetParser()
        preset_parser.read_files(PRESET_FILES)

        # Generate tests for each preset
        for preset_name in preset_parser.preset_names:
            test_name = 'test_get_preset_' + preset_name
            attrs[test_name] = cls.generate_get_preset_test(
                preset_parser, preset_name)

        return super(TestPresetParserMeta,
                     cls).__new__(cls, name, bases, attrs)
コード例 #9
0
    def test_duplicate_preset_error(self):
        # Skip test if using the Python 2 ConfigParser module
        if not hasattr(configparser, 'DuplicateOptionError'):
            return

        parser = PresetParser()

        with self.assertRaises(presets.DuplicatePresetError) as cm:
            parser.read_string(DUPLICATE_PRESET_NAMES)

        e = cm.exception
        self.assertEqual(e.preset_name, 'test')
コード例 #10
0
ファイル: test_presets.py プロジェクト: lambdaxymox/swift
    def test_read_string(self):
        parser = PresetParser()
        parser.read_string(SAMPLE_PRESET)

        preset = parser.get_preset('sample', vars={'install_symroot': '/tmp'})
        self.assertIsNotNone(preset)
        self.assertEqual(preset.name, 'sample')
        self.assertListEqual(preset.options, [('ios', None), ('tvos', None),
                                              ('watchos', None),
                                              ('test', None),
                                              ('validation-test', None),
                                              ('lit-args', '-v'),
                                              ('compiler-vendor', 'apple'),
                                              ('verbose-build', None),
                                              ('build-ninja', None),
                                              ('install-symroot', '/tmp')])
コード例 #11
0
def _load_all_presets(preset_files):
    parser = PresetParser()
    parser.read_files(preset_files)

    # Hack to filter out mixins which are not expected to be valid presets
    preset_names = [
        name for name in parser.preset_names if not name.startswith('mixin')
    ]

    presets = dict()
    for name in preset_names:
        preset = parser.get_preset(name, vars=PRESET_DEFAULTS)
        args = migration.migrate_swift_sdks(preset.args)

        presets[name] = args

    return presets
コード例 #12
0
ファイル: test_presets.py プロジェクト: sjavora/swift
    def test_mixin_expansion_preserves_argument_order(self):
        """Mixins should be expanded in-place.
        """

        parser = PresetParser()

        parser.read_string(MIXIN_ORDER_PRESETS)

        preset = parser.get_preset('test')
        self.assertListEqual(preset.args, [
            '--first-opt=1',

            # Mixin arguments
            '--first-opt=0',
            '--second-opt=1',

            '--second-opt=2',
        ])
コード例 #13
0
ファイル: test_presets.py プロジェクト: lambdaxymox/swift
    def test_preset_names(self):
        parser = PresetParser()

        parser.read_string('[preset: foo]')
        parser.read_string('[preset: bar]')
        parser.read_string('[preset: baz]')

        self.assertEqual(set(parser.preset_names), set(['foo', 'bar', 'baz']))
コード例 #14
0
ファイル: test_presets.py プロジェクト: lambdaxymox/swift
    def test_interpolation_error(self):
        parser = PresetParser()
        parser.read_string(INTERPOLATED_PRESET)

        with self.assertRaises(presets.InterpolationError) as cm:
            parser.get_preset('test')

        e = cm.exception
        self.assertEqual(e.preset_name, 'test')
        self.assertEqual(e.option, 'install-symroot')
        self.assertEqual(e.rawval, '%(install_symroot)s')
        self.assertEqual(e.reference, 'install_symroot')
コード例 #15
0
ファイル: test_presets.py プロジェクト: lambdaxymox/swift
 def test_read_file(self):
     parser = PresetParser()
     parser.read_file(PRESET_FILES[0])
コード例 #16
0
 def test_read(self):
     parser = PresetParser()
     parser.read(PRESET_FILES)
コード例 #17
0
ファイル: test_presets.py プロジェクト: lambdaxymox/swift
    def test_parser_ignores_non_preset_sections(self):
        parser = PresetParser()

        parser.read_string(IGNORED_SECTION)
        self.assertEqual(len(parser._presets), 0)