import pytest

from larigira.unused import old_commonpath


def test_same():
    assert old_commonpath(["/foo/bar", "/foo/bar/"]) == "/foo/bar"


def test_prefix():
    assert old_commonpath(["/foo/bar", "/foo/zap/"]) == "/foo"
    assert old_commonpath(["/foo/bar/", "/foo/zap/"]) == "/foo"
    assert old_commonpath(["/foo/bar/", "/foo/zap"]) == "/foo"
    assert old_commonpath(["/foo/bar", "/foo/zap"]) == "/foo"


try:
    from os.path import commonpath
except ImportError:
    pass  # TODO: log the fact and clarify
else:
    # these tests are only available on python >= 3.5. That's fine though, as
    # our CI will perform validation of those cases to see if they match python
    # behavior
    @pytest.fixture(params=["a", "a/", "a/b", "a/b/", "a/b/c"])
    def relpath(request):
        return request.param

    @pytest.fixture
    def abspath(relpath):
        return "/" + relpath

    @pytest.fixture(params=["", "/"])
    def slashed_abspath(abspath, request):
        return "%s%s" % (abspath, request.param)

    slashed_abspath_b = slashed_abspath

    @pytest.fixture
    def abspath_couple(slashed_abspath, slashed_abspath_b):
        return (slashed_abspath, slashed_abspath_b)

    def test_abspath_match(abspath_couple):
        assert commonpath(abspath_couple) == old_commonpath(abspath_couple)

    @pytest.fixture(params=["", "/"])
    def slashed_relpath(relpath, request):
        s = "%s%s" % (relpath, request.param)
        if s:
            return s

    slashed_relpath_b = slashed_relpath

    @pytest.fixture
    def relpath_couple(slashed_relpath, slashed_relpath_b):
        return (slashed_relpath, slashed_relpath_b)

    def test_relpath_match(relpath_couple):
        assert commonpath(relpath_couple) == old_commonpath(relpath_couple)
