11# pylint: skip-file
22
3+ """Tests for LogOnAccess descriptor."""
4+
35import io
46import logging
57import unittest
810
911
1012class TestLogOnAccess (unittest .TestCase ):
13+ """Main tests for LogOnAccess descriptor."""
14+
1115 def setUp (self ):
16+ """Initialize specific logger for tests."""
1217 self .stream = io .StringIO ()
1318 logging .getLogger ().handlers .clear ()
1419 logging .basicConfig (level = logging .DEBUG , stream = self .stream )
1520
1621 def tearDown (self ):
22+ """Close test logger."""
1723 logging .getLogger ().handlers .clear ()
1824 self .stream .close ()
1925
2026 def test_01_positive (self ):
27+ """Test positive scenario."""
28+
2129 class Target :
2230 def __init__ (self , val = "ok" ):
2331 self .val = val
2432
2533 def __repr__ (self ):
26- return "{cls }(val={self.val})". format ( cls = self . __class__ . __name__ , self = self )
34+ return f" { self . __class__ . __name__ } (val={ self .val } )"
2735
2836 @advanced_descriptors .LogOnAccess
2937 def ok (self ):
@@ -56,6 +64,8 @@ def ok(self):
5664 self .assertEqual (self .stream .getvalue (), "DEBUG:advanced_descriptors.log_on_access:del Target(val=OK).ok\n " )
5765
5866 def test_02_positive_properties (self ):
67+ """Test positive scenario with non standard settings."""
68+
5969 class Target :
6070 def __init__ (self , val = "ok" ):
6171 self .val = val
@@ -76,10 +86,12 @@ def ok(self):
7686 self .assertEqual (target .ok , "ok" )
7787 self .assertEqual (
7888 self .stream .getvalue (),
79- "INFO:advanced_descriptors.log_on_access:<Target() at 0x{id:X}>.override -> 'ok'\n " . format ( id = id ( target )) ,
89+ f "INFO:advanced_descriptors.log_on_access:<Target() at 0x{ id ( target ) :X} >.override -> 'ok'\n " ,
8090 )
8191
8292 def test_03_positive_no_log (self ):
93+ """Test log_success flag."""
94+
8395 class Target :
8496 def __init__ (self , val = "ok" ):
8597 self .val = val
@@ -99,9 +111,11 @@ def ok(self):
99111 self .assertEqual (self .stream .getvalue (), "" )
100112
101113 def test_04_negative (self ):
114+ """Test basic negative scenario."""
115+
102116 class Target :
103117 def __repr__ (self ):
104- return "{cls}()" . format ( cls = self .__class__ .__name__ )
118+ return f" { self .__class__ .__name__ } ()"
105119
106120 @advanced_descriptors .LogOnAccess
107121 def ok (self ):
@@ -147,6 +161,8 @@ def ok(self):
147161 )
148162
149163 def test_05_negative_properties (self ):
164+ """Test negative scenario with non standard settings."""
165+
150166 class Target :
151167 def __init__ (self , val = "ok" ):
152168 self .val = val
@@ -170,11 +186,13 @@ def ok(self):
170186
171187 self .assertEqual (
172188 self .stream .getvalue ().splitlines ()[0 ],
173- "ERROR:advanced_descriptors.log_on_access:Failed: <Target() at 0x{id:X}>.override" . format ( id = id ( target )) ,
189+ f "ERROR:advanced_descriptors.log_on_access:Failed: <Target() at 0x{ id ( target ) :X} >.override" ,
174190 )
175191 self .assertEqual (len (self .stream .getvalue ().splitlines ()), 1 )
176192
177193 def test_06_negative_no_log (self ):
194+ """Test log_failure flag."""
195+
178196 class Target :
179197 def __init__ (self , val = "ok" ):
180198 self .val = val
@@ -196,9 +214,11 @@ def ok(self):
196214 self .assertEqual (self .stream .getvalue (), "" )
197215
198216 def test_07_property_mimic (self ):
217+ """Test property API not broken."""
218+
199219 class Target :
200220 def __repr__ (self ):
201- return "{}()" . format ( self .__class__ .__name__ )
221+ return f" { self .__class__ .__name__ } ()"
202222
203223 empty = advanced_descriptors .LogOnAccess (doc = "empty_property" )
204224
@@ -216,6 +236,8 @@ def __repr__(self):
216236 self .assertEqual (self .stream .getvalue (), "" )
217237
218238 def test_08_logger (self ):
239+ """Test with logger enforced."""
240+
219241 class Target :
220242 on_init_set = advanced_descriptors .LogOnAccess (
221243 logger = logging .getLogger ("on_init_set" ), fget = lambda self : "on_init_set"
@@ -235,7 +257,7 @@ def prop_name(self):
235257 prop_name .logger = "prop_name"
236258
237259 def __repr__ (self ):
238- return "{}()" . format ( self .__class__ .__name__ )
260+ return f" { self .__class__ .__name__ } ()"
239261
240262 target = Target ()
241263
@@ -261,6 +283,8 @@ def __repr__(self):
261283 self .assertEqual (self .stream .getvalue (), "DEBUG:prop_name:Target().prop_name -> 'prop_name'\n " )
262284
263285 def test_09_logger_implemented (self ):
286+ """Test with logger attribute available in target instance."""
287+
264288 class Target :
265289 def __init__ (self , val = "ok" ):
266290 self .val = val
@@ -300,13 +324,15 @@ def ok(self):
300324 self .assertEqual (self .stream .getvalue (), "DEBUG:Target:del Target(val=OK).ok\n " )
301325
302326 def test_10_log_implemented (self ):
327+ """Test with log attribute available in target instance."""
328+
303329 class Target :
304330 def __init__ (self , val = "ok" ):
305331 self .val = val
306332 self .log = logging .getLogger (self .__class__ .__name__ )
307333
308334 def __repr__ (self ):
309- return "{cls }(val={self.val})". format ( cls = self . __class__ . __name__ , self = self )
335+ return f" { self . __class__ . __name__ } (val={ self .val } )"
310336
311337 @advanced_descriptors .LogOnAccess
312338 def ok (self ):
0 commit comments