Package grassyknoll :: Package tests :: Module test_norman
[hide private]

Source Code for Module grassyknoll.tests.test_norman

 1  """ 
 2  Test normans. 
 3  """ 
 4   
 5  from __future__ import with_statement 
 6   
 7  import datetime 
 8  from nose.tools import assert_raises 
 9  from grassyknoll.lib import Norman 
10   
11 -def testObject():
12 pants = Norman.ObjectNorman() 13 pants.sale_date = Norman.DateNorman() 14 pants.size = Norman.IntegerNorman(optional=True) 15 pants.color = Norman.UnicodeNorman() 16 pants.constant = Norman.FunctionNorman(lambda x: u"CONSTANT", prohibited=True, filled=True) 17 input = dict(sale_date='April 1, 2007', size='32', color='blue') 18 bluejeans = pants(input) 19 assert isinstance(bluejeans, dict) and bluejeans != input 20 assert bluejeans['size'] == 32 21 assert bluejeans['color'] == u'blue' 22 assert bluejeans['sale_date'] == datetime.date(2007, 4, 1) 23 assert bluejeans['constant'] == u'CONSTANT'
24
25 -def testTypes():
26 assert issubclass(Norman.NormanError, ValueError) 27 28 norm = Norman.NoneNorman() 29 assert norm(None) is norm('null') is None 30 assert_raises(Norman.NormanError, norm, 0) 31 32 norm = Norman.BoolNorman() 33 assert norm('yes') and norm(True) 34 assert not norm(0) and isinstance(norm('no'), bool) 35 assert_raises(Norman.NormanError, norm, None) 36 37 norm = Norman.FloatNorman() 38 assert norm('1.0') == 1.0 and isinstance(norm(0), float) 39 assert_raises(Norman.NormanError, norm, '0x1') 40 41 norm = Norman.StrNorman() 42 assert norm('abc') == 'abc' and isinstance(norm(u''), str) 43 assert_raises(Norman.NormanError, norm, []) 44 45 norm = Norman.DateTimeNorman() 46 assert norm('2008-1-1 12:00:00') == datetime.datetime(2008, 1, 1, 12) 47 assert isinstance(norm(0.0), datetime.datetime) 48 assert_raises(Norman.NormanError, norm, 'Yesterday')
49