Skip to content

Instantly share code, notes, and snippets.

I may be slow to respond.

David Cramer dcramer

I may be slow to respond.
View GitHub Profile
View gist:1526468
# install requirements from github
pip install git+ssh://
pip install git+ssh://
# start sentry webserver
sentry start
# add raven to whatever app
# e.g. Django:
dcramer / gist:1618119
Created Jan 16, 2012
Using Sentry from Heroku outside of Heroku
View gist:1618119
# create a dummy heroku app
heroku create --stack cedar
# add sentry
heroku addons:add sentry
# fetch your config
heroku config | grep SENTRY_DSN
# configure your application via
View gist:1755549
def ManagerMock(manager, return_value=None):
>>> objects = ManagerMock(Post.objects, ['queryset', 'result'])
>>> assert objects.filter() == objects.all()
return_value = return_value or []
class ManagerMock(mock.MagicMock):
def _get_child_mock(self, **kwargs):
View gist:2474362
Getting Play to work:
- Change Gemfile.lock's version of mocha to be 0.11.1
- Open iTunes -> select iTunes DJ -> Start playing a song
Some caveats:
- iTunes Match songs (that are not on disk) won't queue
- Frontend seems sluggish, but it could be the machine it's on (not super powerful, but should be able to keep up)
View gist:2475266
class Lock(object):
Uses the defined cache backend to create a lock.
>>> with Lock('key name'):
>>> # do something
def __init__(self, lock_key, timeout=10, cache=None):
if cache is None:
self.cache = _cache
View gist:2475204
with cache.Lock('key name'[, timeout]):
# do something that usually has a race thats too hard to solve
# best example
def get_or_create(model, **kwargs):
with cache.Lock('get_or_create:%s:%s' % (model, make_key(kwargs)):
View gist:2714856
:copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details.
:license: BSD, see LICENSE for more details.
import itertools
from django.conf import settings
View gist:3252165
dcramer / gist:3298424
Created Aug 8, 2012
Server side cursors in Django
View gist:3298424
#1: Connection method
with connections['default'].sscursor():
^^ this sucks because we make assumptions about where Foo routes
#2: QuerySet method
View gist:3344286
def test_switch_creation(self, time_mod):
self.mydict['hello'] = 'foo'
self.assertEquals(self.cache.set.call_count, 2)
time_mod.time.return_value = 1344893511
print time_mod.mock_calls
print self.cache.set.mock_calls
self.cache.set.assert_any_call(self.mydict.cache_key, {u'hello': u'foo'})
self.cache.set.assert_any_call(self.mydict.last_updated_cache_key, time_mod.time.return_value)
You can’t perform that action at this time.