<s> """<STR_LIT>""" <EOL> import pytest <EOL> from pyrseas . testutils import AugmentToMapTestCase <EOL> CREATE_STMT = "<STR_LIT>" <EOL> FUNC_SRC1 = """<STR_LIT>""" <EOL> FUNC_SRC2 = """<STR_LIT>""" <EOL> class AuditColumnsTestCase ( AugmentToMapTestCase ) : <EOL> """<STR_LIT>""" <EOL> def test_predef_column ( self ) : <EOL> "<STR_LIT>" <EOL> augmap = { '<STR_LIT>' : { '<STR_LIT>' : { <EOL> '<STR_LIT>' : '<STR_LIT>' } } } <EOL> dbmap = self . to_map ( [ CREATE_STMT ] , augmap ) <EOL> expmap = { '<STR_LIT>' : [ <EOL> { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' } } , { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:text>' } } , <EOL> { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:date>' , '<STR_LIT>' : True , <EOL> '<STR_LIT:default>' : "<STR_LIT>" } } ] } <EOL> assert expmap == dbmap [ '<STR_LIT>' ] [ '<STR_LIT>' ] <EOL> def test_unknown_table ( self ) : <EOL> "<STR_LIT>" <EOL> augmap = { '<STR_LIT>' : { '<STR_LIT>' : { <EOL> '<STR_LIT>' : '<STR_LIT>' } } } <EOL> with pytest . raises ( KeyError ) : <EOL> self . to_map ( [ CREATE_STMT ] , augmap ) <EOL> def test_bad_audit_spec ( self ) : <EOL> "<STR_LIT>" <EOL> augmap = { '<STR_LIT>' : { '<STR_LIT>' : { <EOL> '<STR_LIT>' : '<STR_LIT>' } } } <EOL> with pytest . raises ( KeyError ) : <EOL> self . to_map ( [ CREATE_STMT ] , augmap ) <EOL> def test_unknown_audit_spec ( self ) : <EOL> "<STR_LIT>" <EOL> augmap = { '<STR_LIT>' : { '<STR_LIT>' : { <EOL> '<STR_LIT>' : '<STR_LIT>' } } } <EOL> with pytest . raises ( KeyError ) : <EOL> self . to_map ( [ CREATE_STMT ] , augmap ) <EOL> def test_new_column ( self ) : <EOL> "<STR_LIT>" <EOL> augmap = { '<STR_LIT>' : { '<STR_LIT>' : { <EOL> '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:date>' , '<STR_LIT>' : True , <EOL> '<STR_LIT:default>' : "<STR_LIT>" } } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : { <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] } } } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : { <EOL> '<STR_LIT>' : '<STR_LIT>' } } } <EOL> dbmap = self . to_map ( [ CREATE_STMT ] , augmap ) <EOL> expmap = { '<STR_LIT>' : [ <EOL> { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' } } , { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:text>' } } , <EOL> { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:date>' , '<STR_LIT>' : True , <EOL> '<STR_LIT:default>' : "<STR_LIT>" } } ] } <EOL> assert expmap == dbmap [ '<STR_LIT>' ] [ '<STR_LIT>' ] <EOL> def test_rename_column ( self ) : <EOL> "<STR_LIT>" <EOL> augmap = { '<STR_LIT>' : { '<STR_LIT>' : { <EOL> '<STR_LIT>' : { '<STR_LIT:name>' : '<STR_LIT>' } } } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : { <EOL> '<STR_LIT>' : '<STR_LIT>' } } } <EOL> dbmap = self . to_map ( [ CREATE_STMT ] , augmap ) <EOL> colmap = { '<STR_LIT>' : [ <EOL> { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' } } , { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:text>' } } , <EOL> { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True } } ] , <EOL> '<STR_LIT>' : { '<STR_LIT>' : { <EOL> '<STR_LIT>' : [ '<STR_LIT>' , '<STR_LIT>' ] , '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : '<STR_LIT>' } } } <EOL> funcmap = { '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True , '<STR_LIT:description>' : <EOL> '<STR_LIT>' , <EOL> '<STR_LIT:source>' : FUNC_SRC2 } <EOL> assert dbmap [ '<STR_LIT>' ] [ '<STR_LIT>' ] == colmap <EOL> assert dbmap [ '<STR_LIT>' ] [ '<STR_LIT>' ] == funcmap <EOL> def test_change_column_type ( self ) : <EOL> "<STR_LIT>" <EOL> augmap = { '<STR_LIT>' : { '<STR_LIT>' : { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:text>' } } } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : { <EOL> '<STR_LIT>' : '<STR_LIT>' } } } <EOL> dbmap = self . to_map ( [ CREATE_STMT ] , augmap ) <EOL> expmap = { '<STR_LIT>' : [ <EOL> { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' } } , { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:text>' } } , <EOL> { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:text>' , '<STR_LIT>' : True , <EOL> '<STR_LIT:default>' : "<STR_LIT>" } } ] } <EOL> assert expmap == dbmap [ '<STR_LIT>' ] [ '<STR_LIT>' ] <EOL> def test_columns_with_trigger ( self ) : <EOL> "<STR_LIT>" <EOL> augmap = { '<STR_LIT>' : { '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT:default>' } } } <EOL> dbmap = self . to_map ( [ CREATE_STMT ] , augmap ) <EOL> expmap = { '<STR_LIT>' : [ <EOL> { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' } } , { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:text>' } } , <EOL> { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True } } , <EOL> { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True } } ] , <EOL> '<STR_LIT>' : { '<STR_LIT>' : { <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] , '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : '<STR_LIT>' } } } <EOL> assert expmap == dbmap [ '<STR_LIT>' ] [ '<STR_LIT>' ] <EOL> assert dbmap [ '<STR_LIT>' ] [ '<STR_LIT>' ] [ <EOL> '<STR_LIT>' ] == '<STR_LIT>' <EOL> assert dbmap [ '<STR_LIT>' ] [ '<STR_LIT>' ] [ <EOL> '<STR_LIT:source>' ] == FUNC_SRC1 <EOL> def test_nonpublic_schema_with_trigger ( self ) : <EOL> "<STR_LIT>" <EOL> stmts = [ "<STR_LIT>" , <EOL> "<STR_LIT>" ] <EOL> augmap = { '<STR_LIT>' : { '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT:default>' } } } <EOL> dbmap = self . to_map ( stmts , augmap ) <EOL> expmap = { '<STR_LIT>' : [ <EOL> { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' } } , { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:text>' } } , <EOL> { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True } } , <EOL> { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True } } ] , <EOL> '<STR_LIT>' : { '<STR_LIT>' : { <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] , '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : '<STR_LIT>' } } } <EOL> assert expmap == dbmap [ '<STR_LIT>' ] [ '<STR_LIT>' ] <EOL> assert dbmap [ '<STR_LIT>' ] [ '<STR_LIT>' ] [ '<STR_LIT>' ] == '<STR_LIT>' <EOL> assert dbmap [ '<STR_LIT>' ] [ '<STR_LIT>' ] [ <EOL> '<STR_LIT:source>' ] == FUNC_SRC1 <EOL> def test_skip_existing_columns ( self ) : <EOL> "<STR_LIT>" <EOL> stmts = [ CREATE_STMT , <EOL> "<STR_LIT>" , <EOL> "<STR_LIT>" <EOL> "<STR_LIT>" ] <EOL> augmap = { '<STR_LIT>' : { '<STR_LIT>' : { <EOL> '<STR_LIT>' : '<STR_LIT:default>' } } } <EOL> dbmap = self . to_map ( stmts , augmap ) <EOL> expmap = [ { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' } } , { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:text>' } } , <EOL> { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True } } , <EOL> { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True } } ] <EOL> assert expmap == dbmap [ '<STR_LIT>' ] [ '<STR_LIT>' ] [ '<STR_LIT>' ] <EOL> def test_change_existing_columns ( self ) : <EOL> "<STR_LIT>" <EOL> stmts = [ CREATE_STMT , "<STR_LIT>" , <EOL> "<STR_LIT>" <EOL> "<STR_LIT>" ] <EOL> augmap = { '<STR_LIT>' : { '<STR_LIT>' : { '<STR_LIT>' : '<STR_LIT:default>' } } } <EOL> dbmap = self . to_map ( stmts , augmap ) <EOL> expmap = [ { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' } } , { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:text>' } } , <EOL> { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True } } , <EOL> { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True } } ] <EOL> assert expmap == dbmap [ '<STR_LIT>' ] [ '<STR_LIT>' ] [ '<STR_LIT>' ] <EOL> def test_custom_function_template ( self ) : <EOL> "<STR_LIT>" <EOL> template = """<STR_LIT>""" <EOL> source = """<STR_LIT>""" <EOL> augmap = { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : { '<STR_LIT>' : { <EOL> '<STR_LIT>' : [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] } } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : template } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : { <EOL> '<STR_LIT:description>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True , <EOL> '<STR_LIT:source>' : '<STR_LIT>' } } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : { <EOL> '<STR_LIT>' : [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:name>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' } } } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : { <EOL> '<STR_LIT>' : '<STR_LIT>' } } } <EOL> dbmap = self . to_map ( [ CREATE_STMT ] , augmap ) <EOL> expmap = { '<STR_LIT>' : [ <EOL> { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' } } , { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:text>' } } , <EOL> { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True } } , <EOL> { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True } } ] , <EOL> '<STR_LIT>' : { '<STR_LIT>' : { <EOL> '<STR_LIT>' : [ '<STR_LIT>' , '<STR_LIT>' ] , '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : '<STR_LIT>' } } } <EOL> assert expmap == dbmap [ '<STR_LIT>' ] [ '<STR_LIT>' ] <EOL> assert dbmap [ '<STR_LIT>' ] [ '<STR_LIT>' ] [ <EOL> '<STR_LIT>' ] == '<STR_LIT>' <EOL> assert dbmap [ '<STR_LIT>' ] [ '<STR_LIT>' ] [ <EOL> '<STR_LIT:source>' ] == source <EOL> def test_custom_function_inline_with_column_substitution ( self ) : <EOL> "<STR_LIT>" <EOL> template = """<STR_LIT>""" <EOL> source = """<STR_LIT>""" <EOL> augmap = { <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : { '<STR_LIT>' : { <EOL> '<STR_LIT>' : [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> '<STR_LIT>' : [ '<STR_LIT>' ] } } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : { <EOL> '<STR_LIT:description>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True , <EOL> '<STR_LIT:source>' : template } } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : { <EOL> '<STR_LIT>' : [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT:name>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' } } } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : { <EOL> '<STR_LIT>' : '<STR_LIT>' } } } <EOL> dbmap = self . to_map ( [ CREATE_STMT ] , augmap ) <EOL> expmap = { '<STR_LIT>' : [ <EOL> { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' } } , { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT:text>' } } , <EOL> { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True } } , <EOL> { '<STR_LIT>' : { '<STR_LIT:type>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True } } ] , <EOL> '<STR_LIT>' : { '<STR_LIT>' : { <EOL> '<STR_LIT>' : [ '<STR_LIT>' , '<STR_LIT>' ] , '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : '<STR_LIT>' } } } <EOL> assert expmap == dbmap [ '<STR_LIT>' ] [ '<STR_LIT>' ] <EOL> assert dbmap [ '<STR_LIT>' ] [ '<STR_LIT>' ] [ <EOL> '<STR_LIT>' ] == '<STR_LIT>' <EOL> assert dbmap [ '<STR_LIT>' ] [ '<STR_LIT>' ] [ <EOL> '<STR_LIT:source>' ] == source </s>
