File tree Expand file tree Collapse file tree 2 files changed +42
-0
lines changed Expand file tree Collapse file tree 2 files changed +42
-0
lines changed Original file line number Diff line number Diff line change
1
+
2
+ [pytest]
3
+ usefixtures = chdir setlog
Original file line number Diff line number Diff line change
1
+
2
+ import pytest
3
+ from twisted .python import log
4
+
5
+
6
+ class LogObservers :
7
+ """Class for keeping track of log observers across test modules"""
8
+
9
+ def __init__ (self ):
10
+ self .observers = []
11
+
12
+ def add (self , logfile = 'test.log' ):
13
+ fileobj = open (logfile , 'wb' )
14
+ observer = log .FileLogObserver (fileobj )
15
+ log .startLoggingWithObserver (observer .emit , 0 )
16
+ self .observers .append ((fileobj , observer ))
17
+
18
+ def remove (self ):
19
+ fileobj , observer = self .observers .pop ()
20
+ log .removeObserver (observer .emit )
21
+ fileobj .close ()
22
+
23
+
24
+ @pytest .fixture (scope = 'module' )
25
+ def log_observers ():
26
+ return LogObservers ()
27
+
28
+
29
+ @pytest .fixture ()
30
+ def setlog (request , log_observers ):
31
+ """Attach test.log file observer to twisted log, for trial compatibility"""
32
+ log_observers .add ()
33
+ request .addfinalizer (log_observers .remove )
34
+
35
+
36
+ @pytest .fixture ()
37
+ def chdir (tmpdir ):
38
+ """Change to pytest-provided temporary directory"""
39
+ tmpdir .chdir ()
You can’t perform that action at this time.
0 commit comments