def test_create_and_config(tmpdir):
    a = tmpdir.mkdir("a")
    b = tmpdir.mkdir("b")
    ef = ExecutableFinder([str(a), str(b)])
    assert ef.binary_paths == "{} : {}".format(a, b)
    c = tmpdir.mkdir("c")
    ef.add_path(str(c))
    assert ef.binary_paths == "{} : {} : {}".format(a, b, c)
def test_logs(tmpdir):
    if "BINARY_LOGS_DIR" not in os.environ:
        os.environ["BINARY_LOGS_DIR"] = tmpdir.strpath
    a = tmpdir.mkdir("a")
    b = tmpdir.mkdir("b")
    ef = ExecutableFinder([str(a), str(b)])
    ef.add_path("bad_directory_name")
    w = tmpdir.join("a/abc.aplx")
    w.write("any old content")
    w = tmpdir.join("b/def.aplx")
    w.write("any old content")
    w = tmpdir.join("b/ghi.aplx")
    w.write("any old content")
    w = tmpdir.join("b/jkl.aplx")
    w.write("any old content")
    ef.get_executable_path("abc.aplx")
    ef.get_executable_path("jkl.aplx")
    ef2 = ExecutableFinder([])
    ef2.check_logs()
    ef2.clear_logs()
def test_find_no_duplicates(tmpdir):
    a = tmpdir.mkdir("a")
    b = tmpdir.mkdir("b")
    ef = ExecutableFinder([str(a), str(b)])
    assert ef.binary_paths == "{} : {}".format(a, b)
    ef.add_path(str(a))
    ef.add_path(str(a))
    ef.add_path(str(b))
    ef.add_path(str(b))
    ef.add_path(str(a))
    ef.add_path(str(a))
    ef.add_path(str(b))
    ef.add_path(str(b))
    assert ef.binary_paths == "{} : {}".format(a, b)