Пример #1
0
    def rmttest_neg_point_to_self(self):
        "'Solved by' points to same requirement"
        mstderr = StringIO()
        init_logger(mstderr)

        config = TestConfig()
        reqset = RequirementSet(config)
        req1 = Requirement('''Name: A
Type: master requirement''', 'A', None, None, None)
        reqset.add_requirement(req1)
        req2 = Requirement('''Name: B
Type: requirement
Solved by: B''', 'B', None, None, None)
        reqset.add_requirement(req2)
        config.set_solved_by()
        rdep = RDepSolvedBy(config)
        status = rdep.rewrite(reqset)

        assert not status
        lstderr = hide_volatile(mstderr.getvalue())
        tear_down_log_handler()
        result_expected \
            = "===DATETIMESTAMP===;rmtoo;ERROR;RequirementSet;" \
            "__resolve_solved_by_one_req_deps;===LINENO===; " \
            "75:B:'Solved by' points to the requirement itself\n"
        assert result_expected == lstderr
Пример #2
0
    def rmttest_neg_solved_by_to_nonex_req(self):
        "'Solved by' points to a non existing requirement"
        mstderr = StringIO()
        init_logger(mstderr)

        config = TestConfig()
        reqset = RequirementSet(config)
        req1 = Requirement('''Name: A
Type: master requirement''', 'A', None, None, None)
        reqset.add_requirement(req1)
        req2 = Requirement('''Name: B
Type: requirement
Solved by: C''', 'B', None, None, None)
        reqset.add_requirement(req2)

        config.set_solved_by()
        rdep = RDepSolvedBy(config)
        status = rdep.rewrite(reqset)

        self.assertFalse(status)
        lstderr = hide_volatile(mstderr.getvalue())
        tear_down_log_handler()
        result_expected \
            = "===DATETIMESTAMP===;rmtoo;ERROR;RequirementSet;" \
            "__resolve_solved_by_one_req_deps;===LINENO===; " \
            "74:B:'Solved by' points to a non-existing requirement 'C'\n"
        self.assertEquals(result_expected, lstderr)
Пример #3
0
    def test_positive_01(self):
        "Two node one edge digraph B -> A"
        config = TestConfig()

        imod = InputModules("..", config)

        reqset = RequirementSet(config)
        req1 = Requirement('''Name: A
Type: master requirement''', 'A', None, imod, config)
        reqset.add_node(RequirementDNode(req1))
        req2 = Requirement('''Name: B
Type: requirement
Depends on: A''', 'B', None, imod, config)
        reqset.add_node(RequirementDNode(req2))
        config.set_depends_on()

        rdep = RDepDependsOn(config)
        rdep.rewrite(reqset)

        assert (reqset.get_requirement("A").get_incoming_as_named_list() == [])
        assert (reqset.get_requirement("A").get_outgoing_as_named_list() == [
            "B"
        ])
        assert (reqset.get_requirement("B").get_incoming_as_named_list() == [
            "A"
        ])
        assert (reqset.get_requirement("B").get_outgoing_as_named_list() == [])
    def rmttest_positive_02(self):
        "Three node digraph C -> B -> A"
        config = TestConfig()
        reqset = RequirementSet(config)
        req1 = Requirement('''Name: A
Type: master requirement
Solved by: B''', 'A', None, None, None)
        reqset.add_requirement(req1)
        req2 = Requirement('''Name: B
Type: requirement
Solved by: C''', 'B', None, None, None)
        reqset.add_requirement(req2)
        req3 = Requirement('''Name: C
Type: requirement''', 'C', None, None, None)
        reqset.add_requirement(req3)
        reqset.resolve_solved_by()
        reqset.find_master_nodes()
        reqset.build_named_nodes()

        reqset.graph_master_node = reqset.get_named_node("A")
        reqset.get_named_node("A").set_value("Factor", 1.0)
        reqset.get_named_node("B").set_value("Factor", 0.8)
        reqset.get_named_node("C").set_value("Factor", 0.5)

        rdep = RDepPriority(config)
        rdep.rewrite(reqset)

        assert 1.0 == reqset.get_named_node("A").get_value("Priority")
        assert 0.8 == reqset.get_named_node("B").get_value("Priority")
        assert 0.4 == reqset.get_named_node("C").get_value("Priority")
