Coverage for /Users/ajo/work/jumpstarter/jumpstarter/packages/jumpstarter-driver-composite/jumpstarter_driver_composite/client.py: 63%

19 statements  

« prev     ^ index     » next       coverage.py v7.9.1, created at 2025-06-26 17:10 +0200

1from dataclasses import dataclass 

2 

3import click 

4 

5from jumpstarter.client import DriverClient 

6 

7 

8@dataclass(kw_only=True) 

9class CompositeClient(DriverClient): 

10 def __getattr__(self, name): 

11 return self.children[name] 

12 

13 def close(self): 

14 for _, v in self.children.items(): 

15 if hasattr(v, "close"): 

16 v.close() 

17 

18 def cli(self): 

19 @click.group 

20 def base(): 

21 """Generic composite device""" 

22 pass 

23 

24 for k, v in self.children.items(): 

25 if hasattr(v, "cli"): 

26 base.add_command(v.cli(), k) 

27 

28 return base