Ejemplo n.º 1
0
def test_general_graph_bfs_version():
    a = PackageRecord(name="a",
                      version="1",
                      build="0",
                      build_number=0,
                      depends=["b", "c", "d"])
    b = PackageRecord(name="b",
                      version="1",
                      build="0",
                      build_number=0,
                      depends=["e"])
    c = PackageRecord(name="c",
                      version="1",
                      build="0",
                      build_number=0,
                      depends=["g=1"])
    d = PackageRecord(name="d",
                      version="1",
                      build="0",
                      build_number=0,
                      depends=["f", "g=2"])
    e = PackageRecord(name="e", version="1", build="0", build_number=0)
    f = PackageRecord(name="f", version="1", build="0", build_number=0)
    g1 = PackageRecord(name="g", version="1", build="0", build_number=0)
    g2 = PackageRecord(name="g", version="2", build="0", build_number=0)
    records = [a, b, c, d, e, f, g1, g2]
    graph = GeneralGraph(records)

    a_to_g1 = graph.breadth_first_search_by_name(MatchSpec("a"),
                                                 MatchSpec("g=1"))
    assert a_to_g1 == [MatchSpec("a"), MatchSpec("c"), MatchSpec("g=1")]

    a_to_g2 = graph.breadth_first_search_by_name(MatchSpec("a"),
                                                 MatchSpec("g=2"))
    assert a_to_g2 == [MatchSpec("a"), MatchSpec("d"), MatchSpec("g=2")]
Ejemplo n.º 2
0
def test_general_graph_bfs_simple():
    a = PackageRecord(name="a", version="1", build="0", build_number=0, depends=["b", "c", "d"])
    b = PackageRecord(name="b", version="1", build="0", build_number=0, depends=["e"])
    c = PackageRecord(name="c", version="1", build="0", build_number=0)
    d = PackageRecord(name="d", version="1", build="0", build_number=0, depends=["f", "g"])
    e = PackageRecord(name="e", version="1", build="0", build_number=0)
    f = PackageRecord(name="f", version="1", build="0", build_number=0)
    g = PackageRecord(name="g", version="1", build="0", build_number=0)
    records = [a, b, c, d, e, f, g]
    graph = GeneralGraph(records)

    a_to_c = graph.breadth_first_search_by_name(MatchSpec("a"), MatchSpec("c"))
    assert a_to_c == [MatchSpec("a"), MatchSpec("c")]

    a_to_f = graph.breadth_first_search_by_name(MatchSpec("a"), MatchSpec("f"))
    assert a_to_f == [MatchSpec("a"), MatchSpec("d"), MatchSpec("f")]

    a_to_a = graph.breadth_first_search_by_name(MatchSpec("a"), MatchSpec("a"))
    assert a_to_a == [MatchSpec("a")]

    a_to_not_exist = graph.breadth_first_search_by_name(MatchSpec("a"), MatchSpec("z"))
    assert a_to_not_exist is None

    backwards = graph.breadth_first_search_by_name(MatchSpec("d"), MatchSpec("a"))
    assert backwards is None