Package grassyknoll :: Package tests
[hide private]

Source Code for Package grassyknoll.tests

 1  """helpers for tests""" 
 2   
 3  __all__=['assert_sorted_equals', 'assert_sorted_not_equals', 'loadFixtures'] 
 4   
 5  from nose.tools import * 
 6  import os.path 
 7  import tarfile 
 8  import simplejson 
 9   
10 -def assert_sorted_equals(x, y, msg=None):
11 """assert that two iterables are equal when sorted""" 12 x=sorted(x) 13 y=sorted(y) 14 assert x == y, msg or "%r != %r" %(x, y) 15 return True
16
17 -def assert_sorted_not_equals(x, y, msg=None):
18 """assert that two iterables are unequal when sorted""" 19 x=sorted(x) 20 y=sorted(y) 21 assert x != y, msg or "%r == %r" %(x, y) 22 return True
23 24
25 -def test_sorted():
26 27 assert assert_sorted_equals(xrange(5), reversed(xrange(5))) 28 assert assert_sorted_not_equals(xrange(11), reversed(xrange(5))) 29 assert_raises(AssertionError, assert_sorted_equals, 30 xrange(5), reversed(xrange(11))) 31 assert_raises(AssertionError, assert_sorted_not_equals, 32 xrange(5), reversed(xrange(5)))
33 34
35 -def loadFixtures(name):
36 """Generate filenames and json data from directory or tarball 37 38 @arg name: the name of the thing to load from. If a directory, use that, 39 otherwise use name.tar.gz 40 @type arg: string 41 """ 42 if os.path.isdir(name): return walk(name) 43 else: return extract(name)
44
45 -def walk(name):
46 "Generate filenames and json data from directory." 47 for root, dirs, files in os.walk(name): 48 for filename in files: 49 rootname, ext = os.path.splitext(filename) 50 if ext == '.json': 51 yield rootname, simplejson.load(open(os.path.join(root, filename)))
52
53 -def extract(name):
54 "Generate filenames and json data from tarfile." 55 tf = tarfile.open(name + '.tar.gz') 56 for member in tf: 57 rootname, ext = os.path.splitext(os.path.basename(member.name)) 58 if member.isfile() and not rootname.startswith('.') and ext == '.json': 59 yield rootname, simplejson.load(tf.extractfile(member))
60