def __read_one_requirement(self, fileinfo, input_mods, object_cache): '''Read in one requirement from the file info.''' tracer.debug("Called.") # Check for correct filename if not fileinfo.get_filename().endswith(".req"): tracer.info("skipping file [%s]" % fileinfo.get_filename()) return # Handle caching. vcs_id = fileinfo.get_vcs_id() rid = fileinfo.get_filename_sub_part()[:-4] req = object_cache.get("Requirement", vcs_id) tracer.info("Reading requirement [%s]" % rid) if req == None: file_content = fileinfo.get_content() req = Requirement(file_content, rid, fileinfo.get_filename(), input_mods, self._config) # Add the requirement to the cache. object_cache.add(vcs_id, "Requirement", req) self._adapt_usablility(req) if req.is_usable(): dnreq = RequirementDNode(req) # Store in the map, so that it is easy to access the # node by id. ### ToDo: needed self._add_requirement(req) self.add_node(dnreq) # Also store it in the digraph's node list for simple # access to the digraph algorithms. # self.nodes.append(req) else: logger.error(LogFormatter.format( 45, "could not be parsed", req.id)) tracer.debug("Finished.")
def __read_one_requirement(self, fileinfo, input_mods, object_cache): '''Read in one requirement from the file info.''' tracer.debug("Called.") # Check for correct filename if not fileinfo.get_filename().endswith(".req"): tracer.info("skipping file [%s]", fileinfo.get_filename()) return # Handle caching. vcs_id = fileinfo.get_vcs_id() rid = fileinfo.get_filename_sub_part()[:-4] req = object_cache.get("Requirement", vcs_id) tracer.info("Reading requirement [%s]", rid) if req is None: file_content = fileinfo.get_content() req = Requirement(file_content, rid, fileinfo.get_filename(), input_mods, self._config) # Add the requirement to the cache. object_cache.add(vcs_id, "Requirement", req) self._adapt_usablility(req) if req.is_usable(): # Store in the map, so that it is easy to access the # node by id. self.add_requirement(req) # Also store it in the digraph's node list for simple # access to the digraph algorithms. # self.nodes.append(req) else: logger.error(LogFormatter.format( 45, "could not be parsed", req.get_id())) tracer.debug("Finished.")
def test_simple_05(self): "Module test with dependent modules" mstderr = StringIO.StringIO() init_logger(mstderr) mods = InputModules(os.path.join(mod_base_dir, "modules05"), {}, [], mods_list("modules05", mod_base_dir)) req = Requirement("Name: t\n", 77, None, mods, TestConfig()) lstderr = hide_lineno(hide_timestamp(mstderr.getvalue())) tear_down_log_handler() self.assertEqual(req.is_usable(), False) expected_result = "===DATETIMESTAMP===;rmtoo;ERROR;BaseRMObject;" \ "handle_modules_tag;===SOURCELINENO===; 54:77:" \ "tag [SameTag] already defined\n" self.assertEqual(lstderr, expected_result)
def test_simple_06(self): "Requirement: Module test with exception thrown" mstderr = StringIO.StringIO() init_logger(mstderr) mods = InputModules(os.path.join(mod_base_dir, "modules06"), {}, [], mods_list("modules06", mod_base_dir)) req = Requirement("Name: t\n", 77, None, mods, TestConfig()) lstderr = hide_lineno(hide_timestamp(mstderr.getvalue())) tear_down_log_handler() self.assertEqual(req.is_usable(), False) expected_result = "===DATETIMESTAMP===;rmtoo;ERROR;BaseRMObject;" \ "handle_modules_tag;===SOURCELINENO===; 55:TCExcept\n" \ "===DATETIMESTAMP===;rmtoo;ERROR;BaseRMObject;handle_modules_tag;" \ "===SOURCELINENO===; 41:77:" \ "semantic error occurred in module [Module01]\n" self.assertEqual(lstderr, expected_result)