Ejemplo n.º 1
0
    def test_positive_02(self):
        "Three node one edge digraph B -> A, C -> A and C -> B"
        config, reqset = create_parameters()
        config.set_depends_on()
        reqset.reqs = {
            "A": TestReq("A",
                         {"Type": Requirement.rt_master_requirement},
                         {}),
            "B": TestReq("B",
                         {"Type": Requirement.rt_initial_requirement},
                         {"Depends on": RecordEntry("Depends on", "A")}),
            "C": TestReq("C",
                         {"Type": Requirement.rt_requirement},
                         {"Depends on": RecordEntry("Depends on", "A B")}),
            }

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

        assert(reqset.reqs["A"].outgoing_as_named_list() == [])
        assert(reqset.reqs["A"].incoming_as_named_list() == ["C", "B"])
        assert(reqset.reqs["B"].outgoing_as_named_list() == ["A"])
        assert(reqset.reqs["B"].incoming_as_named_list() == ["C"])
        assert(reqset.reqs["C"].outgoing_as_named_list() == ["A", "B"])
        assert(reqset.reqs["C"].incoming_as_named_list() == [])
Ejemplo n.º 2
0
    def test_positive_01(self):
        "Two node one edge digraph B -> A"
        config, reqset = create_parameters({"B": ["A"], "A": [] })
        reqset.graph_master_node = reqset.find("A")

        rdep = RDepNoDirectedCircles(config)
        result = rdep.rewrite(reqset)

        assert(result == True)
Ejemplo n.º 3
0
    def rmttest_positive_01(self):
        "Two node one edge digraph B -> A"
        config, reqset = create_parameters({"B": ["A"], "A": []})
        reqset.graph_master_node = reqset.find("A")

        rdep = RDepNoDirectedCircles(config)
        result = rdep.rewrite(reqset)

        assert result
Ejemplo n.º 4
0
    def test_negative_01(self):
        "small digraph D -> B -> A and A -> C -> D"
        config, reqset = create_parameters(
            {"D": ["B"], "C": ["D"], "B": ["A"], "A": ["C"] })
        reqset.graph_master_node = reqset.find("A")

        rdep = RDepNoDirectedCircles(config)
        result = rdep.rewrite(reqset)

        assert(result == False)
Ejemplo n.º 5
0
    def test_positive_01(self):
        "small digraph D -> B -> A and D -> C -> A"
        opts, config, reqset = create_parameters(
            {"D": ["B", "C"], "C": ["A"], "B": ["A"], "A": [] })
        reqset.graph_master_node = reqset.find("A")

        rdep = RDepNoDirectedCircles(opts, config)
        result = rdep.rewrite(reqset)

        assert(result==True)
Ejemplo n.º 6
0
    def test_negative_01(self):
        "Master requirement with Depends on field"
        opts, config, reqset = create_parameters()
        reqset.reqs = {
            "A": TestReq("A",
                         {"Type": Requirement.rt_master_requirement},
                         {"Depends on": RecordEntry("Depends on", "A")})}

        rdep = RDepDependsOn(opts, config)
        status = rdep.rewrite(reqset)
        
        assert(status==False)
Ejemplo n.º 7
0
    def test_positive_01(self):
        "Two node one edge digraph B -> A"
        opts, config, reqset = create_parameters({"B": ["A"], "A": []})
        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)

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

        assert reqset.get_named_node("A").get_value("Priority") == 1.0
        assert reqset.get_named_node("B").get_value("Priority") == 0.8
Ejemplo n.º 8
0
    def rmttest_positive_02(self):
        "small digraph D -> B -> A and D -> C -> A"
        config, reqset = create_parameters({
            "D": ["B", "C"],
            "C": ["A"],
            "B": ["A"],
            "A": []
        })
        reqset.graph_master_node = reqset.find("A")

        rdep = RDepNoDirectedCircles(config)
        result = rdep.rewrite(reqset)

        self.assertTrue(result)
