Skip to content

Instantly share code, notes, and snippets.

@glenfant
glenfant / pipetestserver.py
Last active November 11, 2021 14:08
Use a stub HTTP server in unit tests for HTTP client testings (REST, ...)
# -*- coding: utf-8 -*-
"""\
==============
pipetestserver
==============
This recipe describes how you can create / activate and kill a temporary HTTP
server with a WSGI app to provide unittest resources to a client software,
that's the target of your application.
@glenfant
glenfant / mock_datetime_now.py
Last active November 11, 2021 14:08
A context manager that enables go quickly in the future or in the past with datetime.datetime.now(). This may be useful in lots of unit tests.
# -*- coding: utf-8 -*-
"""Mock datetime.datetime.now()"""
import contextlib
import datetime
@contextlib.contextmanager
def mock_datetime_now(*args, **kwargs):
"""Context manager for mocking out datetime.datetime.now() in unit tests.
@glenfant
glenfant / enumeration.py
Last active November 11, 2021 14:08
There is no enumeration type in Python a in some other languages as pascal or RubyThis is a poor man's enumeration that works as expected.
# -*- coding: utf-8 -*-
"""Python enumeration"""
import itertools
def enumeration(name, *auto, **named):
"""Pythonic enumeration type
>>> Colors = enumeration('Colors', 'GREEN', 'RED', 'YELLOW')
@glenfant
glenfant / mock_time.py
Last active November 11, 2021 14:08
A simple context manager that enabes to change time.time() to whatever you need (future or past) in your unit tests.
import contextlib
import time
@contextlib.contextmanager
def mock_time(timestamp):
"""A simple context manager for mocking time.time() useful for traveling
immediately in the future or in the past in unit tests.
>>> t0 = time.time()
>>> with mock_time(t0 + 5.0):
@glenfant
glenfant / buildouthelpers.py
Last active December 19, 2015 03:29
Make a wsgi script with zc.buildout (buildouthelpers.py)
WSGISCRIPT_TEMPLATE = """\
# -*- coding: utf-8 -*-
import sys
import os
sys.path[0:0] = [
{0}
]
_application = None
@glenfant
glenfant / buildout.cfg
Created June 29, 2013 12:40
Make a wsgi script with zc.buildout (buildout.cfg)
[wsgiscript]
# Build the wsgi script for mod_wsgi
recipe = z3c.recipe.runscript
install-script = ${buildout:directory}/buildouthelpers.py:make_wsgi_script
update-script = ${:install-script}
# Parameters
egg = egg.with.wsgiapp
script = ${buildout:parts-directory}/wsgiscript/myapp.wsgi
@glenfant
glenfant / recurse_to_jpg.py
Last active December 11, 2015 08:09
Hint to David Hernandez
import os
from PIL import Image
# Prefer the r"xxx" notation when you have backslashes
pathe = r"C:\David\"
for (path, dirs, files) in os.walk(pathe):
print path
print dirs
print files
for archivo in files:
@glenfant
glenfant / logging_yaml_config.py
Last active November 11, 2021 14:08
A example of logging medium complex configuration using YAML on Python 2.7 or 3.2
# -*- coding: utf-8
"""\
A simple demo of logging configuration with YAML (Python 2.7)
=============================================================
Requires PyYAML -> "easy_install PyYAML"
See the recipes for configuring logging with dicts and YAML
- http://docs.python.org/2.7/howto/logging-cookbook.html
- http://stackoverflow.com/questions/10519392/python2-7-logging-configuration-with-yaml
@glenfant
glenfant / issueorderinglist.py
Created August 28, 2012 15:30
sqlalchemy OrderingList issue
# -*- coding: utf-8 -*-
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, relationship
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.ext.orderinglist import ordering_list
from sqlalchemy import Column, Integer, Text, ForeignKey
sa_engine = create_engine("sqlite:///:memory:")
@glenfant
glenfant / test_aws_with_splinter.py
Created July 22, 2012 18:30
Démonstration de Splinter
# -*- coding: utf-8 -*-
"""Tests de www.alterway.fr avec splinter"""
# Préambule
import splinter
HOME = 'http://www.alterway.fr'
browser = splinter.Browser('firefox')
# On va à la page d'accueil