Adds polling and URL parsing support for gitea repositories. Reviewed-on: #9 Co-authored-by: Slipstream <me@slipstreamm.dev> Co-committed-by: Slipstream <me@slipstreamm.dev>
54 lines
1.8 KiB
Python
54 lines
1.8 KiB
Python
import os
|
|
import sys
|
|
import pytest
|
|
|
|
# Ensure the project root is on sys.path so we can import modules
|
|
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|
|
|
from cogs.git_monitor_cog import parse_repo_url
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"url,expected",
|
|
[
|
|
("https://github.com/user/repo", ("github", "user/repo")),
|
|
("http://github.com/user/repo", ("github", "user/repo")),
|
|
("github.com/user/repo", ("github", "user/repo")),
|
|
("https://www.github.com/user/repo/", ("github", "user/repo")),
|
|
("https://github.com/user/repo.git", ("github", "user/repo")),
|
|
("https://github.com/user-name/re.po", ("github", "user-name/re.po")),
|
|
("https://gitlab.com/group/project", ("gitlab", "group/project")),
|
|
(
|
|
"https://gitlab.com/group/subgroup/project",
|
|
("gitlab", "group/subgroup/project"),
|
|
),
|
|
("gitlab.com/group/subgroup/project.git", ("gitlab", "group/subgroup/project")),
|
|
(
|
|
"http://www.gitlab.com/group/subgroup/project/",
|
|
("gitlab", "group/subgroup/project"),
|
|
),
|
|
("https://gitea.com/user/repo", ("gitea", "user/repo")),
|
|
("https://git.example.com/org/repo", ("gitea", "org/repo")),
|
|
],
|
|
)
|
|
def test_parse_repo_url_valid(url, expected):
|
|
assert parse_repo_url(url) == expected
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"url",
|
|
[
|
|
"https://github.com/",
|
|
"https://github.com/user",
|
|
"https://gitlab.com/",
|
|
"https://gitlab.com/group",
|
|
"ftp://github.com/user/repo",
|
|
"http:/github.com/user/repo",
|
|
"not a url",
|
|
"gitlab.com/group//project",
|
|
"github.com/user/repo/extra",
|
|
],
|
|
)
|
|
def test_parse_repo_url_invalid(url):
|
|
assert parse_repo_url(url) == (None, None)
|