@@ -79,103 +79,156 @@ def test_directories_are_same():
79
79
) is False
80
80
81
81
82
- @pytest .mark .parametrize ("use_size_report_sketch" , [True , False ])
83
- @pytest .mark .parametrize ("use_enable_size_deltas_report, expected_enable_deltas_report" ,
84
- [(True , "FooEnableSizeDeltasReport" ),
85
- (False , "FooEnableDeltasReport" )])
86
- @pytest .mark .parametrize ("use_size_deltas_report_folder_name, expected_sketches_report_path" ,
87
- [(True , "FooSizeDeltasReportFolderName" ),
88
- (False , "FooSketchesReportPath" )])
89
- @pytest .mark .parametrize ("use_enable_size_trends_report" , [True , False ])
90
- def test_main (capsys ,
91
- monkeypatch ,
92
- mocker ,
93
- use_size_report_sketch ,
94
- use_enable_size_deltas_report ,
95
- expected_enable_deltas_report ,
96
- use_size_deltas_report_folder_name ,
97
- expected_sketches_report_path ,
98
- use_enable_size_trends_report ):
99
- cli_version = "1.0.0"
100
- fqbn_arg = "foo:bar:baz"
101
- platforms = "- name: FooVendor:BarArchitecture"
102
- libraries = "foo libraries"
103
- sketch_paths = "foo/Sketch bar/OtherSketch"
104
- verbose = "true"
105
- github_token = "FooGitHubToken"
106
- enable_size_deltas_report = "FooEnableSizeDeltasReport"
107
- enable_deltas_report = "FooEnableDeltasReport"
108
- sketches_report_path = "FooSketchesReportPath"
109
- size_deltas_report_folder_name = "FooSizeDeltasReportFolderName"
110
-
82
+ @pytest .fixture
83
+ def setup_action_inputs (monkeypatch ):
84
+ class ActionInputs :
85
+ cli_version = "1.0.0"
86
+ fqbn_arg = "foo:bar:baz"
87
+ platforms = "- name: FooVendor:BarArchitecture"
88
+ libraries = "foo libraries"
89
+ sketch_paths = "foo/Sketch bar/OtherSketch"
90
+ verbose = "true"
91
+ github_token = "FooGitHubToken"
92
+ enable_size_deltas_report = "FooEnableSizeDeltasReport"
93
+ enable_deltas_report = "FooEnableDeltasReport"
94
+ sketches_report_path = "FooSketchesReportPath"
95
+ size_deltas_report_folder_name = "FooSizeDeltasReportFolderName"
96
+
97
+ monkeypatch .setenv ("INPUT_CLI-VERSION" , ActionInputs .cli_version )
98
+ monkeypatch .setenv ("INPUT_FQBN" , ActionInputs .fqbn_arg )
99
+ monkeypatch .setenv ("INPUT_PLATFORMS" , ActionInputs .platforms )
100
+ monkeypatch .setenv ("INPUT_LIBRARIES" , ActionInputs .libraries )
101
+ monkeypatch .setenv ("INPUT_SKETCH-PATHS" , ActionInputs .sketch_paths )
102
+ monkeypatch .setenv ("INPUT_VERBOSE" , ActionInputs .verbose )
103
+ monkeypatch .setenv ("INPUT_GITHUB-TOKEN" , ActionInputs .github_token )
104
+ monkeypatch .setenv ("INPUT_ENABLE-DELTAS-REPORT" , ActionInputs .enable_deltas_report )
105
+ monkeypatch .setenv ("INPUT_SKETCHES-REPORT-PATH" , ActionInputs .sketches_report_path )
106
+
107
+ return ActionInputs ()
108
+
109
+
110
+ @pytest .fixture
111
+ def stub_compilesketches_object (mocker ):
111
112
class CompileSketches :
112
113
def compile_sketches (self ):
113
114
pass # pragma: no cover
114
115
115
- monkeypatch . setenv ( "INPUT_CLI-VERSION " , cli_version )
116
- monkeypatch . setenv ( "INPUT_FQBN" , fqbn_arg )
117
- monkeypatch . setenv ( "INPUT_PLATFORMS" , platforms )
118
- monkeypatch . setenv ( "INPUT_LIBRARIES" , libraries )
119
- monkeypatch . setenv ( "INPUT_SKETCH-PATHS " , sketch_paths )
120
- monkeypatch . setenv ( "INPUT_GITHUB-TOKEN" , github_token )
121
- monkeypatch . setenv ( "INPUT_VERBOSE" , verbose )
116
+ mocker . patch ( "compilesketches.CompileSketches " , autospec = True , return_value = CompileSketches () )
117
+ mocker . patch . object ( CompileSketches , "compile_sketches" )
118
+
119
+
120
+ @ pytest . mark . parametrize ( "use_size_report_sketch " , [ True , False ] )
121
+ def test_main_size_report_sketch_deprecation_warning ( capsys , monkeypatch , setup_action_inputs ,
122
+ stub_compilesketches_object , use_size_report_sketch ):
122
123
if use_size_report_sketch :
123
124
monkeypatch .setenv ("INPUT_SIZE-REPORT-SKETCH" , "foo" )
124
- if use_enable_size_deltas_report :
125
- monkeypatch .setenv ("INPUT_ENABLE-SIZE-DELTAS-REPORT" , enable_size_deltas_report )
126
- monkeypatch .setenv ("INPUT_ENABLE-DELTAS-REPORT" , enable_deltas_report )
127
- monkeypatch .setenv ("INPUT_SKETCHES-REPORT-PATH" , sketches_report_path )
128
- if use_size_deltas_report_folder_name :
129
- monkeypatch .setenv ("INPUT_SIZE-DELTAS-REPORT-FOLDER-NAME" , size_deltas_report_folder_name )
125
+
126
+ compilesketches .main ()
127
+
128
+ expected_output = ""
129
+ if use_size_report_sketch :
130
+ expected_output = "::warning::The size-report-sketch input is no longer used"
131
+
132
+ assert capsys .readouterr ().out .strip () == expected_output
133
+
134
+
135
+ @pytest .mark .parametrize ("use_enable_size_trends_report" , [True , False ])
136
+ def test_main_enable_size_trends_report_deprecation_warning (capsys , monkeypatch , setup_action_inputs ,
137
+ stub_compilesketches_object , use_enable_size_trends_report ):
130
138
if use_enable_size_trends_report :
131
139
monkeypatch .setenv ("INPUT_ENABLE-SIZE-TRENDS-REPORT" , "true" )
132
140
133
- mocker .patch ("compilesketches.CompileSketches" , autospec = True , return_value = CompileSketches ())
134
- mocker .patch .object (CompileSketches , "compile_sketches" )
141
+ compilesketches .main ()
142
+
143
+ expected_output = ""
144
+ if use_enable_size_trends_report :
145
+ expected_output = (
146
+ expected_output
147
+ + "::warning::The size trends report feature has been moved to a dedicated action. See the "
148
+ "documentation at "
149
+ "https://github.com/arduino/actions/tree/report-size-trends-action/libraries/report-size-trends"
150
+ )
151
+
152
+ assert capsys .readouterr ().out .strip () == expected_output
153
+
154
+
155
+ @pytest .mark .parametrize ("use_size_deltas_report_folder_name" , [True , False ])
156
+ def test_main_size_deltas_report_folder_name_deprecation (capsys , monkeypatch , setup_action_inputs ,
157
+ stub_compilesketches_object ,
158
+ use_size_deltas_report_folder_name ):
159
+ size_deltas_report_folder_name = "foo-size-deltas-report-folder-name"
160
+ if use_size_deltas_report_folder_name :
161
+ monkeypatch .setenv ("INPUT_SIZE-DELTAS-REPORT-FOLDER-NAME" , size_deltas_report_folder_name )
135
162
136
163
compilesketches .main ()
137
164
138
165
expected_output = ""
139
- if use_size_report_sketch :
140
- expected_output = "::warning::The size-report-sketch input is no longer used"
141
166
if use_size_deltas_report_folder_name :
142
- if expected_output != "" :
143
- expected_output = expected_output + "\n "
144
167
expected_output = (
145
168
expected_output
146
169
+ "::warning::The size-deltas-report-folder-name input is deprecated. Use the equivalent input: "
147
170
"sketches-report-path instead."
148
171
)
172
+
173
+ assert capsys .readouterr ().out .strip () == expected_output
174
+
175
+ if use_size_deltas_report_folder_name :
176
+ expected_sketches_report_path = size_deltas_report_folder_name
177
+ else :
178
+ expected_sketches_report_path = setup_action_inputs .sketches_report_path
179
+
180
+ assert os .environ ["INPUT_SKETCHES-REPORT-PATH" ] == expected_sketches_report_path
181
+
182
+
183
+ @pytest .mark .parametrize ("use_enable_size_deltas_report" , [True , False ])
184
+ def test_main_enable_size_deltas_report_deprecation (capsys , monkeypatch , setup_action_inputs ,
185
+ stub_compilesketches_object , use_enable_size_deltas_report ):
186
+ enable_size_deltas_report = "foo-enable-size-deltas-report"
187
+ if use_enable_size_deltas_report :
188
+ monkeypatch .setenv ("INPUT_ENABLE-SIZE-DELTAS-REPORT" , enable_size_deltas_report )
189
+
190
+ compilesketches .main ()
191
+
192
+ expected_output = ""
149
193
if use_enable_size_deltas_report :
150
- if expected_output != "" :
151
- expected_output = expected_output + "\n "
152
194
expected_output = (
153
195
expected_output
154
196
+ "::warning::The enable-size-deltas-report input is deprecated. Use the equivalent input: "
155
197
"enable-deltas-report instead."
156
198
)
157
- if use_enable_size_trends_report :
158
- if expected_output != "" :
159
- expected_output = expected_output + "\n "
160
- expected_output = (
161
- expected_output
162
- + "::warning::The size trends report feature has been moved to a dedicated action. See the "
163
- "documentation at "
164
- "https://github.com/arduino/actions/tree/report-size-trends-action/libraries/report-size-trends"
165
- )
199
+
166
200
assert capsys .readouterr ().out .strip () == expected_output
167
201
202
+ if use_enable_size_deltas_report :
203
+ expected_enable_deltas_report = enable_size_deltas_report
204
+ else :
205
+ expected_enable_deltas_report = setup_action_inputs .enable_deltas_report
206
+
207
+ assert os .environ ["INPUT_ENABLE-DELTAS-REPORT" ] == expected_enable_deltas_report
208
+
209
+
210
+ def test_main (mocker , setup_action_inputs ):
211
+ class CompileSketches :
212
+ def compile_sketches (self ):
213
+ pass # pragma: no cover
214
+
215
+ mocker .patch ("compilesketches.CompileSketches" , autospec = True , return_value = CompileSketches ())
216
+ mocker .patch .object (CompileSketches , "compile_sketches" )
217
+
218
+ compilesketches .main ()
219
+
168
220
compilesketches .CompileSketches .assert_called_once_with (
169
- cli_version = cli_version ,
170
- fqbn_arg = fqbn_arg ,
171
- platforms = platforms ,
172
- libraries = libraries ,
173
- sketch_paths = sketch_paths ,
174
- verbose = verbose ,
175
- github_token = github_token ,
176
- enable_deltas_report = expected_enable_deltas_report ,
177
- sketches_report_path = expected_sketches_report_path
221
+ cli_version = setup_action_inputs . cli_version ,
222
+ fqbn_arg = setup_action_inputs . fqbn_arg ,
223
+ platforms = setup_action_inputs . platforms ,
224
+ libraries = setup_action_inputs . libraries ,
225
+ sketch_paths = setup_action_inputs . sketch_paths ,
226
+ verbose = setup_action_inputs . verbose ,
227
+ github_token = setup_action_inputs . github_token ,
228
+ enable_deltas_report = setup_action_inputs . enable_deltas_report ,
229
+ sketches_report_path = setup_action_inputs . sketches_report_path
178
230
)
231
+
179
232
CompileSketches .compile_sketches .assert_called_once ()
180
233
181
234
0 commit comments