1010from frouros .detectors .concept_drift import DDM , DDMConfig
1111from frouros .detectors .data_drift import MMD # type: ignore
1212from frouros .utils import load , save
13+ from frouros .utils .decorators import set_os_filename
1314
1415
1516@pytest .fixture (
16- scope = "module " ,
17+ scope = "session " ,
1718 params = [
1819 DDM (
1920 config = DDMConfig (),
@@ -35,7 +36,7 @@ def detector(
3536
3637
3738@pytest .fixture (
38- scope = "module " ,
39+ scope = "session " ,
3940 params = [
4041 HistoryConceptDrift (),
4142 PermutationTestDistanceBased (
@@ -56,65 +57,97 @@ def callback(
5657 return request .param
5758
5859
60+ @set_os_filename ("detector.pkl" )
5961def test_save_load_with_valid_detector (
62+ request : pytest .FixtureRequest ,
6063 detector : BaseDetector ,
6164) -> None :
6265 """Test save and load with valid detector.
6366
67+ :param request: Request
68+ :type request: pytest.FixtureRequest
6469 :param detector: Detector
6570 :type detector: BaseDetector
6671 """
67- filename = "/tmp/detector.pkl"
68- save (detector , filename )
69- loaded_detector = load (filename )
72+ filename = request .node .get_closest_marker ("filename" ).args [0 ]
73+ save (
74+ obj = detector ,
75+ filename = filename ,
76+ )
77+ loaded_detector = load (
78+ filename = filename ,
79+ )
7080 assert isinstance (loaded_detector , detector .__class__ )
7181
7282
83+ @set_os_filename ("callback.pkl" )
7384def test_save_load_with_valid_callback (
85+ request : pytest .FixtureRequest ,
7486 callback : BaseCallback ,
7587) -> None :
7688 """Test save and load with valid callback.
7789
90+ :param request: Request
91+ :type request: pytest.FixtureRequest
7892 :param callback: Callback
7993 :type callback: BaseCallback
8094 """
81- filename = "/tmp/callback.pkl"
82- save (callback , filename )
83- loaded_callback = load (filename )
95+ filename = request .node .get_closest_marker ("filename" ).args [0 ]
96+ save (
97+ obj = callback ,
98+ filename = filename ,
99+ )
100+ loaded_callback = load (
101+ filename = filename ,
102+ )
84103 assert isinstance (loaded_callback , BaseCallback )
85104
86105
87- def test_save_with_invalid_object () -> None :
106+ @set_os_filename ("invalid.pkl" )
107+ def test_save_with_invalid_object (
108+ request : pytest .FixtureRequest ,
109+ ) -> None :
88110 """Test save with invalid object.
89111
112+ :param request: Request
113+ :type request: pytest.FixtureRequest
90114 :raises TypeError: Type error exception
91115 """
92116 invalid_object = "invalid"
93- filename = "/tmp/invalid.pkl"
117+ filename = request . node . get_closest_marker ( "filename" ). args [ 0 ]
94118 with pytest .raises (TypeError ):
95119 save (invalid_object , filename )
96120
97121
122+ @set_os_filename ("detector.pkl" )
98123def test_save_with_invalid_protocol (
124+ request : pytest .FixtureRequest ,
99125 detector : BaseDetector ,
100126) -> None :
101127 """Test save with invalid protocol.
102128
129+ :param request: Request
130+ :type request: pytest.FixtureRequest
103131 :param detector: Detector
104132 :type detector: BaseDetector
105133 :raises ValueError: Value error exception
106134 """
107- filename = "/tmp/detector.pkl"
108135 invalid_protocol = pickle .HIGHEST_PROTOCOL + 1
136+ filename = request .node .get_closest_marker ("filename" ).args [0 ]
109137 with pytest .raises (ValueError ):
110138 save (detector , filename , invalid_protocol )
111139
112140
113- def test_load_with_non_existent_file () -> None :
141+ @set_os_filename ("non_existent.pkl" )
142+ def test_load_with_non_existent_file (
143+ request : pytest .FixtureRequest ,
144+ ) -> None :
114145 """Test load with non-existent file.
115146
147+ :param request: Request
148+ :type request: pytest.FixtureRequest
116149 :raises FileNotFoundError: File not found error exception
117150 """
118- filename = "/tmp/non_existent.pkl"
151+ filename = request . node . get_closest_marker ( "filename" ). args [ 0 ]
119152 with pytest .raises (FileNotFoundError ):
120153 load (filename )
0 commit comments