Ejemplo n.º 9
0
    def rmttest_negative_01(self):
        "small digraph D -> B -> A and A -> C -> D"
        config, reqset = create_parameters({
            "D": ["B"],
            "C": ["D"],
            "B": ["A"],
            "A": ["C"]
        })
        reqset.graph_master_node = reqset.find("A")

        rdep = RDepNoDirectedCircles(config)
        result = rdep.rewrite(reqset)

        assert not result
Ejemplo n.º 10
0
    def test_negative_03(self):
        "Normal requirement has no 'Depends on'"
        opts, config, reqset = create_parameters()
        reqset.reqs = {
            "A": TestReq("A",
                         {"Type": Requirement.rt_master_requirement},
                         {}),
            "B": TestReq("B",
                         {"Type": Requirement.rt_requirement},
                         {})}

        rdep = RDepDependsOn(opts, config)
        status = rdep.rewrite(reqset)
        
        assert(status==False)
Ejemplo n.º 11
0
    def test_negative_07(self):
        "'Depends on' points to same requirement"
        opts, config, reqset = create_parameters()
        reqset.reqs = {
            "A": TestReq("A",
                         {"Type": Requirement.rt_master_requirement},
                         {}),
            "B": TestReq("B",
                         {"Type": Requirement.rt_requirement},
                         {"Depends on": RecordEntry("Depends on", "B")})}

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

        assert(status==False)
Ejemplo n.º 12
0
    def test_positive_02(self):
        "Three node digraph C -> B -> A"
        config, reqset = create_parameters(
            {"C": ["B"], "B": ["A"], "A": [] })
        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(reqset.get_named_node("A").get_value("Priority") == 1.0)
        assert(reqset.get_named_node("B").get_value("Priority") == 0.8)
        assert(reqset.get_named_node("C").get_value("Priority") == 0.4)
Ejemplo n.º 13
0
    def test_negative_02(self):
        "Two nodes as master requirement"
        config, reqset = create_parameters()
        config.set_depends_on()
        reqset.reqs = {
            "A": TestReq("A",
                         {"Type": Requirement.rt_master_requirement},
                         {}),
            "B": TestReq("B",
                         {"Type": Requirement.rt_master_requirement},
                         {})}

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

        assert(status == False)
Ejemplo n.º 14
0
    def test_negative_06(self):
        "Set without any master requirement"
        config, reqset = create_parameters()
        config.set_depends_on()
        reqset.reqs = {
            "A": TestReq("A",
                         {"Type": Requirement.rt_requirement},
                         {"Depends on": RecordEntry("Depends on", "B")}),
            "B": TestReq("B",
                         {"Type": Requirement.rt_requirement},
                         {"Depends on": RecordEntry("Depends on", "A")})}

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

        assert(status == False)
Ejemplo n.º 15
0
    def test_negative_04(self):
        "Normal requirement has empty 'Depends on'"
        config, reqset = create_parameters()
        config.set_depends_on()
        reqset.reqs = {
            "A": TestReq("A",
                         {"Type": Requirement.rt_master_requirement},
                         {}),
            "B": TestReq("B",
                         {"Type": Requirement.rt_requirement},
                         {"Depends on": RecordEntry("Depends on", "")})}

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

        assert(status == False)
Ejemplo n.º 16
0
    def test_negative_05(self):
        "'Depends on' points to a non existing requirement"
        config, reqset = create_parameters()
        config.set_depends_on()
        reqset.reqs = {
            "A": TestReq("A",
                         {"Type": Requirement.rt_master_requirement},
                         {}),
            "B": TestReq("B",
                         {"Type": Requirement.rt_requirement},
                         {"Depends on": RecordEntry("Depends on", "C")})}

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

        assert(status == False)
Ejemplo n.º 17
0
    def test_positive_03(self):
        "Four node digraph D -> B -> A and D -> C -> A"
        opts, config, reqset = create_parameters({"D": ["B", "C"], "C": ["A"], "B": ["A"], "A": []})
        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.2)
        reqset.get_named_node("C").set_value("Factor", 0.4)
        reqset.get_named_node("D").set_value("Factor", 0.5)

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

        assert reqset.get_named_node("A").get_value("Priority") == 1.0
        assert reqset.get_named_node("B").get_value("Priority") == 0.2
        assert reqset.get_named_node("C").get_value("Priority") == 0.4
        assert reqset.get_named_node("D").get_value("Priority") == 0.2
