def test_get_subscription_from_attributes(self): attrs = {"subscription": (True, True, None)} assert get_subscription_from_attributes(attrs) == (True, { "disabled": True }) attrs = {"subscription": (True, False, None)} assert get_subscription_from_attributes(attrs) == (False, { "disabled": True })
def serialize(self, obj, attrs, user): status_details, status_label = self._get_status(attrs, obj) permalink = self._get_permalink(obj, user) is_subscribed, subscription_details = get_subscription_from_attributes( attrs) share_id = attrs["share_id"] group_dict = { "id": str(obj.id), "shareId": share_id, "shortId": obj.qualified_short_id, "title": obj.title, "culprit": obj.culprit, "permalink": permalink, "logger": obj.logger or None, "level": LOG_LEVELS.get(obj.level, "unknown"), "status": status_label, "statusDetails": status_details, "isPublic": share_id is not None, "platform": obj.platform, "project": { "id": str(obj.project.id), "name": obj.project.name, "slug": obj.project.slug, "platform": obj.project.platform, }, "type": obj.get_event_type(), "metadata": obj.get_event_metadata(), "numComments": obj.num_comments, "assignedTo": serialize(attrs["assigned_to"], user, ActorSerializer()), "isBookmarked": attrs["is_bookmarked"], "isSubscribed": is_subscribed, "subscriptionDetails": subscription_details, "hasSeen": attrs["has_seen"], "annotations": attrs["annotations"], } # This attribute is currently feature gated if "is_unhandled" in attrs: group_dict["isUnhandled"] = attrs["is_unhandled"] if "times_seen" in attrs: group_dict.update(self._convert_seen_stats(attrs)) return group_dict