Пример #5
0
    def test_positive_01(self):
        "Two node one edge digraph B -> A"
        config = TestConfig()
        reqset = RequirementSet(config)
        req1 = Requirement('''Name: A
Type: master requirement
Solved by: B''', 'A', None, None, None)

        reqset.add_node(RequirementDNode(req1))
        req2 = Requirement('''Name: B
Type: requirement''', 'B', None, None, None)
        reqset.add_node(RequirementDNode(req2))
        reqset.resolve_solved_by()
        reqset.find_master_nodes()
        reqset.graph_master_node = reqset.find("A")
        reqset.find("A").get_requirement().set_value("Factor", 1.0)
        reqset.find("B").get_requirement().set_value("Factor", 0.8)

        rdep = RDepPriority(config)
        rdep.rewrite(reqset)

        assert (
            reqset.find("A").get_requirement().get_value("Priority") == 1.0)
        assert (
            reqset.find("B").get_requirement().get_value("Priority") == 0.8)
Пример #6
0
    def rmttest_positive_01(self):
        "Two node one edge digraph B -> A"
        config = TestConfig()

        imod = InputModules(config)

        reqset = RequirementSet(config)
        req1 = Requirement('''Name: A
Type: master requirement''', 'A', None, imod, config)
        reqset.add_requirement(req1)
        req2 = Requirement('''Name: B
Type: requirement
Depends on: A''', 'B', None, imod, config)
        reqset.add_requirement(req2)
        config.set_depends_on()

        rdep = RDepDependsOn(config)
        rdep.rewrite(reqset)

        self.assertEqual([],
                         reqset.get_requirement("A").incoming_as_named_list())
        self.assertEqual(["B"],
                         reqset.get_requirement("A").outgoing_as_named_list())
        self.assertEqual(["A"],
                         reqset.get_requirement("B").incoming_as_named_list())
        self.assertEqual([],
                         reqset.get_requirement("B").outgoing_as_named_list())
Пример #7
0
    def test_neg_point_to_self(self):
        "'Solved by' points to same requirement"
        mstderr = StringIO.StringIO()
        init_logger(mstderr)

        config = TestConfig()
        reqset = RequirementSet(config)
        req1 = Requirement('''Name: A
Type: master requirement''', 'A', None, None, None)
        reqset.add_node(RequirementDNode(req1))
        req2 = Requirement('''Name: B
Type: requirement
Solved by: B''', 'B', None, None, None)
        reqset.add_node(RequirementDNode(req2))
        config.set_solved_by()
        rdep = RDepSolvedBy(config)
        status = rdep.rewrite(reqset)

        self.assertFalse(status)
        lstderr = hide_lineno(hide_timestamp(mstderr.getvalue()))
        tear_down_log_handler()
        result_expected = "===DATETIMESTAMP===;rmtoo;ERROR;RequirementSet;" \
        "__resolve_solved_by_one_req;===SOURCELINENO===; 75:B:'Solved by' " \
        "points to the requirement itself\n"
        self.assertEquals(result_expected, lstderr)
    def rmttest_positive_02(self):
        "Three node one edge digraph B -> A, C -> A and C -> B"
        config = TestConfig()

        imod = InputModules(config)

        reqset = RequirementSet(config)
        req1 = Requirement('''Name: A
Type: master requirement''', 'A', None, imod, config)
        reqset.add_requirement(req1)
        req2 = Requirement('''Name: B
Type: requirement
Depends on: A''', 'B', None, imod, config)
        reqset.add_requirement(req2)
        config.set_depends_on()
        req3 = Requirement('''Name: C
Type: requirement
Depends on: A B''', 'C', None, imod, config)
        reqset.add_requirement(req3)
        config.set_depends_on()

        rdep = RDepDependsOn(config)
        rdep.rewrite(reqset)

        assert [] == reqset.get_requirement("A").incoming_as_named_list()
        # There are two possible valid results
        assert reqset.get_requirement("A").outgoing_as_named_list() \
            in [["C", "B"], ["B", "C"]]
        assert ["A"] == reqset.get_requirement("B").incoming_as_named_list()
        assert ["C"] == reqset.get_requirement("B").outgoing_as_named_list()
        assert ["A",
                "B"] == reqset.get_requirement("C").incoming_as_named_list()
        assert [] == reqset.get_requirement("C").outgoing_as_named_list()
