test_project_releases.py 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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(
  12. owner=self.user, name='Rowdy Tiger')
  13. self.team = self.create_team(
  14. organization=self.org, name='Mariachi Band')
  15. self.project = self.create_project(
  16. organization=self.org,
  17. teams=[self.team],
  18. name='Bengal',
  19. )
  20. self.login_as(self.user)
  21. self.path = u'/{}/{}/releases/'.format(
  22. self.org.slug, self.project.slug)
  23. @pytest.mark.skip(reason="Sentry 9 only")
  24. def test_with_releases(self):
  25. release = self.create_release(
  26. project=self.project,
  27. version='1.0',
  28. )
  29. self.create_group(
  30. first_release=release,
  31. project=self.project,
  32. message='Foo bar',
  33. )
  34. self.project.update(first_event=timezone.now())
  35. self.browser.get(self.path)
  36. self.browser.wait_until_not('.loading')
  37. self.browser.wait_until('.ref-project-releases')
  38. self.browser.snapshot('project releases with releases')
  39. @pytest.mark.skip(reason="Sentry 9 only")
  40. def test_with_no_releases(self):
  41. self.dismiss_assistant()
  42. self.browser.get(self.path)
  43. self.browser.wait_until_not('.loading')
  44. self.browser.wait_until('.ref-project-releases')
  45. self.browser.snapshot('project releases without releases')
  46. def dismiss_assistant(self):
  47. # Forward session cookie to django client.
  48. self.client.cookies[settings.SESSION_COOKIE_NAME] = self.session.session_key
  49. res = self.client.put(
  50. '/api/0/assistant/',
  51. content_type='application/json',
  52. data=json.dumps({'guide_id': 2, 'status': 'viewed', 'useful': True}))
  53. assert res.status_code == 201
  54. class ProjectReleaseDetailsTest(AcceptanceTestCase):
  55. def setUp(self):
  56. super(ProjectReleaseDetailsTest, self).setUp()
  57. self.user = self.create_user('foo@example.com')
  58. self.org = self.create_organization(
  59. owner=self.user, name='Rowdy Tiger')
  60. self.team = self.create_team(
  61. organization=self.org, name='Mariachi Band')
  62. self.project = self.create_project(
  63. organization=self.org,
  64. teams=[self.team],
  65. name='Bengal',
  66. first_event=timezone.now(),
  67. )
  68. self.release = self.create_release(
  69. project=self.project,
  70. version='1.0',
  71. )
  72. self.create_group(
  73. first_release=self.release,
  74. project=self.project,
  75. message='Foo bar',
  76. )
  77. self.login_as(self.user)
  78. self.path = u'/{}/{}/releases/{}/'.format(
  79. self.org.slug, self.project.slug, self.release.version)
  80. @pytest.mark.skip(reason="Sentry 9 only")
  81. def test_release_details_no_commits_no_deploys(self):
  82. self.browser.get(self.path)
  83. self.browser.wait_until_not('.loading')
  84. self.browser.wait_until('.ref-release-details')
  85. self.browser.snapshot('project release details no commits no deploys')