Files
skills/tests/test_provider_resolution.py

38 lines
1.2 KiB
Python

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()