test_project_overview.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. from __future__ import absolute_import
  2. import pytz
  3. from datetime import datetime
  4. from django.utils import timezone
  5. from mock import patch
  6. from sentry.testutils import AcceptanceTestCase, SnubaTestCase
  7. class ProjectOverviewTest(AcceptanceTestCase, SnubaTestCase):
  8. def setUp(self):
  9. super(ProjectOverviewTest, 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'/{}/{}/dashboard/'.format(
  22. self.org.slug, self.project.slug)
  23. @patch('django.utils.timezone.now')
  24. def test_with_issues(self, mock_now):
  25. mock_now.return_value = datetime.utcnow().replace(tzinfo=pytz.utc)
  26. self.store_event(
  27. data={
  28. 'message': 'Foo bar',
  29. 'level': 'error',
  30. 'timestamp': timezone.now().isoformat()[:19]
  31. },
  32. project_id=self.project.id,
  33. assert_no_errors=False
  34. )
  35. self.browser.get(self.path)
  36. self.browser.wait_until('.chart-wrapper')
  37. self.browser.wait_until_not('.loading')
  38. self.browser.snapshot('project dashboard with issues')
  39. def test_with_no_issues(self):
  40. self.project.update(first_event=timezone.now())
  41. self.browser.get(self.path)
  42. self.browser.wait_until_not('.loading')
  43. self.browser.wait_until('.group-list-empty')
  44. self.browser.wait_until_not('.loading')
  45. self.browser.snapshot('project dashboard without issues')