test_pivotal_plugin.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. from __future__ import absolute_import
  2. from exam import fixture
  3. from django.core.urlresolvers import reverse
  4. from sentry.testutils import PluginTestCase
  5. from sentry.utils import json
  6. from sentry_plugins.pivotal.plugin import PivotalPlugin
  7. class PivotalPluginTest(PluginTestCase):
  8. @fixture
  9. def plugin(self):
  10. return PivotalPlugin()
  11. def test_conf_key(self):
  12. assert self.plugin.conf_key == "pivotal"
  13. def test_entry_point(self):
  14. self.assertPluginInstalled("pivotal", self.plugin)
  15. def test_get_issue_label(self):
  16. group = self.create_group(message="Hello world", culprit="foo.bar")
  17. assert self.plugin.get_issue_label(group, 1) == "#1"
  18. def test_get_issue_url(self):
  19. group = self.create_group(message="Hello world", culprit="foo.bar")
  20. assert self.plugin.get_issue_url(group, 1) == "https://www.pivotaltracker.com/story/show/1"
  21. def test_is_configured(self):
  22. assert self.plugin.is_configured(None, self.project) is False
  23. self.plugin.set_option("token", "1", self.project)
  24. self.plugin.set_option("project", "1", self.project)
  25. assert self.plugin.is_configured(None, self.project) is True
  26. def test_no_secrets(self):
  27. self.user = self.create_user("foo@example.com")
  28. self.org = self.create_organization(owner=self.user, name="Rowdy Tiger")
  29. self.team = self.create_team(organization=self.org, name="Mariachi Band")
  30. self.project = self.create_project(organization=self.org, teams=[self.team], name="Bengal")
  31. self.login_as(self.user)
  32. self.plugin.set_option("token", "abcdef", self.project)
  33. url = reverse(
  34. "sentry-api-0-project-plugin-details",
  35. args=[self.org.slug, self.project.slug, "pivotal"],
  36. )
  37. res = self.client.get(url)
  38. config = json.loads(res.content)["config"]
  39. token_config = [item for item in config if item["name"] == "token"][0]
  40. assert token_config.get("type") == "secret"
  41. assert token_config.get("value") is None
  42. assert token_config.get("hasSavedValue") is True
  43. assert token_config.get("prefix") == "abcd"