123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- from functools import cached_property
- import orjson
- import responses
- from django.urls import reverse
- from sentry.testutils.cases import PluginTestCase
- from sentry_plugins.redmine.plugin import RedminePlugin
- class RedminePluginTest(PluginTestCase):
- @cached_property
- def plugin(self):
- return RedminePlugin()
- def test_conf_key(self):
- assert self.plugin.conf_key == "redmine"
- def test_entry_point(self):
- self.assertPluginInstalled("redmine", self.plugin)
- self.assertAppInstalled("redmine", "sentry_plugins.redmine")
- @responses.activate
- def test_config_validation(self):
- responses.add(responses.GET, "https://bugs.redmine.org")
- config = {
- "host": "https://bugs.redmine.org",
- "key": "supersecret",
- }
- self.plugin.validate_config(self.project, config)
- def test_no_secrets(self):
- self.login_as(self.user)
- self.plugin.set_option("key", "supersecret", self.project)
- url = reverse(
- "sentry-api-0-project-plugin-details",
- args=[self.organization.slug, self.project.slug, "redmine"],
- )
- res = self.client.get(url)
- config = orjson.loads(res.content)["config"]
- key_config = [item for item in config if item["name"] == "key"][0]
- assert key_config.get("type") == "secret"
- assert key_config.get("value") is None
|