feat: add provider-neutral tracker automation

This commit is contained in:
2026-08-17 22:36:05 -04:00
parent f65a6ec812
commit dead6ca2bb
28 changed files with 1557 additions and 17 deletions
+37
View File
@@ -0,0 +1,37 @@
import unittest
from tracker import TrackerError, resolve_provider # type: ignore[reportMissingImports]
class ProviderResolutionTests(unittest.TestCase):
def test_cli_provider_wins_over_environment_and_remote(self):
self.assertEqual(
resolve_provider(
explicit="github",
env={"TRACKER_PROVIDER": "gitlab"},
remote="https://gitea.example.com/team/repo.git",
),
"github",
)
def test_environment_provider_wins_over_remote(self):
self.assertEqual(
resolve_provider(
env={"TRACKER_PROVIDER": "gitlab"},
remote="git@github.com:team/repo.git",
),
"gitlab",
)
def test_remote_provider_is_detected(self):
self.assertEqual(resolve_provider(remote="git@gitea.example.com:team/repo.git"), "gitea")
def test_unsupported_remote_is_structured_error(self):
with self.assertRaises(TrackerError) as context:
resolve_provider(remote="https://example.com/team/repo.git")
self.assertEqual(context.exception.code, "provider_detection_failed")
self.assertFalse(context.exception.retryable)
if __name__ == "__main__":
unittest.main()