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)
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)
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)
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)
def test_parses_empty_file(self): deps = parse_deps_conf("", 0) self.assertEquals(deps, [])
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)
def test_parses_wrong_file(self): with self.assertRaisesRegexp(ConfigurationFileError, "2: Parse error"): parse_deps_conf("\n28\n", 0)