예제 #1
0
 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)
예제 #2
0
 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
예제 #3
0
 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
예제 #4
0
 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)
예제 #5
0
    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)
예제 #6
0
 def test_get_lookup_key(self):
     assert IssuesByTagProcessor.get_lookup_key("generic") == "generic"
     assert IssuesByTagProcessor.get_lookup_key("user") == "sentry:user"
예제 #7
0
 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
예제 #8
0
 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)
예제 #9
0
 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)
예제 #10
0
 def get_header(self, key):
     return tuple(IssuesByTagProcessor.get_header_fields(key))