def test_get_group(self): group = IssuesByTagProcessor.get_group(group_id=self.group.id, project=self.project) assert isinstance(group, Group) assert group == self.group with self.assertRaises(ExportError): IssuesByTagProcessor.get_group(group_id=-1, project=self.project)
def test_get_callbacks(self): generic_callbacks = IssuesByTagProcessor.get_callbacks("generic", self.project.id) assert isinstance(generic_callbacks, list) assert len(generic_callbacks) == 0 user_callbacks = IssuesByTagProcessor.get_callbacks("user", self.project.id) assert isinstance(user_callbacks, list) assert len(user_callbacks) == 1
def test_get_eventuser_callback(self): user_callback = IssuesByTagProcessor.get_eventuser_callback(self.project.id) processor = IssuesByTagProcessor( project_id=self.project.id, group_id=self.group.id, key="user", environment_id=None ) sample = processor.get_raw_data()[0] user_callback([sample]) assert sample._eventuser == self.euser
def test_serialize_row(self): processor = IssuesByTagProcessor( project_id=self.project.id, group_id=self.group.id, key="user", environment_id=None ) sample = processor.get_raw_data()[0] generic_row = IssuesByTagProcessor.serialize_row(sample, "generic") assert sorted(generic_row.keys()) == sorted(self.generic_header_fields) user_row = IssuesByTagProcessor.serialize_row(sample, "user") assert sorted(user_row.keys()) == sorted(self.user_header_fields)
def get(self, request, organization, project, group_id, key): # If the environment doesn't exist then the tag can't possibly exist try: environment_id = self._get_environment_id_from_request( request, project.organization_id) except Environment.DoesNotExist: raise Http404 try: processor = IssuesByTagProcessor(project_id=project.id, group_id=group_id, key=key, environment_id=environment_id) except ExportError: raise Http404 filename = f"{processor.group.qualified_short_id or processor.group.id}-{key}" return self.to_csv_response(processor.get_raw_data(), filename, key=key)
def test_get_lookup_key(self): assert IssuesByTagProcessor.get_lookup_key("generic") == "generic" assert IssuesByTagProcessor.get_lookup_key("user") == "sentry:user"
def test_get_header_fields(self): assert IssuesByTagProcessor.get_header_fields( "generic") == self.generic_header_fields assert IssuesByTagProcessor.get_header_fields( "user") == self.user_header_fields
def test_get_project(self): project = IssuesByTagProcessor.get_project(project_id=self.project.id) assert isinstance(project, Project) assert project == self.project with self.assertRaises(ExportError): IssuesByTagProcessor.get_project(project_id=-1)
def get_row(self, item, key): fields = IssuesByTagProcessor.get_header_fields(key) item_dict = IssuesByTagProcessor.serialize_row(item, key) return (item_dict[field] for field in fields)
def get_header(self, key): return tuple(IssuesByTagProcessor.get_header_fields(key))