|
5 | 5 | from unittest.mock import MagicMock |
6 | 6 |
|
7 | 7 | from pandasai.agent.state import AgentState |
| 8 | +from pandasai.constants import DEFAULT_CHART_DIRECTORY |
8 | 9 | from pandasai.core.code_generation.code_cleaning import CodeCleaner |
9 | 10 | from pandasai.dataframe.base import DataFrame |
10 | 11 | from pandasai.exceptions import MaliciousQueryError |
@@ -201,14 +202,45 @@ def test_replace_output_filenames_with_temp_json_chart_no_json(self): |
201 | 202 | handler = self.cleaner |
202 | 203 |
|
203 | 204 | code = "some text without json" |
204 | | - expected_code = "some text without json" # No change should occur |
205 | 205 |
|
206 | 206 | result = handler._replace_output_filenames_with_temp_json_chart(code) |
207 | 207 |
|
| 208 | + self.assertEqual( |
| 209 | + result, code, f"Expected '{code}', but got '{result}'" |
| 210 | + ) |
| 211 | + |
| 212 | + def test_remove_make_dirs(self): |
| 213 | + handler = self.cleaner |
| 214 | + |
| 215 | + code = "os.makedirs('/some/path')\nplt.show()\nfig.show()" |
| 216 | + expected_code = "plt.show()\nfig.show()" # Should remove the os.makedirs line |
| 217 | + result = handler._remove_make_dirs(code) |
| 218 | + self.assertEqual( |
| 219 | + result, expected_code, f"Expected '{expected_code}', but got '{result}'" |
| 220 | + ) |
| 221 | + |
| 222 | + code = "os.mkdir('/some/path')\nplt.show()\nfig.show()" |
| 223 | + expected_code = "plt.show()\nfig.show()" # Should remove the os.mkdir line |
| 224 | + result = handler._remove_make_dirs(code) |
208 | 225 | self.assertEqual( |
209 | 226 | result, expected_code, f"Expected '{expected_code}', but got '{result}'" |
210 | 227 | ) |
211 | 228 |
|
| 229 | + def test_do_not_remove_make_default_chart_dir(self): |
| 230 | + handler = self.cleaner |
| 231 | + |
| 232 | + code = f"os.makedirs({DEFAULT_CHART_DIRECTORY}')\nplt.show()\nfig.show()" |
| 233 | + result = handler._remove_make_dirs(code) |
| 234 | + self.assertEqual( |
| 235 | + result, code, f"Expected '{code}', but got '{result}'" |
| 236 | + ) |
| 237 | + |
| 238 | + code = f"os.mkdir({DEFAULT_CHART_DIRECTORY}')\nplt.show()\nfig.show()" |
| 239 | + result = handler._remove_make_dirs(code) |
| 240 | + self.assertEqual( |
| 241 | + result, code, f"Expected '{code}', but got '{result}'" |
| 242 | + ) |
| 243 | + |
212 | 244 |
|
213 | 245 | if __name__ == "__main__": |
214 | 246 | unittest.main() |
0 commit comments