Пример #9
0
    def rmttest_treat_newlines_correctly(self, dest_dir):
        tmpdir = dest_dir['requirements_dirs'][0]

        config = dict(self.config)
        tmp_fn = os.path.join(tmpdir, 'test-reqs.xlsx')
        distutils.file_util.copy_file(config[u'import_filename'], tmp_fn)
        config[u'import_filename'] = tmp_fn

        importer = XlsImport(config, dest_dir)
        importer.run()

        newlines_filename = os.path.join(tmpdir, 'TestNewlines.req')
        assert os.path.isfile(newlines_filename)
        with codecs.open(newlines_filename, encoding='utf-8') as nl_fh:
            req_content = nl_fh.read()
        nl_req = Requirement(req_content, 'TestNewlines.req',
                             newlines_filename, None, None)

        # Test Description
        parsed_desc = "\n".join(nl_req.record[2].
                                get_content_trimmed_with_nl())
        assert parsed_desc == LIPSUM + "\n\nASDF"

        parsed_note = "\n".join(nl_req.record[10].
                                get_content_trimmed_with_nl())
        assert parsed_note == "Lipsum\n\nHandle it well"

        parsed_invon = "\n".join(nl_req.record[7].
                                 get_content_trimmed_with_nl())
        assert parsed_invon == "2010-03-06"
Пример #10
0
    def rmttest_def_req(self):
        "LaTeX output: compare output to defined value"
        exp_value = r"""
\paragraph{my name}

\hypertarget{TestReq}{TestReq} 
\label{TestReq}

my desc

\textbf{Rationale:} 

\textbf{Note:} 





\par{\small \begin{center}
\begin{tabular}{rlrlrl}
   Id: & TestReq               & Priority: &           & Owner: &  \\
   Invented on: &  & Invented by: &  & Status: & finished (meiner, 2011-04-15, 4 h) \\
   Class: & implementable
\end{tabular}\end{center}
}
""" # noqa

        tcfg = TestConfig()
        tcfg.set_output_cfg()

        mconfig = self.__def_mconfig
        mconfig['req_attributes'] = ["Status", "Class", "DoesNotExists"]

        req_proc = latex2(mconfig)
        req = Requirement(None, u"TestReq", None, None, None)
        req.values = {}
        req.values[u"Name"] = RecordEntry(u"Name", u"my name")
        req.values[u"Type"] = RequirementType.requirement
        req.values[u"Description"] = RecordEntry(u"Description", u"my desc")
        req.values[u"Status"] = RequirementStatusFinished(
            None, u"rid", u"finished:meiner:2011-04-15:4h")
        req.values[u"Class"] = ClassTypeImplementable()

        ce3set = CE3Set()
        ce3 = CE3()
        ce3set.insert(u"TestReq", ce3)
        ''' This is here for future? use.
        rset = RequirementSet(tcfg)
        ttopic_set = TestTopicSet(rset)
        '''

        req_text = req_proc._get_requirement(req)
        try:
            assert req_text == exp_value
        except AssertionError:
            import difflib
            diff = difflib.ndiff(req_text.splitlines(True),
                                 exp_value.splitlines(True))
            print(''.join(diff))
            raise Exception("The template is not equal to it's expected value")
Пример #11
0
    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.")
