def test_call_tracking(self): # only works in >= mock 0.8 manager = make_manager() inst = ManagerMock(manager, 'foo') inst.filter(foo='bar').select_related('baz') calls = inst.mock_calls self.assertGreater(len(calls), 1) inst.assert_chain_calls(mock.call.filter(foo='bar')) inst.assert_chain_calls(mock.call.select_related('baz'))
def test_redirects_to_stream_if_has_groups(self): self.login_as(self.user) manager = ManagerMock(Group.objects, Group()) with mock.patch('sentry.models.Group.objects', manager): resp = self.client.get(self.path) manager.assert_chain_calls(mock.call.filter(project=self.project), ) manager.exists.assert_called_once_with() assert resp.status_code == 302 assert resp['Location'] == 'http://testserver' + reverse( 'sentry-stream', args=[self.project.slug])
def test_redirects_to_stream_if_has_groups(self): self.login_as(self.user) manager = ManagerMock(Group.objects, Group()) with mock.patch('sentry.models.Group.objects', manager): resp = self.client.get(self.path) manager.assert_chain_calls( mock.call.filter(project=self.project), ) manager.exists.assert_called_once_with() assert resp.status_code == 302 assert resp['Location'] == 'http://testserver' + reverse('sentry-stream', args=[self.project.slug])
def test_does_not_redirect_if_has_projects(self, can_create_projects): self.login_as(self.user) manager = ManagerMock(Project.objects, self.project) with mock.patch('sentry.models.Project.objects', manager): resp = self.client.get(self.path) assert not can_create_projects.called manager.assert_chain_calls(mock.call.filter(team=self.team), ) assert resp.status_code == 200 self.assertTemplateUsed(resp, 'sentry/dashboard.html') assert resp.context['team'] == self.team assert resp.context['project_list'] == [self.project] assert resp.context['SECTION'] == 'events'
def test_does_not_reidrect_if_missing_project_permission( self, can_create_projects): self.login_as(self.user) can_create_projects.return_value = False manager = ManagerMock(Project.objects) with mock.patch('sentry.models.Project.objects', manager): resp = self.client.get(self.path) can_create_projects.assert_called_once_with(self.user, team=self.team) manager.assert_chain_calls(mock.call.filter(team=self.team), ) assert resp.status_code == 200 self.assertTemplateUsed(resp, 'sentry/dashboard.html')
def test_redirects_to_create_project_if_none_and_can_create_projects(self, can_create_projects): self.login_as(self.user) can_create_projects.return_value = True manager = ManagerMock(Project.objects) with mock.patch('sentry.models.Project.objects', manager): resp = self.client.get(self.path) can_create_projects.assert_called_once_with(self.user, team=self.team) manager.assert_chain_calls( mock.call.filter(team=self.team), ) assert resp.status_code == 302 assert resp['Location'] == 'http://testserver' + reverse('sentry-new-project', args=[self.team.slug])
def test_does_not_redirect_if_has_projects(self, can_create_projects): self.login_as(self.user) manager = ManagerMock(Project.objects, self.project) with mock.patch('sentry.models.Project.objects', manager): resp = self.client.get(self.path) assert not can_create_projects.called manager.assert_chain_calls( mock.call.filter(team=self.team), ) assert resp.status_code == 200 self.assertTemplateUsed(resp, 'sentry/dashboard.html') assert resp.context['team'] == self.team assert resp.context['project_list'] == [self.project]
def test_does_not_reidrect_if_missing_project_permission(self, can_create_projects): self.login_as(self.user) can_create_projects.return_value = False manager = ManagerMock(Project.objects) with mock.patch('sentry.models.Project.objects', manager): resp = self.client.get(self.path) can_create_projects.assert_called_once_with(self.user, team=self.team) manager.assert_chain_calls( mock.call.filter(team=self.team), ) assert resp.status_code == 200 self.assertTemplateUsed(resp, 'sentry/dashboard.html')