test_create_project.py 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. from __future__ import absolute_import
  2. from sentry.testutils import AcceptanceTestCase
  3. from sentry.models import Project
  4. class CreateProjectTest(AcceptanceTestCase):
  5. def setUp(self):
  6. super(CreateProjectTest, self).setUp()
  7. self.user = self.create_user('foo@example.com')
  8. self.org = self.create_organization(
  9. name='Rowdy Tiger',
  10. )
  11. self.login_as(self.user)
  12. self.path = u'/organizations/{}/projects/new/'.format(self.org.slug)
  13. def test_simple(self):
  14. self.team = self.create_team(organization=self.org, name='Mariachi Band')
  15. self.create_member(
  16. user=self.user,
  17. organization=self.org,
  18. role='owner',
  19. teams=[self.team],
  20. )
  21. self.browser.get(self.path)
  22. self.browser.wait_until_not('.loading')
  23. self.browser.click('.platformicon-java')
  24. self.browser.snapshot(name='create project')
  25. self.browser.click('.new-project-submit')
  26. self.browser.wait_until(title='java')
  27. self.browser.wait_until_not('.loading')
  28. project = Project.objects.get(organization=self.org)
  29. assert project.name == 'Java'
  30. assert project.platform == 'java'
  31. assert project.teams.first() == self.team
  32. self.browser.snapshot(name='docs redirect')
  33. def test_no_teams(self):
  34. self.create_member(
  35. user=self.user,
  36. organization=self.org,
  37. role='owner',
  38. teams=[],
  39. )
  40. self.browser.get(self.path)
  41. self.browser.wait_until_not('.loading')
  42. self.browser.snapshot(name='create project no teams - index')
  43. self.browser.click('.ref-create-team')
  44. self.browser.wait_until('.modal-dialog')
  45. input = self.browser.element('input[name="slug"]')
  46. input.send_keys('new-team')
  47. self.browser.snapshot(name='create project no teams - create team modal')
  48. self.browser.element('.modal-dialog form').submit()
  49. # After creating team, should end up in onboarding screen
  50. self.browser.wait_until('.onboarding-info')
  51. self.browser.snapshot(name='create project no teams - after create team')
  52. def test_many_teams(self):
  53. self.team = self.create_team(organization=self.org, name='Mariachi Band')
  54. self.team2 = self.create_team(organization=self.org, name='team two')
  55. self.create_member(
  56. user=self.user,
  57. organization=self.org,
  58. role='owner',
  59. teams=[self.team, self.team2],
  60. )
  61. self.browser.get(self.path)
  62. self.browser.wait_until_not('.loading')
  63. self.browser.snapshot(name='create project many teams')