Skip to content

Instantly share code, notes, and snippets.

@davbo
davbo / mockman.py
Created May 8, 2012 16:22
Mocking django managers
from molly.apps.feeds.events import IndexView, Feed
from unittest import TestCase
class TestMocking(TestCase):
def test_mock_count(self):
Feed.objects = Mock()
feeds = [Feed(url='http://foo.bar'), Feed(url='http://bar.baz')]
mock_queryset = Mock(return_value=feeds)
mock_queryset.count.return_value = 42
Feed.objects.all = mock_queryset
>>> class IdentifierList(list):
... def by_namespace(self):
... return None
...
>>> class Locality():
... @property
... def identifiers(self):
... return IdentifierList(self._identifiers)
... @identifiers.setter
... def identifiers(self, value):
@davbo
davbo / gist:2907608
Created June 10, 2012 23:04
New vs. Old
>>> class Old():
... pass
...
>>> class New(object):
... pass
...
>>> type(Old())
<type 'instance'>
>>> type(New())
<class '__main__.New'>
@davbo
davbo / es.sh
Created June 26, 2012 10:35
Install ElasticSearch on Ubuntu 12.04
cd ~
sudo apt-get update
sudo apt-get install openjdk-7-jre -y
wget https://github.com/downloads/elasticsearch/elasticsearch/elasticsearch-0.19.6.tar.gz -O elasticsearch.tar.gz
tar -xf elasticsearch.tar.gz
rm elasticsearch.tar.gz
sudo mv elasticsearch-* elasticsearch
sudo mv elasticsearch /usr/local/share
@davbo
davbo / places.py
Created August 15, 2012 15:54
Content negotiation
from flask import Blueprint
from .helpers import template_or_json
from .views import ServiceView, register_mimetype
places = Blueprint('places', __name__, template_folder='templates')
@places.route('/')
@template_or_json('places/search.html')
@davbo
davbo / nowatch.py
Created October 3, 2012 17:42
Stop watching WebLearn repos
import requests
auth = (USER, PASS)
for repo in requests.get('https://api.github.com/user/subscriptions', params={'per_page': 100}, auth=auth).json:
if repo['name'].startswith('wl-'):
requests.delete('https://api.github.com/user/subscriptions/%s/%s' % (repo['owner']['login'], repo['name']), auth=auth)
@davbo
davbo / gist:5670378
Created May 29, 2013 13:49
Museums app JSON snippet
"slug":"history-of-science",
"website":"http://www.mhs.ox.ac.uk/",
"lng":-1.255504,
"opening_hours":"Tuesday to Friday: 12-5pm; Saturday: 10am-5pm; Sunday: 2-5pm; Monday: Closed",
"_links":{
"items":{
"href":"/museums/history-of-science/items/"
},
"self":{
"href":"/museums/history-of-science/"
@davbo
davbo / preloader.py
Created May 29, 2013 13:54
Preloads JSON & images for our University Museums offline JavaScript applicaiton
import json
import urllib2
import os
import codecs
from urlparse import urlparse
from string import Template
build_dir = os.environ['TARGET_FOLDER']
@davbo
davbo / preloaded.js
Created May 29, 2013 13:56
Replaces any preloaded images with locally cached version
define(['underscore'], function(_) {
return {
replace: function (images) {
// Look for the image in our preloaded images and replace
// the path if we find it.
var preload = window.preload || {};
_.each(images, function (val, key) {
if (_.has(preload, val)) {
images[key] = preload[val];
}
@davbo
davbo / blogs.opml.xml
Last active April 25, 2016 23:36
Programming blogs
<?xml version="1.0" encoding="UTF-8"?>
<opml version="1.0">
<head>
<title>Programming blogs</title>
</head>
<body>
<outline text="Developer blogs" title="Developer blogs">
<outline type="rss" text="flak rss" title="flak rss" xmlUrl="http://www.tedunangst.com/flak/rss" htmlUrl="http://www.tedunangst.com/flak/"/>
<outline type="rss" text="Kamal Marhubi" title="Kamal Marhubi" xmlUrl="http://kamalmarhubi.com/blog/feed.xml" htmlUrl="http://kamalmarhubi.com/"/>