<s> from roost import properties <EOL> from nose . tools import * <EOL> from mock import Mock , patch <EOL> from twisted . trial import unittest <EOL> class TestProperies ( unittest . TestCase ) : <EOL> def setUp ( self ) : <EOL> self . p = properties . Properties ( ) <EOL> def test_heirarchy ( self ) : <EOL> self . p [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> self . p [ '<STR_LIT>' ] = [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:8> ] <EOL> eq_ ( self . p [ '<STR_LIT>' ] , '<STR_LIT>' ) <EOL> eq_ ( self . p [ '<STR_LIT>' ] , { "<STR_LIT>" : { '<STR_LIT:name>' : '<STR_LIT>' , '<STR_LIT>' : [ <NUM_LIT:1> , <NUM_LIT:2> , <NUM_LIT:8> ] } } ) <EOL> def test_missing_keys ( self ) : <EOL> eq_ ( self . p [ '<STR_LIT>' ] , { } ) <EOL> def test_incompatible_values_are_overwritten ( self ) : <EOL> self . p [ '<STR_LIT>' ] = '<STR_LIT:foo>' <EOL> self . p [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> eq_ ( self . p [ '<STR_LIT>' ] , { '<STR_LIT>' : '<STR_LIT>' } ) <EOL> self . p [ '<STR_LIT>' ] = '<STR_LIT:d>' <EOL> eq_ ( self . p [ '<STR_LIT>' ] , { '<STR_LIT>' : { '<STR_LIT:a>' : { '<STR_LIT:b>' : { '<STR_LIT:c>' : '<STR_LIT:d>' } } } } ) <EOL> def test_maps_are_merged ( self ) : <EOL> self . p [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> self . p [ '<STR_LIT>' ] = { '<STR_LIT>' : '<STR_LIT>' } <EOL> eq_ ( self . p [ '<STR_LIT>' ] , { '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : '<STR_LIT>' } ) <EOL> def test_creates_keys_for_submaps ( self ) : <EOL> self . p [ '<STR_LIT>' ] = { '<STR_LIT>' : { '<STR_LIT:name>' : '<STR_LIT>' } } <EOL> self . p [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> eq_ ( self . p [ '<STR_LIT>' ] , '<STR_LIT>' ) <EOL> def test_export ( self ) : <EOL> self . p [ '<STR_LIT>' ] = [ "<STR_LIT:a>" , "<STR_LIT:b>" , "<STR_LIT:c>" ] <EOL> self . p [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> self . p [ '<STR_LIT>' ] = <NUM_LIT:1> <EOL> eq_ ( self . p . export ( ) , { <EOL> '<STR_LIT>' : { '<STR_LIT>' : <NUM_LIT:1> , '<STR_LIT>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : [ "<STR_LIT:a>" , "<STR_LIT:b>" , "<STR_LIT:c>" ] } ) <EOL> def test_set ( self ) : <EOL> self . p [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> self . p [ '<STR_LIT>' ] = { '<STR_LIT>' : <NUM_LIT:1> , '<STR_LIT>' : <NUM_LIT:2> } <EOL> eq_ ( self . p [ '<STR_LIT>' ] , <NUM_LIT:1> ) <EOL> eq_ ( self . p [ '<STR_LIT>' ] , <NUM_LIT:2> ) <EOL> def test_update_in ( self ) : <EOL> self . p . update_in ( '<STR_LIT>' , '<STR_LIT>' , { '<STR_LIT>' : <NUM_LIT:1> } ) <EOL> self . p . update_in ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT:2> ) <EOL> self . p . update_in ( '<STR_LIT>' , '<STR_LIT>' ) <EOL> eq_ ( self . p [ '<STR_LIT>' ] , <NUM_LIT:1> ) <EOL> eq_ ( self . p [ '<STR_LIT>' ] , <NUM_LIT:2> ) <EOL> eq_ ( self . p [ '<STR_LIT>' ] , '<STR_LIT>' ) <EOL> def test_save ( self ) : <EOL> p = properties . Properties ( '<STR_LIT>' ) <EOL> p [ '<STR_LIT:foo>' ] = '<STR_LIT:bar>' <EOL> p = properties . Properties ( '<STR_LIT>' ) <EOL> eq_ ( p [ '<STR_LIT:foo>' ] , '<STR_LIT:bar>' ) <EOL> def test_default_properties ( self ) : <EOL> p = properties . Properties ( defaults = { '<STR_LIT:foo>' : '<STR_LIT:bar>' } ) <EOL> eq_ ( p . export ( ) , { '<STR_LIT:foo>' : '<STR_LIT:bar>' } ) </s>
