<s> from datetime import datetime <EOL> import pytest <EOL> from nefertari . utils . dictset import dictset <EOL> class TestDictset ( object ) : <EOL> def test_copy ( self ) : <EOL> dset1 = dictset ( { '<STR_LIT:foo>' : '<STR_LIT:bar>' } ) <EOL> dset2 = dset1 . copy ( ) <EOL> assert dset1 is not dset2 <EOL> assert dset1 == dset2 <EOL> def test_subset_no_keys ( self ) : <EOL> dset1 = dictset ( { '<STR_LIT:foo>' : '<STR_LIT:bar>' , '<STR_LIT>' : '<STR_LIT>' } ) <EOL> dset2 = dset1 . subset ( [ ] ) <EOL> assert dset1 is not dset2 <EOL> assert dset1 != dset2 <EOL> def test_subset ( self ) : <EOL> dset1 = dictset ( { '<STR_LIT:foo>' : '<STR_LIT:bar>' , '<STR_LIT>' : '<STR_LIT>' } ) <EOL> dset2 = dset1 . subset ( [ '<STR_LIT:foo>' , '<STR_LIT>' ] ) <EOL> assert dict ( dset2 ) == { '<STR_LIT:foo>' : '<STR_LIT:bar>' } <EOL> def test_subset_exclude ( self ) : <EOL> dset1 = dictset ( { '<STR_LIT:foo>' : '<STR_LIT:bar>' , '<STR_LIT>' : '<STR_LIT>' } ) <EOL> dset2 = dset1 . subset ( [ '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> assert dict ( dset2 ) == { '<STR_LIT:foo>' : '<STR_LIT:bar>' } <EOL> def test_remove ( self ) : <EOL> dset1 = dictset ( { '<STR_LIT:foo>' : '<STR_LIT:bar>' , '<STR_LIT>' : '<STR_LIT>' } ) <EOL> dset2 = dset1 . remove ( [ '<STR_LIT>' ] ) <EOL> assert dict ( dset2 ) == { '<STR_LIT:foo>' : '<STR_LIT:bar>' } <EOL> def test_getattr ( self ) : <EOL> dset1 = dictset ( { '<STR_LIT:foo>' : '<STR_LIT:bar>' , '<STR_LIT>' : '<STR_LIT>' } ) <EOL> assert dset1 . foo == '<STR_LIT:bar>' <EOL> assert dset1 . fruit == '<STR_LIT>' <EOL> def test_setattr ( self ) : <EOL> dset1 = dictset ( ) <EOL> dset1 . boo = <NUM_LIT:1> <EOL> assert dict ( dset1 ) == { '<STR_LIT>' : <NUM_LIT:1> } <EOL> def test_asbool ( self ) : <EOL> dset1 = dictset ( { <EOL> '<STR_LIT:foo>' : '<STR_LIT:true>' , '<STR_LIT>' : '<STR_LIT:false>' , <EOL> '<STR_LIT>' : True , '<STR_LIT>' : False } ) <EOL> assert dset1 . asbool ( '<STR_LIT:foo>' ) <EOL> assert dset1 . asbool ( '<STR_LIT>' ) <EOL> assert isinstance ( dset1 . asbool ( '<STR_LIT:foo>' ) , bool ) <EOL> assert isinstance ( dset1 . asbool ( '<STR_LIT>' ) , bool ) <EOL> assert not dset1 . asbool ( '<STR_LIT>' ) <EOL> assert not dset1 . asbool ( '<STR_LIT>' ) <EOL> def test_asbool_set ( self ) : <EOL> dset1 = dictset ( { '<STR_LIT:foo>' : '<STR_LIT:true>' } ) <EOL> assert dset1 . asbool ( '<STR_LIT:foo>' , _set = True ) <EOL> assert dset1 . foo <EOL> assert dset1 . foo != '<STR_LIT:true>' <EOL> def test_asbool_pop ( self ) : <EOL> dset1 = dictset ( { '<STR_LIT:foo>' : '<STR_LIT:true>' } ) <EOL> assert dset1 . asbool ( '<STR_LIT:foo>' , pop = True ) <EOL> assert '<STR_LIT:foo>' not in dset1 <EOL> def test_asbool_default ( self ) : <EOL> dset1 = dictset ( { '<STR_LIT:foo>' : '<STR_LIT:true>' } ) <EOL> assert dset1 . asbool ( '<STR_LIT>' , default = True ) <EOL> assert '<STR_LIT>' not in dset1 <EOL> def test_aslist ( self ) : <EOL> dset1 = dictset ( { '<STR_LIT:foo>' : '<STR_LIT>' } ) <EOL> assert dset1 . aslist ( '<STR_LIT:foo>' ) == [ '<STR_LIT:1>' , '<STR_LIT:2>' , '<STR_LIT:3>' ] <EOL> def test_aslist_set ( self ) : <EOL> dset1 = dictset ( { '<STR_LIT:foo>' : '<STR_LIT>' } ) <EOL> assert dset1 . aslist ( '<STR_LIT:foo>' , _set = True ) == [ '<STR_LIT:1>' , '<STR_LIT:2>' , '<STR_LIT:3>' ] <EOL> assert dset1 . foo == [ '<STR_LIT:1>' , '<STR_LIT:2>' , '<STR_LIT:3>' ] <EOL> def test_aslist_default ( self ) : <EOL> dset1 = dictset ( { '<STR_LIT:foo>' : '<STR_LIT>' } ) <EOL> assert dset1 . aslist ( '<STR_LIT>' , default = [ '<STR_LIT:1>' ] ) == [ '<STR_LIT:1>' ] <EOL> assert '<STR_LIT>' not in dset1 <EOL> def test_asint ( self ) : <EOL> assert dictset ( { '<STR_LIT:foo>' : '<STR_LIT:1>' } ) . asint ( '<STR_LIT:foo>' ) == <NUM_LIT:1> <EOL> def test_asint_set ( self ) : <EOL> dset = dictset ( { '<STR_LIT:foo>' : '<STR_LIT:1>' } ) <EOL> assert dset . asint ( '<STR_LIT:foo>' , _set = True ) == <NUM_LIT:1> <EOL> assert dset . foo == <NUM_LIT:1> <EOL> def test_asint_default ( self ) : <EOL> dset = dictset ( { '<STR_LIT:foo>' : '<STR_LIT:1>' } ) <EOL> assert dset . asint ( '<STR_LIT>' , default = <NUM_LIT:2> ) == <NUM_LIT:2> <EOL> assert '<STR_LIT>' not in dset <EOL> def test_asfloat ( self ) : <EOL> assert dictset ( { '<STR_LIT:foo>' : '<STR_LIT:1.0>' } ) . asfloat ( '<STR_LIT:foo>' ) == <NUM_LIT:1.0> <EOL> def test_asfloat_set ( self ) : <EOL> dset = dictset ( { '<STR_LIT:foo>' : '<STR_LIT:1.0>' } ) <EOL> assert dset . asfloat ( '<STR_LIT:foo>' , _set = True ) == <NUM_LIT:1.0> <EOL> assert dset . foo == <NUM_LIT:1.0> <EOL> def test_asfloat_default ( self ) : <EOL> dset = dictset ( { '<STR_LIT:foo>' : '<STR_LIT:1.0>' } ) <EOL> assert dset . asfloat ( '<STR_LIT>' , default = <NUM_LIT> ) == <NUM_LIT> <EOL> assert '<STR_LIT>' not in dset <EOL> def test_asdict ( self ) : <EOL> dset = dictset ( { '<STR_LIT:foo>' : "<STR_LIT>" } ) <EOL> assert dset . asdict ( '<STR_LIT:foo>' ) == { <EOL> '<STR_LIT:a>' : [ '<STR_LIT:2>' , "<STR_LIT>" , '<STR_LIT:1>' ] , '<STR_LIT:b>' : '<STR_LIT>' , '<STR_LIT:c>' : '<STR_LIT:True>' } <EOL> def test_asdict_type ( self ) : <EOL> dset = dictset ( { '<STR_LIT:foo>' : "<STR_LIT>" } ) <EOL> assert dset . asdict ( '<STR_LIT:foo>' , _type = lambda x : int ( x ) ) == { '<STR_LIT:a>' : [ <NUM_LIT:2> , <NUM_LIT:1> ] } <EOL> def test_asdict_set ( self ) : <EOL> dset = dictset ( { '<STR_LIT:foo>' : "<STR_LIT>" } ) <EOL> assert dset . asdict ( '<STR_LIT:foo>' , _set = True ) == { <EOL> '<STR_LIT:a>' : [ '<STR_LIT:2>' , "<STR_LIT>" , '<STR_LIT:1>' ] , '<STR_LIT:b>' : '<STR_LIT>' , '<STR_LIT:c>' : '<STR_LIT:True>' } <EOL> assert dset . foo == { <EOL> '<STR_LIT:a>' : [ '<STR_LIT:2>' , "<STR_LIT>" , '<STR_LIT:1>' ] , '<STR_LIT:b>' : '<STR_LIT>' , '<STR_LIT:c>' : '<STR_LIT:True>' } <EOL> def test_asdict_wrong_key ( self ) : <EOL> dset = dictset ( { '<STR_LIT:foo>' : "<STR_LIT>" } ) <EOL> assert dset . asdict ( '<STR_LIT>' ) == { } <EOL> def test_mget ( self ) : <EOL> dset = dictset ( { '<STR_LIT>' : '<STR_LIT:1>' , '<STR_LIT>' : '<STR_LIT:2>' , '<STR_LIT>' : '<STR_LIT:3>' } ) <EOL> dset2 = dset . mget ( '<STR_LIT:foo>' ) <EOL> assert dset2 == { '<STR_LIT>' : '<STR_LIT:1>' , '<STR_LIT>' : '<STR_LIT:2>' } <EOL> def test_mget_defaults ( self ) : <EOL> dset = dictset ( { '<STR_LIT>' : '<STR_LIT:1>' , '<STR_LIT>' : '<STR_LIT:2>' , '<STR_LIT>' : '<STR_LIT:3>' } ) <EOL> dset2 = dset . mget ( '<STR_LIT:foo>' , defaults = { '<STR_LIT:q>' : <NUM_LIT:1> } ) <EOL> assert dset2 == { '<STR_LIT>' : '<STR_LIT:1>' , '<STR_LIT>' : '<STR_LIT:2>' , '<STR_LIT:q>' : <NUM_LIT:1> } <EOL> def test_update ( self ) : <EOL> dset = dictset ( { '<STR_LIT>' : '<STR_LIT:3>' } ) <EOL> dset2 = dset . update ( foo = <NUM_LIT:1> ) <EOL> assert dset . foo == <NUM_LIT:1> <EOL> assert dset is dset2 <EOL> def test_process_list_param_string ( self ) : <EOL> dset = dictset ( { '<STR_LIT>' : '<STR_LIT>' } ) <EOL> assert dset . process_list_param ( '<STR_LIT>' ) == [ '<STR_LIT:1>' , '<STR_LIT:2>' ] <EOL> assert dset . boo == [ '<STR_LIT:1>' , '<STR_LIT:2>' ] <EOL> def test_process_list_param_setdefault ( self ) : <EOL> dset = dictset ( { '<STR_LIT>' : '<STR_LIT>' } ) <EOL> assert dset . process_list_param ( '<STR_LIT:foo>' , setdefault = [ <NUM_LIT:1> ] ) == [ <NUM_LIT:1> ] <EOL> assert dset . foo == [ <NUM_LIT:1> ] <EOL> def test_process_list_param_default ( self ) : <EOL> dset = dictset ( { '<STR_LIT>' : '<STR_LIT>' } ) <EOL> assert dset . process_list_param ( '<STR_LIT:foo>' , default = [ <NUM_LIT:1> ] ) == [ <NUM_LIT:1> ] <EOL> assert '<STR_LIT:foo>' not in dset <EOL> def test_process_list_param_pop ( self ) : <EOL> dset = dictset ( { '<STR_LIT>' : '<STR_LIT>' } ) <EOL> assert dset . process_list_param ( '<STR_LIT>' , pop = True ) == [ '<STR_LIT:1>' , '<STR_LIT:2>' ] <EOL> assert '<STR_LIT>' not in dset <EOL> def test_process_list_param_pop_default ( self ) : <EOL> dset = dictset ( { '<STR_LIT>' : '<STR_LIT>' } ) <EOL> assert dset . process_list_param ( '<STR_LIT:foo>' , default = [ <NUM_LIT:1> ] , pop = True ) == [ <NUM_LIT:1> ] <EOL> assert '<STR_LIT:foo>' not in dset <EOL> def test_process_list_param_type ( self ) : <EOL> dset = dictset ( { '<STR_LIT>' : '<STR_LIT>' } ) <EOL> assert dset . process_list_param ( '<STR_LIT>' , _type = lambda x : int ( x ) ) == [ <NUM_LIT:1> , <NUM_LIT:2> ] <EOL> def test_process_bool_param ( self ) : <EOL> dset = dictset ( { '<STR_LIT>' : '<STR_LIT:true>' , '<STR_LIT:foo>' : '<STR_LIT:false>' } ) <EOL> assert dset . process_bool_param ( '<STR_LIT>' ) <EOL> assert not dset . process_bool_param ( '<STR_LIT:foo>' ) <EOL> assert dset . boo <EOL> assert not dset . foo <EOL> assert isinstance ( dset . boo , bool ) <EOL> assert isinstance ( dset . foo , bool ) <EOL> def test_process_bool_param_default ( self ) : <EOL> dset = dictset ( { '<STR_LIT>' : '<STR_LIT:true>' } ) <EOL> assert dset . process_bool_param ( '<STR_LIT:foo>' , default = True ) <EOL> assert dset . foo <EOL> assert isinstance ( dset . foo , bool ) <EOL> def test_pop_bool_param ( self ) : <EOL> dset = dictset ( { '<STR_LIT>' : '<STR_LIT:true>' } ) <EOL> param = dset . pop_bool_param ( '<STR_LIT>' ) <EOL> assert param <EOL> assert isinstance ( param , bool ) <EOL> assert '<STR_LIT>' not in dset <EOL> def test_pop_bool_param_default ( self ) : <EOL> dset = dictset ( { '<STR_LIT>' : '<STR_LIT:true>' } ) <EOL> param = dset . pop_bool_param ( '<STR_LIT:foo>' , default = True ) <EOL> assert param <EOL> assert isinstance ( param , bool ) <EOL> assert '<STR_LIT:foo>' not in dset <EOL> def test_process_datetime_param ( self ) : <EOL> dset = dictset ( { '<STR_LIT>' : '<STR_LIT>' } ) <EOL> dtime = dset . process_datetime_param ( '<STR_LIT>' ) <EOL> assert dtime is dset . boo <EOL> assert dtime == dset . boo <EOL> assert isinstance ( dtime , datetime ) <EOL> assert dtime . year == <NUM_LIT> <EOL> assert dtime . month == <NUM_LIT:1> <EOL> assert dtime . day == <NUM_LIT:2> <EOL> assert dtime . hour == <NUM_LIT:3> <EOL> assert dtime . minute == <NUM_LIT:4> <EOL> assert dtime . second == <NUM_LIT:5> <EOL> def test_process_datetime_param_wrong_format ( self ) : <EOL> dset = dictset ( { '<STR_LIT>' : '<STR_LIT>' } ) <EOL> with pytest . raises ( ValueError ) as ex : <EOL> dset . process_datetime_param ( '<STR_LIT>' ) <EOL> assert '<STR_LIT>' in str ( ex . value ) <EOL> def test_process_float_param ( self ) : <EOL> dset = dictset ( { '<STR_LIT>' : '<STR_LIT>' } ) <EOL> assert dset . process_float_param ( '<STR_LIT>' ) == <NUM_LIT> <EOL> assert dset . boo == <NUM_LIT> <EOL> def test_process_float_param_value_err ( self ) : <EOL> dset = dictset ( { '<STR_LIT>' : '<STR_LIT:a>' } ) <EOL> with pytest . raises ( ValueError ) as ex : <EOL> dset . process_float_param ( '<STR_LIT>' ) <EOL> assert '<STR_LIT>' == str ( ex . value ) <EOL> def test_process_float_param_default ( self ) : <EOL> dset = dictset ( { '<STR_LIT>' : '<STR_LIT>' } ) <EOL> assert dset . process_float_param ( '<STR_LIT:foo>' , default = <NUM_LIT> ) == <NUM_LIT> <EOL> assert dset . foo == <NUM_LIT> <EOL> def test_process_int_param ( self ) : <EOL> dset = dictset ( { '<STR_LIT>' : '<STR_LIT:1>' } ) <EOL> assert dset . process_int_param ( '<STR_LIT>' ) == <NUM_LIT:1> <EOL> assert dset . boo == <NUM_LIT:1> <EOL> def test_process_int_param_value_err ( self ) : <EOL> dset = dictset ( { '<STR_LIT>' : '<STR_LIT:a>' } ) <EOL> with pytest . raises ( ValueError ) as ex : <EOL> dset . process_int_param ( '<STR_LIT>' ) <EOL> assert '<STR_LIT>' == str ( ex . value ) <EOL> def test_process_int_param_default ( self ) : <EOL> dset = dictset ( { '<STR_LIT>' : '<STR_LIT:1>' } ) <EOL> assert dset . process_int_param ( '<STR_LIT:foo>' , default = <NUM_LIT:2> ) == <NUM_LIT:2> <EOL> assert dset . foo == <NUM_LIT:2> <EOL> def test_process_dict_param ( self ) : <EOL> dset = dictset ( { '<STR_LIT>' : '<STR_LIT>' } ) <EOL> assert dset . process_dict_param ( '<STR_LIT>' ) == { '<STR_LIT:a>' : '<STR_LIT:1>' } <EOL> assert dset . boo == { '<STR_LIT:a>' : '<STR_LIT:1>' } <EOL> def test_process_dict_param_type ( self ) : <EOL> dset = dictset ( { '<STR_LIT>' : '<STR_LIT>' } ) <EOL> assert dset . process_dict_param ( '<STR_LIT>' , _type = lambda x : int ( x ) ) == { <EOL> '<STR_LIT:a>' : <NUM_LIT:1> } <EOL> assert dset . boo == { '<STR_LIT:a>' : <NUM_LIT:1> } <EOL> def test_process_dict_param_pop ( self ) : <EOL> dset = dictset ( { '<STR_LIT>' : '<STR_LIT>' } ) <EOL> assert dset . process_dict_param ( '<STR_LIT>' , pop = True ) == { '<STR_LIT:a>' : '<STR_LIT:1>' } <EOL> assert '<STR_LIT>' not in dset <EOL> def test_pop_by_values ( self ) : <EOL> dset = dictset ( { '<STR_LIT>' : '<STR_LIT:1>' , '<STR_LIT:foo>' : '<STR_LIT:2>' } ) <EOL> dset . pop_by_values ( '<STR_LIT:3>' ) <EOL> assert dict ( dset ) == { '<STR_LIT>' : '<STR_LIT:1>' , '<STR_LIT:foo>' : '<STR_LIT:2>' } <EOL> dset . pop_by_values ( '<STR_LIT:1>' ) <EOL> assert dict ( dset ) == { '<STR_LIT:foo>' : '<STR_LIT:2>' } <EOL> dset . pop_by_values ( '<STR_LIT:2>' ) <EOL> assert dict ( dset ) == { } </s>
