Example #1
0
def test_group_by_class():
    snapshot()
    a = AAA()
    b = BBB()
    c = BBB()

    result = group_by_class()
    assert result['tests.test_drainhunter.BBB'] == [b, c]
    assert result['tests.test_drainhunter.AAA'] == [a]
Example #2
0
def index(snapshot_url):
    objects = group_by_class()
    if not objects:
        return 404, 'There are no any new objects, wait and refresh the page'
    else:
        out = 'Take new <a href="%s">snapshot</a><br /><br />' % snapshot_url

        for k, v in reversed(sorted(objects.items(), key=lambda r: (len(r[1]), r[0]))):
            out += '<a href="list/%s.dot">%s</a>: %d<br />' % (k, k, len(v))

        return 200, out
Example #3
0
def object_list(request, cls, format):
    for k, objects in group_by_class().iteritems():
        if k == cls:
            break
    else:
        return HttpResponse('There are no any objects of class %s, try to refresh page later'
            ' or go to <a href="%s">index</a>.' % ( cls, reverse('drainhunter-index')))

    objgraph.show_backrefs(objects, filename="/tmp/objgraph.dot")
    if format == 'dot':
        response = HttpResponse(open('/tmp/objgraph.dot'), mimetype='text/vnd.graphviz')
        response['Content-Disposition'] = 'attachment; filename=objgraph.dot'
        return response
    elif format == 'png':
        return HttpResponse(open('/tmp/objgraph.png'), mimetype='image/png')

    convert_to_svg("/tmp/objgraph.dot", "/tmp/objgraph.svg")
    return HttpResponse(open('/tmp/objgraph.svg'), mimetype='image/svg+xml')