<s> from __future__ import absolute_import , division , print_function <EOL> import unittest <EOL> from . . import base <EOL> from mock import patch , Mock <EOL> class TestCase ( base . ModuleCase ) : <EOL> def test_defaults ( self ) : <EOL> with patch . dict ( self . salt , { <EOL> '<STR_LIT>' : Mock ( <EOL> side_effect = { '<STR_LIT>' : "<STR_LIT:e>" , <EOL> '<STR_LIT>' : "<STR_LIT>" } . get ) <EOL> } ) : <EOL> self . assertEquals ( <EOL> self . _ ( '<STR_LIT>' ) ( '<STR_LIT>' , { <EOL> "<STR_LIT:1>" : '<STR_LIT:a>' , <EOL> "<STR_LIT:2>" : '<STR_LIT>' , <EOL> "<STR_LIT:3>" : '<STR_LIT:b>' , <EOL> } <EOL> ) , { <EOL> '<STR_LIT:1>' : '<STR_LIT:e>' , <EOL> '<STR_LIT:2>' : '<STR_LIT:e>' , <EOL> '<STR_LIT:3>' : '<STR_LIT:b>' <EOL> } <EOL> ) <EOL> def test_defaults_mutable ( self ) : <EOL> data = { '<STR_LIT:1>' : '<STR_LIT:foo>' , <EOL> '<STR_LIT:2>' : { '<STR_LIT>' : <NUM_LIT:2> } } <EOL> with patch . dict ( self . salt , { <EOL> '<STR_LIT>' : Mock ( side_effect = { '<STR_LIT>' : '<STR_LIT:foo>' } . get ) <EOL> } ) : <EOL> self . _ ( '<STR_LIT>' ) ( '<STR_LIT>' , data ) <EOL> data [ '<STR_LIT:1>' ] = '<STR_LIT:bar>' <EOL> self . assertEquals ( data , { '<STR_LIT:1>' : '<STR_LIT:bar>' , '<STR_LIT:2>' : { '<STR_LIT>' : '<STR_LIT:foo>' } } ) <EOL> def test_defaults_rec ( self ) : <EOL> with patch . dict ( self . salt , { <EOL> '<STR_LIT>' : Mock ( <EOL> side_effect = { <EOL> '<STR_LIT>' : '<STR_LIT:foo>' , <EOL> '<STR_LIT>' : { <NUM_LIT:1> : <NUM_LIT:2> } , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : <NUM_LIT:1> , <EOL> '<STR_LIT>' : <NUM_LIT:1> , <EOL> '<STR_LIT>' : { '<STR_LIT:o>' : '<STR_LIT:p>' } , <EOL> '<STR_LIT>' : <NUM_LIT:3> , <EOL> '<STR_LIT>' : { <NUM_LIT:1> : <NUM_LIT:2> } , <EOL> } . get ) <EOL> } ) : <EOL> self . assertEquals ( <EOL> self . _ ( '<STR_LIT>' ) ( '<STR_LIT>' , { <EOL> '<STR_LIT:1>' : '<STR_LIT:a>' , <EOL> '<STR_LIT:2>' : { <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> } <EOL> } , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> } <EOL> } <EOL> } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:o>' : '<STR_LIT:p>' } } } , <EOL> '<STR_LIT:4>' : { '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } } , <EOL> '<STR_LIT:3>' : '<STR_LIT:b>' , <EOL> '<STR_LIT:5>' : { '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } } , <EOL> } <EOL> ) , { <EOL> '<STR_LIT:1>' : '<STR_LIT:a>' , <EOL> '<STR_LIT:2>' : { '<STR_LIT>' : '<STR_LIT:foo>' , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : <NUM_LIT:1> , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : <NUM_LIT:1> } , <EOL> } <EOL> } <EOL> } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:o>' : '<STR_LIT:p>' } } , <EOL> '<STR_LIT>' : { <NUM_LIT:1> : <NUM_LIT:2> , '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } } } , <EOL> '<STR_LIT:3>' : '<STR_LIT:b>' , <EOL> '<STR_LIT:4>' : <NUM_LIT:3> , <EOL> '<STR_LIT:5>' : { <NUM_LIT:1> : <NUM_LIT:2> , '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } } <EOL> } <EOL> ) <EOL> def test_defaults_rec_over ( self ) : <EOL> with patch . dict ( self . salt , { <EOL> '<STR_LIT>' : Mock ( <EOL> side_effect = { <EOL> '<STR_LIT>' : [ '<STR_LIT:foo>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT:foo>' ] , <EOL> '<STR_LIT>' : '<STR_LIT:foo>' , <EOL> '<STR_LIT>' : { <NUM_LIT:1> : <NUM_LIT:2> } , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : { '<STR_LIT:o>' : '<STR_LIT:p>' } , <EOL> '<STR_LIT>' : { <NUM_LIT:1> : <NUM_LIT:2> } , <EOL> '<STR_LIT>' : { <NUM_LIT:1> : <NUM_LIT:2> } , <EOL> '<STR_LIT>' : { <NUM_LIT:1> : <NUM_LIT:2> } , <EOL> '<STR_LIT>' : { <NUM_LIT:1> : <NUM_LIT:2> } , <EOL> '<STR_LIT>' : <NUM_LIT:3> , <EOL> '<STR_LIT>' : { <NUM_LIT:1> : <NUM_LIT:2> } , <EOL> } . get ) <EOL> } ) : <EOL> self . assertEquals ( <EOL> self . _ ( '<STR_LIT>' ) ( '<STR_LIT>' , { <EOL> '<STR_LIT>' : [ '<STR_LIT:a>' , '<STR_LIT:b>' , '<STR_LIT:c>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT:a>' , '<STR_LIT:b>' , '<STR_LIT:c>' ] , <EOL> '<STR_LIT:1>' : '<STR_LIT:a>' , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT:a>' : { <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' } } , <EOL> '<STR_LIT:b>' : { <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' } } <EOL> } , <EOL> '<STR_LIT:2>' : { <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> } <EOL> } , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> } <EOL> } <EOL> } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : { '<STR_LIT:o>' : '<STR_LIT:p>' } } } , <EOL> '<STR_LIT:4>' : { '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } } , <EOL> '<STR_LIT:5>' : { '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } } , <EOL> '<STR_LIT:3>' : '<STR_LIT:b>' , <EOL> } <EOL> ) , { <EOL> '<STR_LIT>' : [ '<STR_LIT:a>' , '<STR_LIT:b>' , '<STR_LIT:c>' , '<STR_LIT:foo>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT:foo>' ] , <EOL> '<STR_LIT:1>' : '<STR_LIT:a>' , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT:a>' : { '<STR_LIT>' : { <NUM_LIT:1> : <NUM_LIT:2> } } , <EOL> '<STR_LIT:b>' : { <EOL> '<STR_LIT>' : { <NUM_LIT:1> : <NUM_LIT:2> , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' } } <EOL> } , <EOL> '<STR_LIT:2>' : { <EOL> '<STR_LIT>' : '<STR_LIT:foo>' , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : { <EOL> <NUM_LIT:1> : <NUM_LIT:2> , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } , <EOL> } <EOL> } , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : { <EOL> <NUM_LIT:1> : <NUM_LIT:2> , <EOL> } <EOL> } <EOL> } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : { '<STR_LIT:o>' : '<STR_LIT:p>' } } , <EOL> '<STR_LIT>' : { <NUM_LIT:1> : <NUM_LIT:2> , '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } } } , <EOL> '<STR_LIT:3>' : '<STR_LIT:b>' , <EOL> '<STR_LIT:4>' : <NUM_LIT:3> , <EOL> '<STR_LIT:5>' : { <NUM_LIT:1> : <NUM_LIT:2> , '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT>' } } <EOL> } <EOL> ) <EOL> def test_format_resolve2 ( self ) : <EOL> fun = self . _ ( '<STR_LIT>' ) <EOL> self . assertFalse ( fun ( None ) ) <EOL> self . assertFalse ( fun ( <NUM_LIT:1> ) ) <EOL> self . assertFalse ( fun ( <NUM_LIT> ) ) <EOL> self . assertFalse ( fun ( [ <NUM_LIT:1> ] ) ) <EOL> self . assertFalse ( fun ( { <NUM_LIT:1> : <NUM_LIT:1> } ) ) <EOL> self . assertFalse ( fun ( [ { <NUM_LIT:1> : <NUM_LIT:1> } ] ) ) <EOL> self . assertFalse ( fun ( [ { '<STR_LIT:1>' : <NUM_LIT:1> } ] ) ) <EOL> self . assertFalse ( fun ( [ { '<STR_LIT:1>' : '<STR_LIT:1>' } ] ) ) <EOL> self . assertTrue ( fun ( [ { '<STR_LIT:1>' : '<STR_LIT>' } ] ) ) <EOL> self . assertTrue ( fun ( [ '<STR_LIT>' ] ) ) <EOL> self . assertTrue ( fun ( [ { '<STR_LIT>' : <NUM_LIT:1> } ] ) ) <EOL> self . assertTrue ( fun ( [ { '<STR_LIT:1>' : { '<STR_LIT:1>' : { <NUM_LIT:2> : '<STR_LIT>' } } } ] ) ) <EOL> self . assertTrue ( fun ( [ { '<STR_LIT:1>' : { '<STR_LIT:1>' : { '<STR_LIT>' : '<STR_LIT:1>' } } } ] ) ) <EOL> self . assertTrue ( fun ( [ { '<STR_LIT:1>' : { '<STR_LIT:1>' : { <NUM_LIT:2> : [ '<STR_LIT>' ] } } } ] ) ) <EOL> def test_format_resolve ( self ) : <EOL> self . maxDiff = None <EOL> tests = [ <EOL> [ <EOL> { <EOL> "<STR_LIT:a>" : [ "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" ] , <EOL> "<STR_LIT>" : [ "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" ] , <EOL> "<STR_LIT:b>" : <NUM_LIT:1> , <EOL> "<STR_LIT:c>" : [ "<STR_LIT>" , "<STR_LIT:b>" ] , <EOL> "<STR_LIT:d>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : "<STR_LIT>" , <EOL> "<STR_LIT:f>" : "<STR_LIT>" , <EOL> "<STR_LIT:g>" : "<STR_LIT:3>" , <EOL> "<STR_LIT:i>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : "<STR_LIT>" , <EOL> "<STR_LIT:k>" : "<STR_LIT>" , <EOL> } , None , <EOL> { <EOL> '<STR_LIT:a>' : [ '<STR_LIT>' , [ '<STR_LIT:1>' , '<STR_LIT:b>' ] , '<STR_LIT:3>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT>' , "<STR_LIT>" , '<STR_LIT:3>' ] , <EOL> '<STR_LIT:b>' : <NUM_LIT:1> , <EOL> '<STR_LIT:c>' : [ '<STR_LIT:1>' , '<STR_LIT:b>' ] , <EOL> '<STR_LIT:d>' : '<STR_LIT:1>' , <EOL> '<STR_LIT>' : '<STR_LIT:3>' , <EOL> '<STR_LIT:f>' : '<STR_LIT:3>' , <EOL> '<STR_LIT:g>' : '<STR_LIT:3>' , <EOL> '<STR_LIT:i>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:k>' : '<STR_LIT>' <EOL> } , <EOL> ] , <EOL> [ <EOL> { <EOL> "<STR_LIT:a>" : [ "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" ] , <EOL> "<STR_LIT>" : [ "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" ] , <EOL> "<STR_LIT:b>" : <NUM_LIT:1> , <EOL> "<STR_LIT:c>" : [ "<STR_LIT>" , "<STR_LIT:b>" ] , <EOL> "<STR_LIT:d>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : "<STR_LIT>" , <EOL> "<STR_LIT:f>" : "<STR_LIT>" , <EOL> "<STR_LIT:g>" : "<STR_LIT:3>" , <EOL> "<STR_LIT:i>" : "<STR_LIT>" , <EOL> "<STR_LIT>" : "<STR_LIT>" , <EOL> "<STR_LIT:o>" : "<STR_LIT:p>" , <EOL> "<STR_LIT:m>" : "<STR_LIT>" , <EOL> "<STR_LIT:l>" : "<STR_LIT>" , <EOL> "<STR_LIT:n>" : "<STR_LIT>" , <EOL> "<STR_LIT:k>" : "<STR_LIT>" , <EOL> } , None , <EOL> { <EOL> '<STR_LIT:a>' : [ '<STR_LIT>' , [ '<STR_LIT:1>' , '<STR_LIT:b>' ] , '<STR_LIT:3>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT>' , "<STR_LIT>" , '<STR_LIT:3>' ] , <EOL> '<STR_LIT:b>' : <NUM_LIT:1> , <EOL> '<STR_LIT:c>' : [ '<STR_LIT:1>' , '<STR_LIT:b>' ] , <EOL> '<STR_LIT:d>' : '<STR_LIT:1>' , <EOL> '<STR_LIT>' : '<STR_LIT:3>' , <EOL> '<STR_LIT:f>' : '<STR_LIT:3>' , <EOL> '<STR_LIT:g>' : '<STR_LIT:3>' , <EOL> '<STR_LIT:i>' : '<STR_LIT:p>' , <EOL> '<STR_LIT>' : '<STR_LIT:p>' , <EOL> '<STR_LIT:k>' : '<STR_LIT:p>' , <EOL> '<STR_LIT:l>' : '<STR_LIT:p>' , <EOL> '<STR_LIT:m>' : '<STR_LIT:p>' , <EOL> '<STR_LIT:n>' : '<STR_LIT:p>' , <EOL> '<STR_LIT:o>' : '<STR_LIT:p>' , <EOL> } , <EOL> ] , <EOL> [ <EOL> '<STR_LIT>' , <EOL> { <EOL> '<STR_LIT>' : '<STR_LIT:foo>' , <EOL> '<STR_LIT:name>' : '<STR_LIT:bar>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> } , <EOL> '<STR_LIT>' , <EOL> ] , <EOL> ] <EOL> for test , args , res in tests : <EOL> if args : <EOL> data = self . _ ( '<STR_LIT>' ) ( test , args ) <EOL> self . assertEquals ( data , res ) <EOL> else : <EOL> data = self . _ ( '<STR_LIT>' ) ( test ) <EOL> self . assertEquals ( data , res ) <EOL> if __name__ == '<STR_LIT:__main__>' : <EOL> unittest . main ( ) </s>