Пример #12
0
    def rmttest_positive_01(self):
        """Requirement contains a tag where no handler exists"""
        mstderr = StringIO()
        init_logger(mstderr)

        test_config = TestConfig()
        test_config.set_solved_by()
        mods = InputModules(test_config)

        reqs = RequirementSet(None)
        req = Requirement("Hubbel: bubbel", "hubbel", reqs, mods, test_config)
        reqs.add_requirement(req)
        reqs._handle_modules(mods)

        lstderr = hide_volatile(mstderr.getvalue())
        tear_down_log_handler()
        result_expected \
            = ["===DATETIMESTAMP===;rmtoo;ERROR;RequirementSet;"
               "__all_tags_handled;===LINENO===; 57:hubbel:No tag handler "
               "found for "
               "tag(s) '[\"Hubbel\"]' - Hint: typo in tag(s)?",
               "===DATETIMESTAMP===;rmtoo;ERROR;"
               "RequirementSet;_handle_modules;"
               "===LINENO===; 56:There were errors encountered during parsing "
               "and checking - can't continue."]

        lstderr_last_two_lines = lstderr.split("\n")[-3:-1]

        assert result_expected == lstderr_last_two_lines
Пример #13
0
    def test_positive_02(self):
        "Requirement contains a tag where no handler exists - multiple tags"
        mstderr = StringIO.StringIO()
        init_logger(mstderr)

        mods = InputModules(os.path.join(mod_base_dir, "modules08"), {}, [],
                            mods_list("modules08", mod_base_dir))

        reqs = RequirementSet(None)
        req = Requirement("Hubbel: bubbel\nSiebel: do", "InvalidTagReq", reqs,
                          mods, TestConfig())
        reqs.add_node(RequirementDNode(req))
        reqs._handle_modules(mods)

        lstderr = hide_timestamp(mstderr.getvalue())
        lstderr = hide_lineno(lstderr)
        tear_down_log_handler()
        result_expected = "===DATETIMESTAMP===;rmtoo;ERROR;RequirementSet;" \
        "__all_tags_handled;===SOURCELINENO===; 57:InvalidTagReq:No tag " \
        "handler found " \
        "for tag(s) '['Siebel', 'Hubbel']' - Hint: typo in tag(s)?\n" \
        "===DATETIMESTAMP===;rmtoo;ERROR;RequirementSet;_handle_modules;" \
        "===SOURCELINENO===; 56:There were errors encountered during parsing " \
        "and checking " \
        "- can't continue.\n"

        self.assertEquals(result_expected, lstderr)
Пример #14
0
    def rmttest_positive_01(self):
        "Requirement: parser returns error"

        try:
            Requirement("DTag: content1\n"
                        "DTag: content2\n", "1", None, None, TestConfig())
            assert (False)
        except RMTException as rmte:
            assert (rmte.get_id() == 81)
Пример #15
0
    def test_negative_03(self):
        "Normal requirement has no 'Depends on'"
        config = TestConfig()

        imod = InputModules("..", config)

        reqset = RequirementSet(config)
        req1 = Requirement('''Name: A
Type: master requirement''', 'A', None, imod, config)
        reqset.add_node(RequirementDNode(req1))
        req2 = Requirement('''Name: B
Type: requirement''', 'B', None, imod, config)
        reqset.add_node(RequirementDNode(req2))
        config.set_depends_on()

        rdep = RDepDependsOn(config)
        status = rdep.rewrite(reqset)

        assert (status == False)
Пример #16
0
    def rmttest_negative_04(self):
        "Normal requirement has empty 'Depends on'"
        config = TestConfig()

        imod = InputModules(config)

        reqset = RequirementSet(config)
        req1 = Requirement('''Name: A
Type: master requirement''', 'A', None, imod, config)
        reqset.add_requirement(req1)
        req2 = Requirement('''Name: B
Type: requirement
Depends on:''', 'B', None, imod, config)
        reqset.add_requirement(req2)
        config.set_depends_on()

        rdep = RDepDependsOn(config)
        status = rdep.rewrite(reqset)

        self.assertFalse(status)
    def rmttest_negative_07(self):
        "'Depends on' points to same requirement"
        config = TestConfig()

        imod = InputModules(config)

        reqset = RequirementSet(config)
        req1 = Requirement('''Name: A
Type: master requirement''', 'A', None, imod, config)
        reqset.add_requirement(req1)
        req2 = Requirement('''Name: B
Type: requirement
Depends on: B''', 'B', None, imod, config)
        reqset.add_requirement(req2)
        config.set_depends_on()

        rdep = RDepDependsOn(config)
        status = rdep.rewrite(reqset)

        assert not status
