Coverage for frappe_manager / docker / subprocess_output.py: 96%

24 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-07-02 18:13 +0530

1from dataclasses import dataclass 

2 

3 

4@dataclass 

5class SubprocessOutput: 

6 stdout: list[str] 

7 stderr: list[str] 

8 combined: list[str] 

9 exit_code: int 

10 

11 @classmethod 

12 def from_output(cls, output): 

13 stdout = [] 

14 stderr = [] 

15 combined = [] 

16 exit_code = 0 

17 

18 for source, line in output: 

19 line = line.decode() 

20 if source == "exit_code": 

21 exit_code = int(line) 

22 else: 

23 combined.append(line) 

24 if source == "stdout": 

25 stdout.append(line) 

26 if source == "stderr": 

27 stderr.append(line) 

28 

29 data = {"stdout": stdout, "stderr": stderr, "combined": combined, "exit_code": exit_code} 

30 return cls(**data)