Coverage for custom_components/remote_logger/syslog/const.py: 100%

14 statements  

« prev     ^ index     » next       coverage.py v7.10.6, created at 2026-04-07 04:46 +0000

1import voluptuous as vol 

2from homeassistant.const import CONF_HOST, CONF_PORT, CONF_PROTOCOL 

3from homeassistant.helpers import selector 

4 

5from custom_components.remote_logger.const import ( 

6 CONF_APP_NAME, 

7 CONF_BATCH_MAX_SIZE, 

8 CONF_CLIENT_TIMEOUT, 

9 CONF_FACILITY, 

10 CONF_USE_TLS, 

11 DEFAULT_BATCH_MAX_SIZE, 

12 DEFAULT_CLIENT_TIMEOUT, 

13 DEFAULT_USE_TLS, 

14) 

15 

16# Syslog severity mapping: HA log level string -> RFC 5424 severity code 

17SYSLOG_SEVERITY_MAP: dict[str, int] = { 

18 "DEBUG": 7, 

19 "INFO": 6, 

20 "WARNING": 4, 

21 "ERROR": 3, 

22 "CRITICAL": 2, 

23} 

24 

25DEFAULT_SYSLOG_SEVERITY = 6 # Informational 

26 

27# Syslog facility mapping: name -> numeric code 

28SYSLOG_FACILITY_MAP: dict[str, int] = { 

29 "kern": 0, 

30 "user": 1, 

31 "mail": 2, 

32 "daemon": 3, 

33 "auth": 4, 

34 "syslog": 5, 

35 "lpr": 6, 

36 "news": 7, 

37 "local0": 16, 

38 "local1": 17, 

39 "local2": 18, 

40 "local3": 19, 

41 "local4": 20, 

42 "local5": 21, 

43 "local6": 22, 

44 "local7": 23, 

45} 

46 

47# Syslog defaults 

48DEFAULT_SYSLOG_PORT = 514 

49PROTOCOL_UDP = "udp" 

50PROTOCOL_TCP = "tcp" 

51DEFAULT_PROTOCOL = PROTOCOL_UDP 

52DEFAULT_APP_NAME = "homeassistant" 

53DEFAULT_FACILITY = "local0" 

54 

55SYSLOG_DATA_SCHEMA = vol.Schema({ 

56 vol.Required(CONF_HOST): str, 

57 vol.Optional(CONF_PORT, default=DEFAULT_SYSLOG_PORT): int, 

58 vol.Optional(CONF_PROTOCOL, default=DEFAULT_PROTOCOL): selector.SelectSelector( 

59 selector.SelectSelectorConfig(options=[PROTOCOL_UDP, PROTOCOL_TCP]) 

60 ), 

61 vol.Optional(CONF_USE_TLS, default=DEFAULT_USE_TLS): bool, 

62 vol.Optional(CONF_APP_NAME, default=DEFAULT_APP_NAME): str, 

63 vol.Optional(CONF_FACILITY, default=DEFAULT_FACILITY): selector.SelectSelector( 

64 selector.SelectSelectorConfig(options=list(SYSLOG_FACILITY_MAP.keys())) 

65 ), 

66 vol.Optional(CONF_BATCH_MAX_SIZE, default=DEFAULT_BATCH_MAX_SIZE): vol.All(int, vol.Range(min=1, max=10000)), 

67 vol.Optional(CONF_CLIENT_TIMEOUT, default=DEFAULT_CLIENT_TIMEOUT): vol.All(int, vol.Range(min=1, max=300)), 

68})