Пример #18
0
    def test_positive_03(self):
        "Four node digraph D -> B -> A and D -> C -> A"
        config = TestConfig()
        reqset = RequirementSet(config)
        req1 = Requirement(
            '''Name: A
Type: master requirement
Solved by: B C''', 'A', None, None, None)
        reqset.add_node(RequirementDNode(req1))
        req2 = Requirement('''Name: B
Type: requirement
Solved by: D''', 'B', None, None, None)
        reqset.add_node(RequirementDNode(req2))
        req3 = Requirement('''Name: C
Type: requirement
Solved by: D''', 'C', None, None, None)
        reqset.add_node(RequirementDNode(req3))
        req4 = Requirement('''Name: D
Type: requirement''', 'D', None, None, None)
        reqset.add_node(RequirementDNode(req4))
        reqset.resolve_solved_by()
        reqset.find_master_nodes()

        reqset.graph_master_node = reqset.find("A")
        reqset.find("A").get_requirement().set_value("Factor", 1.0)
        reqset.find("B").get_requirement().set_value("Factor", 0.2)
        reqset.find("C").get_requirement().set_value("Factor", 0.4)
        reqset.find("D").get_requirement().set_value("Factor", 0.5)

        rdep = RDepPriority(config)
        rdep.rewrite(reqset)

        assert (
            reqset.find("A").get_requirement().get_value("Priority") == 1.0)
        assert (
            reqset.find("B").get_requirement().get_value("Priority") == 0.2)
        assert (
            reqset.find("C").get_requirement().get_value("Priority") == 0.4)
        assert (
            reqset.find("D").get_requirement().get_value("Priority") == 0.2)
Пример #19
0
    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)
Пример #20
0
    def test_negative_01(self):
        "Master requirement with Depends on field"
        config = TestConfig()

        imod = InputModules("..", config)

        reqset = RequirementSet(config)
        req1 = Requirement(
            '''Name: A
Type: master requirement
Depends on: A''', 'A', None, imod, config)
        reqset.add_node(RequirementDNode(req1))
        config.set_depends_on()

        rdep = RDepDependsOn(config)
        status = rdep.rewrite(reqset)

        assert (status == False)
Пример #21
0
    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)
Пример #22
0
def create_req(req_id):
    req_txt_items = {}
    inv_date = datetime.strptime('1970-01-01', "%Y-%m-%d").date()
    req_values = {
        'Name': 'Aston Martin DB5',
        'Topic': 'Escape Routes',
        'Description': "Flying out the roof",
        'Priority': 'development',
        'Owner': '007',
        'Invented on': inv_date.isoformat(),
        'Invented by': 'Q',
        'Status': 'not done',
        'Class': 'requirement'
    }
    req = Requirement(u"", req_id, None, None, TestConfig())
    for key, value in req_values.items():
        req.record.append(MockRecordEntry(key, value))
        req_txt_items[key] = MockRecordEntry(None, value)
    req_txt_items['Invented on'] = inv_date
    req.values.update(req_txt_items)
    return req
