test_project_releases.py 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. from __future__ import absolute_import
  2. import json
  3. import pytest
  4. from django.conf import settings
  5. from django.utils import timezone
  6. from sentry.testutils import AcceptanceTestCase
  7. class ProjectReleasesTest(AcceptanceTestCase):
  8. def setUp(self):
  9. super(ProjectReleasesTest, self).setUp()
  10. self.user = self.create_user("foo@example.com")
  11. self.org = self.create_organization(owner=self.user, name="Rowdy Tiger")
  12. self.team = self.create_team(organization=self.org, name="Mariachi Band")
  13. self.project = self.create_project(organization=self.org, teams=[self.team], name="Bengal")
  14. self.login_as(self.user)
  15. self.path = u"/{}/{}/releases/".format(self.org.slug, self.project.slug)
  16. @pytest.mark.skip(reason="Sentry 9 only")
  17. def test_with_releases(self):
  18. release = self.create_release(project=self.project, version="1.0")
  19. self.create_group(first_release=release, project=self.project, message="Foo bar")
  20. self.project.update(first_event=timezone.now())
  21. self.browser.get(self.path)
  22. self.browser.wait_until_not(".loading")
  23. self.browser.wait_until(".ref-project-releases")
  24. self.browser.snapshot("project releases with releases")
  25. @pytest.mark.skip(reason="Sentry 9 only")
  26. def test_with_no_releases(self):
  27. self.dismiss_assistant()
  28. self.browser.get(self.path)
  29. self.browser.wait_until_not(".loading")
  30. self.browser.wait_until(".ref-project-releases")
  31. self.browser.snapshot("project releases without releases")
  32. def dismiss_assistant(self):
  33. # Forward session cookie to django client.
  34. self.client.cookies[settings.SESSION_COOKIE_NAME] = self.session.session_key
  35. res = self.client.put(
  36. "/api/0/assistant/",
  37. content_type="application/json",
  38. data=json.dumps({"guide_id": 2, "status": "viewed", "useful": True}),
  39. )
  40. assert res.status_code == 201
  41. class ProjectReleaseDetailsTest(AcceptanceTestCase):
  42. def setUp(self):
  43. super(ProjectReleaseDetailsTest, self).setUp()
  44. self.user = self.create_user("foo@example.com")
  45. self.org = self.create_organization(owner=self.user, name="Rowdy Tiger")
  46. self.team = self.create_team(organization=self.org, name="Mariachi Band")
  47. self.project = self.create_project(
  48. organization=self.org, teams=[self.team], name="Bengal", first_event=timezone.now()
  49. )
  50. self.release = self.create_release(project=self.project, version="1.0")
  51. self.create_group(first_release=self.release, project=self.project, message="Foo bar")
  52. self.login_as(self.user)
  53. self.path = u"/{}/{}/releases/{}/".format(
  54. self.org.slug, self.project.slug, self.release.version
  55. )
  56. @pytest.mark.skip(reason="Sentry 9 only")
  57. def test_release_details_no_commits_no_deploys(self):
  58. self.browser.get(self.path)
  59. self.browser.wait_until_not(".loading")
  60. self.browser.wait_until(".ref-release-details")
  61. self.browser.snapshot("project release details no commits no deploys")