1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- from __future__ import absolute_import
- import responses
- from exam import fixture
- from social_auth.models import UserSocialAuth
- from sentry.testutils import PluginTestCase
- from sentry.models import Repository
- from sentry_plugins.vsts.repository_provider import VisualStudioRepositoryProvider
- from sentry_plugins.vsts.testutils import COMPARE_COMMITS_EXAMPLE, FILE_CHANGES_EXAMPLE
- class VisualStudioRepositoryProviderPluginTest(PluginTestCase):
- @fixture
- def provider(self):
- return VisualStudioRepositoryProvider("visualstudio")
- @responses.activate
- def test_compare_commits(self):
- responses.add(
- responses.POST,
- "https://visualstudio.com/DefaultCollection/_apis/git/repositories/None/commitsBatch",
- body=COMPARE_COMMITS_EXAMPLE,
- )
- responses.add(
- responses.GET,
- "https://visualstudio.com/DefaultCollection/_apis/git/repositories/None/commits/6c36052c58bde5e57040ebe6bdb9f6a52c906fff/changes",
- body=FILE_CHANGES_EXAMPLE,
- )
- repo = Repository.objects.create(
- provider="visualstudio",
- name="example",
- organization_id=1,
- config={"instance": "visualstudio.com", "project": "project-name", "name": "example"},
- )
- user = self.create_user()
- UserSocialAuth.objects.create(
- user=user, provider="visualstudio", extra_data={"access_token": "abcdefg"}
- )
- res = self.provider.compare_commits(repo, "a", "b", user)
- assert res == [
- {
- "patch_set": [{"path": u"/README.md", "type": "M"}],
- "author_email": "max@sentry.io",
- "author_name": "max bittker",
- "message": "Updated README.md",
- "id": "6c36052c58bde5e57040ebe6bdb9f6a52c906fff",
- "repository": "example",
- }
- ]
- @responses.activate
- def test_create_repository(self):
- user = self.create_user()
- organization = self.create_organization()
- UserSocialAuth.objects.create(
- user=user, provider="visualstudio", extra_data={"access_token": "abcdefg"}
- )
- data = {
- "name": "MyFirstProject",
- "external_id": "654321",
- "url": "https://mbittker.visualstudio.com/_git/MyFirstProject/",
- "instance": "https://visualstudio.com",
- "project": "MyFirstProject",
- }
- data = self.provider.create_repository(organization, data, user)
- assert data == {
- "name": "MyFirstProject",
- "external_id": "654321",
- "url": "https://mbittker.visualstudio.com/_git/MyFirstProject/",
- "config": {
- "project": "MyFirstProject",
- "name": "MyFirstProject",
- "instance": "https://visualstudio.com",
- },
- }
|