Exemple #1
0
    def _parse(self):
        sections = self._find_sections()

        parent = sections.get('parent')
        if parent:
            self.parent = parent_loads(parent.content, parent.line)
        self._old_parent = self.parent

        reqs = sections.get('requirements')
        if reqs:
            self.requirements = BlockVersionTable.loads(
                reqs.content, reqs.line)
        self._old_requirements = self.requirements.copy()

        # self.include_mapping = IncludesMapping.loads(includes)
        deps = sections.get('dependencies')
        if deps:
            self.dependencies = parse_deps_conf(deps.content, deps.line)

        hooks = sections.get('hooks')
        if hooks:
            hooks_deps = parse_deps_conf(hooks.content, hooks.line)
            self.dependencies.extend(hooks_deps)

        mains = sections.get('mains')
        if mains:
            self.mains = parse_mains_conf(mains.content, mains.line)

        tests = sections.get('tests')
        if tests:

            def test_line_parser(line):
                self.tests.append(line)

            parse(tests.content, test_line_parser, tests.line)

        paths = sections.get('paths')
        if paths:

            def path_line_parser(line):
                self.paths.append(line)

            parse(paths.content, path_line_parser, paths.line)

        data = sections.get('data')
        if data:
            self.data = parse_deps_conf(data.content, data.line)

        includes = sections.get('includes')
        if includes:
            self.includes = IncludesMapping.loads(includes.content,
                                                  includes.line)
Exemple #2
0
 def test_parses_file_with_negated_dependencies(self):
     text = r'''file.h + NULL'''
     deps = parse_deps_conf(text, 0)
     self.assertEquals(deps[0].pattern, 'file.h')
     self.assertEquals(deps[0].action, DependentConfiguration.ADD_FLAG)
     self.assertEquals(deps[0].dependencies, set())
     self.assertEquals(len(deps), 1)
Exemple #3
0
 def test_parses_file_with_list_depencendies(self):
     text = '''
     r1.h + !r2.cpp r3.cpp'''
     deps = parse_deps_conf(text, 0)
     self.assertEquals(deps[0], DependentConfiguration('r1.h', '+',
                              {DependencyConfiguration(True, 'r2.cpp'),
                              DependencyConfiguration(False, 'r3.cpp')}))
     self.assertEquals(len(deps), 1)
    def _parse(self):
        sections = self._find_sections()

        parent = sections.get('parent')
        if parent:
            self.parent = parent_loads(parent.content, parent.line)
        self._old_parent = self.parent

        reqs = sections.get('requirements')
        if reqs:
            self.requirements = BlockVersionTable.loads(reqs.content, reqs.line)
        self._old_requirements = self.requirements.copy()

        # self.include_mapping = IncludesMapping.loads(includes)
        deps = sections.get('dependencies')
        if deps:
            self.dependencies = parse_deps_conf(deps.content, deps.line)

        hooks = sections.get('hooks')
        if hooks:
            hooks_deps = parse_deps_conf(hooks.content, hooks.line)
            self.dependencies.extend(hooks_deps)

        mains = sections.get('mains')
        if mains:
            self.mains = parse_mains_conf(mains.content, mains.line)

        tests = sections.get('tests')
        if tests:
            def test_line_parser(line):
                self.tests.append(line)
            parse(tests.content, test_line_parser, tests.line)

        paths = sections.get('paths')
        if paths:
            def path_line_parser(line):
                self.paths.append(line)
            parse(paths.content, path_line_parser, paths.line)

        data = sections.get('data')
        if data:
            self.data = parse_deps_conf(data.content, data.line)

        includes = sections.get('includes')
        if includes:
            self.includes = IncludesMapping.loads(includes.content, includes.line)
Exemple #5
0
 def test_parses_file_with_negated_and_dependencies(self):
     text = r'''
     file.h - NULL i dont mind
     math.h = test.cpp name.h'''
     deps = parse_deps_conf(text, 0)
     self.assertEquals(deps[0], DependentConfiguration('file.h', '-', set()))
     self.assertEquals(deps[1], DependentConfiguration('math.h', '=',
                             {DependencyConfiguration(False, 'test.cpp'),
                              DependencyConfiguration(False, 'name.h')}))
     self.assertEquals(len(deps), 2)
Exemple #6
0
 def test_parses_empty_file(self):
     deps = parse_deps_conf("", 0)
     self.assertEquals(deps, [])
Exemple #7
0
 def test_parses_file_with_negated_dependencies_and_rubbish(self):
     text = r'''file.h + NULL i dont mind'''
     deps = parse_deps_conf(text, 0)
     self.assertEquals(deps[0], DependentConfiguration('file.h', '+', set()))
     self.assertEquals(len(deps), 1)
Exemple #8
0
 def test_parses_wrong_file(self):
     with self.assertRaisesRegexp(ConfigurationFileError, "2: Parse error"):
         parse_deps_conf("\n28\n", 0)