Coverage for kea/intent.py: 67%

87 statements  

« prev     ^ index     » next       coverage.py v7.6.9, created at 2024-12-22 16:05 +0800

1class Intent(object): 

2 """ 

3 this class describes a intent event 

4 """ 

5 

6 def __init__(self, prefix="start", action=None, data_uri=None, mime_type=None, category=None, 

7 component=None, flag=None, extra_keys=None, extra_string=None, extra_boolean=None, 

8 extra_int=None, extra_long=None, extra_float=None, extra_uri=None, extra_component=None, 

9 extra_array_int=None, extra_array_long=None, extra_array_float=None, flags=None, suffix="", is_harmonyos=False): 

10 self.event_type = 'intent' 

11 self.prefix = prefix 

12 self.action = action 

13 self.data_uri = data_uri 

14 self.mime_type = mime_type 

15 self.category = category 

16 self.component = component 

17 self.flag = flag 

18 self.extra_keys = extra_keys 

19 self.extra_string = extra_string 

20 self.extra_boolean = extra_boolean 

21 self.extra_int = extra_int 

22 self.extra_long = extra_long 

23 self.extra_float = extra_float 

24 self.extra_uri = extra_uri 

25 self.extra_component = extra_component 

26 self.extra_array_int = extra_array_int 

27 self.extra_array_long = extra_array_long 

28 self.extra_array_float = extra_array_float 

29 self.flags = flags 

30 self.suffix = suffix 

31 self.cmd = None 

32 self.is_harmonyos = is_harmonyos 

33 self.get_cmd() 

34 

35 def get_cmd(self): 

36 """ 

37 convert this intent to cmd string 

38 :rtype : object 

39 :return: str, cmd string 

40 """ 

41 if self.cmd is not None: 

42 return self.cmd 

43 

44 if not self.is_harmonyos: 

45 cmd = "am " 

46 else: 

47 # HarmonyOS intent form 

48 cmd = "aa " 

49 

50 if self.prefix: 

51 cmd += self.prefix 

52 if self.action is not None: 

53 cmd += " -a " + self.action 

54 if self.data_uri is not None: 

55 cmd += " -d " + self.data_uri 

56 if self.mime_type is not None: 

57 cmd += " -t " + self.mime_type 

58 if self.category is not None: 

59 cmd += " -c " + self.category 

60 if self.component is not None: 

61 cmd += " -n " + self.component 

62 if self.flag is not None: 

63 cmd += " -f " + self.flag 

64 if self.extra_keys: 

65 for key in self.extra_keys: 

66 cmd += " --esn '%s'" % key 

67 if self.extra_string: 

68 for key in list(self.extra_string.keys()): 

69 cmd += " -e '%s' '%s'" % (key, self.extra_string[key]) 

70 if self.extra_boolean: 

71 for key in list(self.extra_boolean.keys()): 

72 cmd += " -ez '%s' %s" % (key, self.extra_boolean[key]) 

73 if self.extra_int: 

74 for key in list(self.extra_int.keys()): 

75 cmd += " -ei '%s' %s" % (key, self.extra_int[key]) 

76 if self.extra_long: 

77 for key in list(self.extra_long.keys()): 

78 cmd += " -el '%s' %s" % (key, self.extra_long[key]) 

79 if self.extra_float: 

80 for key in list(self.extra_float.keys()): 

81 cmd += " -ef '%s' %s" % (key, self.extra_float[key]) 

82 if self.extra_uri: 

83 for key in list(self.extra_uri.keys()): 

84 cmd += " -eu '%s' '%s'" % (key, self.extra_uri[key]) 

85 if self.extra_component: 

86 for key in list(self.extra_component.keys()): 

87 cmd += " -ecn '%s' %s" % (key, self.extra_component[key]) 

88 if self.extra_array_int: 

89 for key in list(self.extra_array_int.keys()): 

90 cmd += " -eia '%s' %s" % (key, ",".join(self.extra_array_int[key])) 

91 if self.extra_array_long: 

92 for key in list(self.extra_array_long.keys()): 

93 cmd += " -ela '%s' %s" % (key, ",".join(self.extra_array_long[key])) 

94 if self.extra_array_float: 

95 for key in list(self.extra_array_float.keys()): 

96 cmd += " -efa '%s' %s" % (key, ",".join(self.extra_array_float[key])) 

97 if self.flags: 

98 cmd += " " + " ".join(self.flags) 

99 if self.suffix: 

100 cmd += " " + self.suffix 

101 self.cmd = cmd 

102 return self.cmd 

103 

104 def __str__(self): 

105 return self.get_cmd()