11import unittest
2+ from unittest import mock
23from importlib import import_module
34import os
45import warnings
6+ import tempfile
57
68import AnyQt
79from AnyQt .QtGui import QFont , QBrush
@@ -116,7 +118,7 @@ def test_report_table(self):
116118 'font-weight:normal;text-align:right;vertical-align:middle;">2</td>'
117119 '</tr></table>' )
118120
119- def test_save_report (self ):
121+ def test_save_report_permission (self ):
120122 """
121123 Permission Error may occur when trying to save report.
122124 GH-2147
@@ -132,6 +134,23 @@ def test_save_report(self):
132134 unittest .mock .patch (patch_target_3 , return_value = True ):
133135 rep .save_report ()
134136
137+ def test_save_report (self ):
138+ rep = OWReport .get_instance ()
139+ file = self .create_widget (OWFile )
140+ file .create_report_html ()
141+ rep .make_report (file )
142+ temp_dir = tempfile .mkdtemp ()
143+ temp_name = os .path .join (temp_dir , "f.report" )
144+ try :
145+ with mock .patch ("AnyQt.QtWidgets.QFileDialog.getSaveFileName" ,
146+ return_value = (temp_name , 0 )), \
147+ mock .patch ("AnyQt.QtWidgets.QMessageBox.exec_" ,
148+ return_value = True ):
149+ rep .save_report ()
150+ finally :
151+ os .remove (temp_name )
152+ os .rmdir (temp_dir )
153+
135154
136155class TestReportWidgets (WidgetTest ):
137156 model_widgets = MODEL_WIDGETS
@@ -220,3 +239,7 @@ def test_report_widgets_all(self):
220239 self .unsu_widgets + self .dist_widgets + self .visu_widgets + \
221240 self .spec_widgets
222241 self ._create_report (widgets , rep , None )
242+
243+
244+ if __name__ == "__main__" :
245+ unittest .main ()
0 commit comments