def testGroupDelete(self): c = Client() c.post(reverse("error-post"), data) assert Group.all().count() == 1, "Got %s groups, not 1" % Group.all().count() assert Error.all().count() == 1 Error.all()[0].delete() assert Group.all().count() == 0
def default_grouping(instance, **kw): """ Given an error, see if we can fingerprint it and find similar ones """ log("Firing signal: default_grouping") hsh = generate_key(instance) if hsh: digest = hsh.hexdigest() try: created = False group = Group.objects.filter(uid=digest)[0] group.count = F('count')+getattr(instance, 'count', 1) group.save() except IndexError: created = True group = Group() group.uid = digest group.count = 1 group.save() instance.group = group instance.save() if created: signals.group_assigned.send(sender=group.__class__, instance=group) signals.error_assigned.send(sender=instance.__class__, instance=instance)
def testAddProject(self): project = Project(name="test") project.save() project_url = ProjectURL() project_url.url = "badapp.org" project_url.stage = "dev" project_url.project = project project_url.save() self._addError() assert Group.all().count() == 1 assert Group.all()[0].project_url == project_url
def testGroup(self): c = Client() c.post(reverse("error-post"), data) assert Group.all().count() == 1, "Got %s groups, not 1" % Group.all().count() c.post(reverse("error-post"), data) assert Group.all().count() == 1 new_data = data.copy() new_data["status"] = 402 c.post(reverse("error-post"), new_data) assert Group.all().count() == 2 # and test similar assert not Error.all()[2].get_similar() assert len(Error.all()[1].get_similar()) == 1 assert len(Error.all()[1].get_similar()) == 1
def setUp(self): for error in Error.all(): error.delete() for group in Group.all(): group.delete() for project in Project.all(): project.delete()
def setUp(self): for issue in Issue.all(): issue.delete() for log in Log.all(): log.delete() for comment in Comment.all(): comment.delete() for group in Group.all(): group.delete() for error in Error.all(): error.delete() for project in Project.all(): project.delete()
def default_grouping(instance, **kw): """ Given an error, see if we can fingerprint it and find similar ones """ # prevent an infinite loop log("Firing signal: default_grouping") if instance.group: return hsh = generate_key(instance) if hsh: digest = hsh.hexdigest() try: created = False group = Group.all().filter("uid = ", digest)[0] group.count = Error.all().filter("group = ", group).count() + 1 group.save() except IndexError: created = True group = Group() group.uid = digest group.count = 1 group.save() instance.group = group instance.save() if created: signals.group_assigned.send(sender=group.__class__, instance=group)
def testIssueGroup(self): self._setup() self._issue() group = Group.all()[0] self.issue.add_group(group) assert group == self.issue.issuegroup_set[0].group assert self.issue.issuegroup_set.count() == 1 assert self.issue == IssueGroup.all().filter("issue = ", self.issue)[0].issue
def issue_add(request): issue_form = IssueForm(request.POST or request.GET or None) group_form = GroupForm(request.POST or request.GET or None) if issue_form.is_valid() and group_form.is_valid(): obj = issue_form.save(commit=False) obj.creator = request.user obj.save() if group_form.cleaned_data.get("group"): group = Group.get(group_form.cleaned_data["group"]) IssueGroup(group=group, issue=obj).save() return HttpResponseRedirect(reverse("issues-list")) return direct_to_template(request, "issue_add.html", extra_context={ "issue_form": issue_form, "group_form": group_form, "nav": {"selected": "issues", "subnav": "add"}, })
def issue_add(request): issue_form = IssueForm(request.POST or request.GET or None) group_form = GroupForm(request.POST or request.GET or None) if issue_form.is_valid() and group_form.is_valid(): obj = issue_form.save(commit=False) obj.creator = request.user obj.save() if group_form.cleaned_data.get("group"): group = Group.get(group_form.cleaned_data["group"]) IssueGroup(group=group, issue=obj).save() return HttpResponseRedirect(reverse("issues-list")) return direct_to_template(request, "issue_add.html", extra_context={ "issue_form": issue_form, "group_form": group_form, "nav": { "selected": "issues", "subnav": "add" }, })
def handle_group(self, value): try: return Group.get(value) except IndexError: pass