Coverage for gws-app/gws/base/web/manager.py: 90%

21 statements  

« prev     ^ index     » next       coverage.py v7.16.2, created at 2026-10-05 13:35 +0200

1"""Web manager.""" 

2 

3from typing import Optional 

4 

5import gws 

6 

7from . import site 

8 

9class Config(gws.Config): 

10 """Web server settings.""" 

11 

12 site: Optional[site.Config] 

13 """Web site settings.""" 

14 sites: Optional[list[site.Config]] 

15 """List of sites. (deprecated in 8.4)""" 

16 ssl: Optional[site.SSLConfig] 

17 """SSL settings.""" 

18 

19 

20class Object(gws.WebManager): 

21 """Web manager.""" 

22 

23 def configure(self): 

24 p = self.cfg('site') 

25 if not p: 

26 # deprecated 

27 cfgs = self.cfg('sites') or [] 

28 if cfgs: 

29 self.root.config_warning('"web.sites" is deprecated, use "web.site"') 

30 if len(cfgs) > 1: 

31 raise gws.ConfigurationError('multiple web sites are not supported') 

32 p = cfgs[0] if cfgs else gws.Config() 

33 if self.cfg('ssl'): 

34 p = gws.u.merge(p, ssl=True) 

35 self.site = self.create_child(site.Object, p) 

36 

37 # deprecated 

38 self.sites = [self.site]