Пример #23
0
    def rmttest_neg_02(self):
        "LaTeX output: check invalid tag in requirement output config"

        tcfg = TestConfig()
        tcfg.set_output_cfg()

        # ToDo: is this needed? tvcs = TestVCS(tcfg)
        # ToDo: is this needed? tfile = tvcs.get_tfile1()

        tmpdir = create_tmp_dir()
        mconfig = {
            "req_attributes": ["Status", "Class", "DoesNotExists"],
            "output_filename": os.path.join(tmpdir, "TestLateX2Out.tex")
        }

        out_l2 = latex2(mconfig)
        req = Requirement(None, u"TestReq", None, None, None)
        req.values = {}
        req.values[u"Name"] = RecordEntry(u"Name", u"my name")
        req.values[u"Type"] = RequirementType.requirement
        req.values[u"Description"] = RecordEntry(u"Description", u"my desc")
        req.values[u"Status"] = RequirementStatusFinished(
            None, u"rid", u"finished:meiner:2011-04-15:4h")
        req.values[u"Class"] = ClassTypeImplementable()

        ce3set = CE3Set()
        ce3 = CE3()
        ce3set.insert(u"TestReq", ce3)

        rset = RequirementSet(tcfg)
        ttopic_set = TestTopicSet(rset)

        try:
            out_l2.topic_set_pre(None)
            req.execute(out_l2, "")
            assert False
        except RMTException:
            pass
        out_l2.topic_set_post(ttopic_set)
        delete_tmp_dir(tmpdir)
Пример #24
0
    def rmttest_positive_02(self):
        "Requirement contains a tag where no handler exists - multiple tags"
        mstderr = StringIO()
        init_logger(mstderr)

        tc = TestConfig()
        tc.set_solved_by()
        mods = InputModules(tc)

        reqs = RequirementSet(None)
        req = Requirement("Hubbel: bubbel\nSiebel: do", "InvalidTagReq", reqs,
                          mods, tc)
        reqs.add_requirement(req)
        reqs._handle_modules(mods)

        lstderr = hide_volatile(mstderr.getvalue())
        tear_down_log_handler()

        lstderr_last_two_lines = lstderr.split("\n")[-3:-1]

        result0 \
            = re.match(
                "^===DATETIMESTAMP===;rmtoo;ERROR;RequirementSet;"
                "__all_tags_handled;===LINENO===; 57:InvalidTagReq:"
                "No tag handler found "
                "for tag\(s\) '\[.*\]' - Hint: typo in tag\(s\)\?$",
                lstderr_last_two_lines[0])
        result1 \
            = re.match(
                "^===DATETIMESTAMP===;rmtoo;ERROR;RequirementSet;"
                "_handle_modules;"
                "===LINENO===; 56:There were errors encountered "
                "during parsing "
                "and checking - can't continue.$",
                lstderr_last_two_lines[1])

        assert result0
        assert result1
Пример #25
0
    def test_neg_02(self):
        "LaTeX output: check invalid tag in requirement output config"

        tcfg = TestConfig()
        tcfg.set_output_cfg()

        tvcs = TestVCS(tcfg)
        tfile = tvcs.get_tfile1()

        tmpdir = create_tmp_dir()
        mconfig = { "req_attributes": ["Status", "Class", "DoesNotExists"],
                    "output_filename": os.path.join(tmpdir, "TestLateX2Out.tex")}

        l2 = latex2(mconfig)
        req = Requirement(None, "TestReq", None, None, None)
        req.values = {}
        req.values["Name"] = RecordEntry("Name", "my name")
        req.values["Type"] = Requirement.rt_requirement
        req.values["Description"] = RecordEntry("Description", "my desc")
        req.values["Status"] = RequirementStatusFinished(
                None, "rid", "finished:meiner:2011-04-15:4h")
        req.values["Class"] = ClassTypeImplementable()

        dnreq = RequirementDNode(req)

        ce3set = CE3Set()
        ce3 = CE3()
        ce3set.insert("TestReq", ce3)

        rset = RequirementSet(tcfg)
        ttopic_set = TestTopicSet(rset)

        try:
            l2.topic_set_pre(None)
            dnreq.execute(l2, "")
            assert(False)
        except RMTException, rmte:
            pass
Пример #26
0
 def __init__(self, d=None):
     Digraph.__init__(
         self, d, lambda nname: Requirement(None, nname, None, None, None))