11from pathlib import Path
2- from unittest .mock import MagicMock , call
2+ from unittest .mock import MagicMock
33
44import pandas as pd
55import pytest
88
99from codeplag .consts import CSV_REPORT_COLUMNS , CSV_REPORT_FILENAME
1010from codeplag .handlers .report import deserialize_compare_result
11- from codeplag .reporters import CSVReporter , JSONReporter
11+ from codeplag .reporters import CSVReporter
1212from codeplag .types import (
1313 ASTFeatures ,
1414 CompareInfo ,
15- WorksReport ,
1615)
1716
1817
@@ -26,49 +25,6 @@ def mock_write_config(mocker: MockerFixture) -> MagicMock:
2625 return mocker .patch ("codeplag.reporters.write_config" )
2726
2827
29- class TestJSONReporter :
30- REPORTER = JSONReporter (Path ("." ))
31-
32- def test_save_result_not_occurred_due_absent_dir (
33- self : Self ,
34- mock_default_logger : MagicMock ,
35- first_features : ASTFeatures ,
36- second_features : ASTFeatures ,
37- first_compare_result : CompareInfo ,
38- ) -> None :
39- self .REPORTER .reports = Path ("/bad_directory" )
40- self .REPORTER .save_result (first_features , second_features , first_compare_result )
41- assert mock_default_logger .error .call_args == call ("The folder for reports isn't exists." )
42-
43- def test_save_result_not_occurred_due_permission_error (
44- self : Self ,
45- mocker : MockerFixture ,
46- mock_default_logger : MagicMock ,
47- first_features : ASTFeatures ,
48- second_features : ASTFeatures ,
49- first_compare_result : CompareInfo ,
50- ) -> None :
51- mocker .patch .object (Path , "open" , side_effect = PermissionError )
52- self .REPORTER .reports = Path ("/etc" )
53- self .REPORTER .save_result (first_features , second_features , first_compare_result )
54- Path .open .assert_called_once ()
55- assert mock_default_logger .error .call_args == call (
56- "Not enough rights to write reports to the folder."
57- )
58-
59- def test_save_result_with_modify_date (
60- self : Self ,
61- mock_write_config : MagicMock ,
62- first_features : ASTFeatures ,
63- second_features : ASTFeatures ,
64- first_compare_result : CompareInfo ,
65- ) -> None :
66- mock_write_config .reset_mock ()
67- self .REPORTER .save_result (first_features , second_features , first_compare_result )
68- mock_write_config .assert_called_once ()
69- assert mock_write_config .call_args [0 ][1 ].keys () == WorksReport .__annotations__ .keys ()
70-
71-
7228class TestCSVReporter :
7329 REPORTER = CSVReporter (Path ("./src" ))
7430
0 commit comments