Ejemplo n.º 18
0
    def test_negative_05(self):
        "Set without any master requirement"
        config, reqset = create_parameters()
        reqset.reqs = {
            "A": TestReq("A",
                         {"Type": Requirement.rt_requirement},
                         {"Solved by": RecordEntry("Solved by", "B")}),
            "B": TestReq("B",
                         {"Type": Requirement.rt_requirement},
                         {"Solved by": RecordEntry("Solved by", "A")})}

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

        assert(status == False)
        assert(reqset.mls() == MemLogStore.create_mls(
                [[78, LogLevel.error(), "no master requirement found"], ]))
Ejemplo n.º 19
0
    def test_negative_01(self):
        "Two nodes as master requirement"
        config, reqset = create_parameters()
        reqset.reqs = {
            "A": TestReq("A",
                         {"Type": Requirement.rt_master_requirement},
                         {}),
            "B": TestReq("B",
                         {"Type": Requirement.rt_master_requirement},
                         {})}

        config.set_solved_by()
        rdep = RDepSolvedBy(config)
        status = rdep.rewrite(reqset)
        assert(status == False)
        assert(reqset.mls() == MemLogStore.create_mls(
                [ [76, LogLevel.error(), "Another master is already there. "
                   "There can only be one.", "B"] ]))
Ejemplo n.º 20
0
    def test_negative_02(self):
        "Normal requirement has empty 'Solved by'"
        config, reqset = create_parameters()
        reqset.reqs = {
            "A": TestReq("A",
                         {"Type": Requirement.rt_master_requirement},
                         {}),
            "B": TestReq("B",
                         {"Type": Requirement.rt_requirement},
                         {"Solved by": RecordEntry("Solved by", "")})}

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

        assert(status == False)
        assert(reqset.mls() == MemLogStore.create_mls(
                [ [77, LogLevel.error(), "'Solved by' field has len 0", "B"] ]))
Ejemplo n.º 21
0
    def test_positive_01(self):
        "Two node one edge digraph B -> A"
        opts, config, reqset = create_parameters()
        reqset.reqs = {
            "A": TestReq("A",
                         {"Type": Requirement.rt_master_requirement},
                         {}),
            "B": TestReq("B",
                         {"Type": Requirement.rt_initial_requirement},
                         {"Depends on": RecordEntry("Depends on", "A")})}

        rdep = RDepDependsOn(opts, config)
        rdep.rewrite(reqset)
        
        assert(reqset.reqs["A"].outgoing_as_named_list()==[])
        assert(reqset.reqs["A"].incoming_as_named_list()==["B"])
        assert(reqset.reqs["B"].outgoing_as_named_list()==["A"])
        assert(reqset.reqs["B"].incoming_as_named_list()==[])
Ejemplo n.º 22
0
    def test_negative_03(self):
        "'Solved by' points to a non existing requirement"
        opts, config, reqset = create_parameters()
        reqset.reqs = {
            "A": TestReq("A",
                         {"Type": Requirement.rt_master_requirement},
                         {}),
            "B": TestReq("B",
                         {"Type": Requirement.rt_requirement},
                         {"Solved by": RecordEntry("Solved by", "C")})}

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

        assert(status==False)
        assert(reqset.mls()==MemLogStore.create_mls(
                [[74, MemLog.error, "'Solved by' points to a non-existing "
                  "requirement 'C'", "B" ], ]))
Ejemplo n.º 23
0
    def test_negative_04(self):
        "'Solved by' points to same requirement"
        config, reqset = create_parameters()
        reqset.reqs = {
            "A": TestReq("A",
                         {"Type": Requirement.rt_master_requirement},
                         {}),
            "B": TestReq("B",
                         {"Type": Requirement.rt_requirement},
                         {"Solved by": RecordEntry("Solved by", "B")})}

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

        assert(status == False)
        assert(reqset.mls() == MemLogStore.create_mls(
                [[75, LogLevel.error(), "'Solved by' points to the requirement "
                  "itself", "B" ], ]))