''' unexplained behavior: py.test generative test appears to repeat tests USE: > py.test test_PNG_colorization NOTES: o Requires installation of py.test (http://codespeak.net/py/dist/test.html) AUTHOR: jim.vickroy@noaa.gov ''' from __future__ import absolute_import class Image(object): _palettes_ = { 'Flame' : ['OPEN'], # no filter 'Green' : ['PTHK_0'], 'Blue' : ['BE12A_0'], 'Gray' : ['AL12_1'], } def __init__(self): self.info = dict() def __str__(self): return self.__class__.__name__ source = Image() def process(source): filter = source.info['wavelnth'] processed = Image() processed.info = source.info for palette, filters in Image._palettes_.items(): if filter in filters: processed.info['palette'] = palette break else: raise NotImplementedError('no palette defined for the %s filter' % filter) return processed def test_filters(): for filter, palette in zip(('OPEN','PTHK_0','BE12A_0','AL12_1'), ('Flame','Green','Blue','Gray')): source.info['wavelnth'] = filter processed = process(source) print 'yielding:',check,processed,palette yield check, processed, palette # NOTE: this does not work as expected #~ assert processed.info['palette'] == palette, processed.info['palette'] # NOTE: this works as expected! def check(image,palette): print 'checking %s palette' % image assert image.info['palette'] == palette, image.info['palette']