@@ -79,24 +79,32 @@ def test_missing_storage_layout_fails(self, connection, dummy_code, dummy_compil
7979 check_constraint_fails (
8080 lambda : dummy_compiled_contract .insert (connection , dummy_code .code_hash , dummy_code .code_hash ), 'compilation_artifacts_json_schema' )
8181
82- @pytest .mark .parametrize ("value" , [0 , "" , {}], ids = ["number" , "string" , "object" ])
83- def test_abi_invalid_type_fails (self , value , connection , dummy_code , dummy_compiled_contract ):
84- dummy_compiled_contract .compilation_artifacts ["abi" ] = value
85- check_constraint_fails (
86- lambda : dummy_compiled_contract .insert (connection , dummy_code .code_hash , dummy_code .code_hash ), 'compilation_artifacts_json_schema' )
87-
8882 def test_unknown_field_fails (self , connection , dummy_code , dummy_compiled_contract ):
8983 dummy_compiled_contract .compilation_artifacts ['unknown_key' ] = None
9084 check_constraint_fails (
9185 lambda : dummy_compiled_contract .insert (connection , dummy_code .code_hash , dummy_code .code_hash ), 'compilation_artifacts_json_schema' )
9286
87+
88+ class TestAbi :
89+ @pytest .mark .parametrize ("value" , [0 , "" , {}], ids = ["number" , "string" , "object" ])
90+ def test_invalid_type_fails (self , value , connection , dummy_code , dummy_compiled_contract ):
91+ dummy_compiled_contract .compilation_artifacts ["abi" ] = value
92+ check_constraint_fails (
93+ lambda : dummy_compiled_contract .insert (
94+ connection , dummy_code .code_hash , dummy_code .code_hash ),
95+ 'compilation_artifacts_json_schema' )
96+
97+
98+ class TestSources :
9399 @pytest .mark .parametrize ("value" , [0 , "" , []], ids = ["number" , "string" , "array" ])
94- def test_sources_invalid_type_fails (self , value , connection , dummy_code , dummy_compiled_contract ):
100+ def test_invalid_type_fails (self , value , connection , dummy_code , dummy_compiled_contract ):
95101 dummy_compiled_contract .compilation_artifacts ['sources' ] = value
96102 check_constraint_fails (
97- lambda : dummy_compiled_contract .insert (connection , dummy_code .code_hash , dummy_code .code_hash ), "compilation_artifacts_json_schema" )
103+ lambda : dummy_compiled_contract .insert (
104+ connection , dummy_code .code_hash , dummy_code .code_hash ),
105+ "compilation_artifacts_json_schema" )
98106
99- def test_sources_file_name_empty_string_fails (self , connection , dummy_code , dummy_compiled_contract ):
107+ def test_file_name_empty_string_fails (self , connection , dummy_code , dummy_compiled_contract ):
100108 dummy_compiled_contract .compilation_artifacts ['sources' ] = {
101109 "file.sol" : {"id" : 0 }, "" : {"id" : 1 }}
102110 check_constraint_fails (
@@ -105,24 +113,24 @@ def test_sources_file_name_empty_string_fails(self, connection, dummy_code, dumm
105113 "compilation_artifacts_json_schema" )
106114
107115 @pytest .mark .parametrize ("value" , [None , 0 , "" , []], ids = ["null" , "number" , "string" , "array" ])
108- def test_sources_id_subkey_values_invalid_type_fails (self , value , connection , dummy_code ,
109- dummy_compiled_contract ):
116+ def test_id_subkey_values_invalid_type_fails (self , value , connection , dummy_code ,
117+ dummy_compiled_contract ):
110118 dummy_compiled_contract .compilation_artifacts ['sources' ] = {
111119 "file.sol" : value }
112120 check_constraint_fails (
113121 lambda : dummy_compiled_contract .insert (
114122 connection , dummy_code .code_hash , dummy_code .code_hash ),
115123 "compilation_artifacts_json_schema" )
116124
117- def test_sources_missing_id_subkey_fails (self , connection , dummy_code , dummy_compiled_contract ):
125+ def test_missing_id_subkey_fails (self , connection , dummy_code , dummy_compiled_contract ):
118126 dummy_compiled_contract .compilation_artifacts ['sources' ] = {
119127 "file.sol" : {}}
120128 check_constraint_fails (
121129 lambda : dummy_compiled_contract .insert (
122130 connection , dummy_code .code_hash , dummy_code .code_hash ),
123131 "compilation_artifacts_json_schema" )
124132
125- def test_sources_extra_subkey_fails (self , connection , dummy_code , dummy_compiled_contract ):
133+ def test_extra_subkey_fails (self , connection , dummy_code , dummy_compiled_contract ):
126134 dummy_compiled_contract .compilation_artifacts ['sources' ] = {
127135 "file.sol" : {"id" : 0 , "extra" : 1 }}
128136 check_constraint_fails (
@@ -131,15 +139,16 @@ def test_sources_extra_subkey_fails(self, connection, dummy_code, dummy_compiled
131139 "compilation_artifacts_json_schema" )
132140
133141 @pytest .mark .parametrize ("value" , [None , "" , [], dict ()], ids = ["null" , "string" , "array" , "object" ])
134- def test_sources_id_subkey_value_type_is_not_number_fails (self , value , connection , dummy_code , dummy_compiled_contract ):
142+ def test_id_subkey_value_type_is_not_number_fails (self , value , connection , dummy_code ,
143+ dummy_compiled_contract ):
135144 dummy_compiled_contract .compilation_artifacts ['sources' ] = {
136145 "file.sol" : {"id" : value }}
137146 check_constraint_fails (
138147 lambda : dummy_compiled_contract .insert (
139148 connection , dummy_code .code_hash , dummy_code .code_hash ),
140149 "compilation_artifacts_json_schema" )
141150
142- def test_sources_id_subkey_value_is_negative_fails (self , connection , dummy_code , dummy_compiled_contract ):
151+ def test_id_subkey_value_is_negative_fails (self , connection , dummy_code , dummy_compiled_contract ):
143152 dummy_compiled_contract .compilation_artifacts ['sources' ] = {
144153 "file.sol" : {"id" : - 1 }}
145154 check_constraint_fails (
@@ -148,10 +157,18 @@ def test_sources_id_subkey_value_is_negative_fails(self, connection, dummy_code,
148157 ), "compilation_artifacts_json_schema"
149158 )
150159
151- def test_sources_repetitive_id_subkey_values_fails (self , connection , dummy_code , dummy_compiled_contract ):
160+ def test_repetitive_id_subkey_values_fails (self , connection , dummy_code , dummy_compiled_contract ):
152161 dummy_compiled_contract .compilation_artifacts ['sources' ] = {
153162 "file.sol" : {"id" : 0 }, "file2.sol" : {"id" : 0 }}
154163 check_constraint_fails (
155164 lambda : dummy_compiled_contract .insert (
156165 connection , dummy_code .code_hash , dummy_code .code_hash ),
157166 "compilation_artifacts_json_schema" )
167+
168+ def test_that_all_files_are_checked (self , connection , dummy_code , dummy_compiled_contract ):
169+ dummy_compiled_contract .compilation_artifacts ['sources' ] = {
170+ "file.sol" : {"id" : 0 }, "file2.sol" : {}}
171+ check_constraint_fails (
172+ lambda : dummy_compiled_contract .insert (
173+ connection , dummy_code .code_hash , dummy_code .code_hash ),
174+ "compilation_artifacts_json_schema" )
0 commit comments