def test_getDuration(self): """Test getDuration method""" class DialogSession: def __init__(self, slotsAsObjects: dict): self.slotsAsObjects = slotsAsObjects class TimeObject: def __init__(self, value: dict, entity: str = 'snips/duration'): self.value = value self.entity = entity timeDict = { 'seconds': 6, 'minutes': 5, 'hours': 4, 'days': 3, 'weeks': 2, 'months': 1 } session = DialogSession({'Duration': [TimeObject(timeDict)]}) self.assertEqual(CommonsManager.getDuration(session), 3902706) session = DialogSession( {'Duration': [TimeObject(timeDict, 'customDurationIntent')]}) self.assertEqual(CommonsManager.getDuration(session), 0) session = DialogSession({'Duration': [TimeObject(dict())]}) self.assertEqual(CommonsManager.getDuration(session), 0)
def test_parseDeviceUid(self, mock_superManager): class MQTTMessage: def __init__(self, payload): self.payload = payload self.topic = 'test' # mock SuperManager mock_instance = MagicMock() mock_superManager.getInstance.return_value = mock_instance mock_instance.configManager.getAliceConfigByName.return_value = 'uuid' self.assertEqual( CommonsManager.parseDeviceUid(MQTTMessage('{"siteId": "uid", "IPAddress": "127.0.0.1"}')), 'uid' ) self.assertEqual( CommonsManager.parseDeviceUid(MQTTMessage('{"IPAddress": "127.0.0.1"}')), '127.0.0.1' ) self.assertEqual( CommonsManager.parseDeviceUid(MQTTMessage('{}')), 'uuid' )
def test_isYes(self): class DialogSession: def __init__(self, slotsAsObjects: dict): self.slotsAsObjects = slotsAsObjects class Slot: def __init__(self, value): self.value = {'value': value} session1 = DialogSession(dict()) session2 = DialogSession({ 'Answer': [ Slot('yes') ] }) session3 = DialogSession({ 'Answer': [ Slot('no') ] }) session4 = DialogSession({ 'Answer': [ Slot('yeah') ] }) self.assertFalse(CommonsManager.isYes(session1)) self.assertTrue(CommonsManager.isYes(session2)) self.assertFalse(CommonsManager.isYes(session3)) self.assertFalse(CommonsManager.isYes(session4))
def test_isEqualTranslated(self, mock_LanguageManager): commonsManager = CommonsManager() mock_LanguageManager.getStrings.return_value = ['String1', ' strIng2'] self.assertTrue(commonsManager.isEqualTranslated('string1', 'compareTo', 'skill')) mock_LanguageManager.getStrings.called_once_with('compareTo', 'skill') self.assertTrue(commonsManager.isEqualTranslated('string2 ', 'compareTo', 'skill')) self.assertFalse(commonsManager.isEqualTranslated('string3', 'compareTo', 'skill'))
def update(self, message: MQTTMessage): from core.commons.CommonsManager import CommonsManager self.message = message self.intentName = message.topic self.payload = CommonsManager.payload(message) self.slots.update(CommonsManager.parseSlots(message)) self.slotsAsObjects.update(CommonsManager.parseSlotsToObjects(message)) self.customData.update(CommonsManager.parseCustomData(message))
def test_parseSessionId(self): class MQTTMessage: def __init__(self, payload): self.payload = payload self.assertEqual(CommonsManager.parseSessionId(MQTTMessage(None)), False) self.assertEqual( CommonsManager.parseSessionId( MQTTMessage('{"sessionId": "sessionIdValue"}')), "sessionIdValue")
def test_parseSiteId(self): class MQTTMessage: def __init__(self, payload): self.payload = payload self.assertEqual( CommonsManager.parseSiteId(MQTTMessage('{"siteId": "site_id", "IPAddress": "127.0.0.1"}')), 'site id') self.assertEqual( CommonsManager.parseSiteId(MQTTMessage('{"IPAddress": "127.0.0.1"}')), '127.0.0.1')
def extend(self, message: MQTTMessage, sessionId: str = None): if sessionId: self.sessionId = sessionId from core.commons.CommonsManager import CommonsManager self.message = message self.intentName = message.topic self.payload = CommonsManager.payload(message) self.slots = CommonsManager.parseSlots(message) self.slotsAsObjects = CommonsManager.parseSlotsToObjects(message) self.customData = CommonsManager.parseCustomData(message)
def test_toPascalCase(self): """Test whether string gets correctly converted to pascal case""" self.assertEqual(CommonsManager.toPascalCase('example string'), 'ExampleString') self.assertEqual( CommonsManager.toPascalCase('Example-string_2', replaceSepCharacters=True), 'ExampleString2') self.assertEqual( CommonsManager.toPascalCase('Example+string/2', replaceSepCharacters=True, sepCharacters=('+', '/')), 'ExampleString2')
def test_parseSlots(self): class MQTTMessage: def __init__(self, payload): self.payload = payload self.assertEqual(CommonsManager.parseSlots(MQTTMessage(None)), dict()) message = MQTTMessage('{"slots": [\ {"slotName": "slotName1", "rawValue": "rawValue1"},\ {"slotName": "slotName2", "rawValue": "rawValue2"}]}') self.assertEqual(CommonsManager.parseSlots(message), { "slotName1": "rawValue1", "slotName2": "rawValue2" })
def test_payload(self): class MQTTMessage: def __init__(self, payload): self.payload = payload self.assertEqual( CommonsManager.payload(MQTTMessage("{'test': 2}")), dict()) self.assertEqual( CommonsManager.payload(MQTTMessage(None)), dict()) self.assertEqual( CommonsManager.payload(MQTTMessage(b'\x81')), dict()) self.assertEqual( CommonsManager.payload(MQTTMessage('{"test": 2}')), {'test': 2}) self.assertEqual( CommonsManager.payload(MQTTMessage(b'{"test": 2}')), {'test': 2}) self.assertEqual( CommonsManager.payload(MQTTMessage('true')), {'true': True}) self.assertEqual( CommonsManager.payload(MQTTMessage('false')), {'false': False}) self.assertEqual( CommonsManager.payload(MQTTMessage(b'true')), {'true': True})
def test_parseSlotsToObjects(self): class MQTTMessage: def __init__(self, payload): self.payload = payload self.assertEqual(CommonsManager.parseSlotsToObjects(MQTTMessage(None)), dict())
def test_dictMaxValue(self): self.assertEqual( CommonsManager.dictMaxValue({ 'first': 1, 'second': 3, 'third': 2 }), 'second')
def initManagers(self): from core.commons.CommonsManager import CommonsManager from core.base.ConfigManager import ConfigManager from core.server.MqttManager import MqttManager from core.util.DatabaseManager import DatabaseManager from core.util.ThreadManager import ThreadManager from core.util.TimeManager import TimeManager from core.util.NetworkManager import NetworkManager from core.snips.SnipsServicesManager import SnipsServicesManager from core.util.HotwordManager import HotwordManager self.commonsManager = CommonsManager() self.commons = self.commonsManager self.configManager = ConfigManager() self.databaseManager = DatabaseManager() self.threadManager = ThreadManager() self.mqttManager = MqttManager() self.timeManager = TimeManager() self.networkManager = NetworkManager() self.snipsServicesManager = SnipsServicesManager() self.hotwordManager = HotwordManager() self._managers = { name[0].upper() + name[1:]: manager for name, manager in self.__dict__.items() if name.endswith('Manager') }
def test_angleToCardinal(self): self.assertEqual(CommonsManager.angleToCardinal(0), 'north') self.assertEqual(CommonsManager.angleToCardinal(90), 'east') self.assertEqual(CommonsManager.angleToCardinal(180), 'south') self.assertEqual(CommonsManager.angleToCardinal(270), 'west') self.assertEqual(CommonsManager.angleToCardinal(45), 'north east') self.assertEqual(CommonsManager.angleToCardinal(135), 'south east') self.assertEqual(CommonsManager.angleToCardinal(225), 'south west') self.assertEqual(CommonsManager.angleToCardinal(315), 'north west')
def test_parseCustomData(self): class MQTTMessage: def __init__(self, payload): self.payload = payload self.assertEqual(CommonsManager.parseCustomData(MQTTMessage(None)), dict()) self.assertEqual( CommonsManager.parseCustomData( MQTTMessage(b'{"customData": "nonJsonString"}')), dict()) self.assertEqual( CommonsManager.parseCustomData( MQTTMessage(b'{"customData": null}')), dict()) self.assertEqual( CommonsManager.parseCustomData( MQTTMessage('{"customData": "{\\"test\\": \\"test\\"}"}')), {'test': 'test'})
def initManagers(self): from core.commons.CommonsManager import CommonsManager from core.base.ConfigManager import ConfigManager from core.base.ModuleManager import ModuleManager from core.device.DeviceManager import DeviceManager from core.dialog.DialogSessionManager import DialogSessionManager from core.dialog.MultiIntentManager import MultiIntentManager from core.dialog.ProtectedIntentManager import ProtectedIntentManager from core.server.MqttManager import MqttManager from core.snips.SamkillaManager import SamkillaManager from core.snips.SnipsConsoleManager import SnipsConsoleManager from core.snips.SnipsServicesManager import SnipsServicesManager from core.user.UserManager import UserManager from core.util.DatabaseManager import DatabaseManager from core.util.InternetManager import InternetManager from core.util.TelemetryManager import TelemetryManager from core.util.ThreadManager import ThreadManager from core.util.TimeManager import TimeManager from core.voice.ASRManager import ASRManager from core.voice.LanguageManager import LanguageManager from core.voice.TalkManager import TalkManager from core.voice.TTSManager import TTSManager from core.voice.WakewordManager import WakewordManager from core.interface.WebInterfaceManager import WebInterfaceManager from core.snips.SnipsWatchManager import SnipsWatchManager self.commonsManager = CommonsManager() self.commons = self.commonsManager self.configManager = ConfigManager() self.databaseManager = DatabaseManager() self.languageManager = LanguageManager() self.snipsServicesManager = SnipsServicesManager() self.asrManager = ASRManager() self.ttsManager = TTSManager() self.threadManager = ThreadManager() self.protectedIntentManager = ProtectedIntentManager() self.mqttManager = MqttManager() self.timeManager = TimeManager() self.userManager = UserManager() self.dialogSessionManager = DialogSessionManager() self.multiIntentManager = MultiIntentManager() self.telemetryManager = TelemetryManager() self.moduleManager = ModuleManager() self.deviceManager = DeviceManager() self.internetManager = InternetManager() self.snipsConsoleManager = SnipsConsoleManager() self.samkillaManager = SamkillaManager() self.wakewordManager = WakewordManager() self.talkManager = TalkManager() self.webInterfaceManager = WebInterfaceManager() self.snipsWatchManager = SnipsWatchManager() self._managers = { name[0].upper() + name[1:]: manager for name, manager in self.__dict__.items() if name.endswith('Manager') }
def test_indexOf(self): string1 = 'unittest' string2 = 'unit test' string3 = 'unnittest' string4 = 'test' self.assertEqual(CommonsManager.indexOf('unittest', string1), 0) self.assertEqual(CommonsManager.indexOf('unittest', string2), -1) self.assertEqual(CommonsManager.indexOf('unittest', string3), -1) self.assertEqual(CommonsManager.indexOf('unit', string4), -1) self.assertEqual(CommonsManager.indexOf('test', string1), 4) self.assertEqual(CommonsManager.indexOf('nn', string3), 1)
def test_payload(self): class MQTTMessage(object): def __init__(self, payload): self.payload = payload self.topic = 'test' self.assertEqual(CommonsManager.payload(MQTTMessage(None)), {'test': None}) self.assertEqual(CommonsManager.payload(MQTTMessage(b'\x81')), {'test': b'\x81'}) self.assertEqual(CommonsManager.payload(MQTTMessage('{"test": 2}')), {'test': 2}) self.assertEqual(CommonsManager.payload(MQTTMessage(b'{"test": 2}')), {'test': 2}) self.assertEqual(CommonsManager.payload(MQTTMessage('true')), {'test': True}) self.assertEqual(CommonsManager.payload(MQTTMessage('false')), {'test': False}) self.assertEqual(CommonsManager.payload(MQTTMessage(b'true')), {'test': True})
def test_getFunctionCaller(self): self.assertEqual(CommonsManager.getFunctionCaller(1), 'test_CommonsManager')
def initManagers(self): from core.commons.CommonsManager import CommonsManager from core.base.ConfigManager import ConfigManager from core.base.SkillManager import SkillManager from core.device.DeviceManager import DeviceManager from core.device.LocationManager import LocationManager from core.dialog.MultiIntentManager import MultiIntentManager from core.server.MqttManager import MqttManager from core.user.UserManager import UserManager from core.util.DatabaseManager import DatabaseManager from core.util.InternetManager import InternetManager from core.util.TelemetryManager import TelemetryManager from core.util.ThreadManager import ThreadManager from core.util.TimeManager import TimeManager from core.asr.ASRManager import ASRManager from core.voice.LanguageManager import LanguageManager from core.voice.TalkManager import TalkManager from core.voice.TTSManager import TTSManager from core.voice.WakewordRecorder import WakewordRecorder from core.interface.WebInterfaceManager import WebInterfaceManager from core.interface.NodeRedManager import NodeRedManager from core.base.SkillStoreManager import SkillStoreManager from core.dialog.DialogTemplateManager import DialogTemplateManager from core.base.AssistantManager import AssistantManager from core.nlu.NluManager import NluManager from core.util.AliceWatchManager import AliceWatchManager from core.server.AudioServer import AudioManager from core.dialog.DialogManager import DialogManager from core.voice.WakewordManager import WakewordManager self.commonsManager = CommonsManager() self.commons = self.commonsManager self.configManager = ConfigManager() self.databaseManager = DatabaseManager() self.skillManager = SkillManager() self.deviceManager = DeviceManager() self.audioManager = AudioManager() self.languageManager = LanguageManager() self.asrManager = ASRManager() self.ttsManager = TTSManager() self.threadManager = ThreadManager() self.mqttManager = MqttManager() self.timeManager = TimeManager() self.userManager = UserManager() self.multiIntentManager = MultiIntentManager() self.telemetryManager = TelemetryManager() self.locationManager = LocationManager() self.internetManager = InternetManager() self.wakewordRecorder = WakewordRecorder() self.talkManager = TalkManager() self.webInterfaceManager = WebInterfaceManager() self.nodeRedManager = NodeRedManager() self.skillStoreManager = SkillStoreManager() self.dialogTemplateManager = DialogTemplateManager() self.assistantManager = AssistantManager() self.nluManager = NluManager() self.aliceWatchManager = AliceWatchManager() self.dialogManager = DialogManager() self.wakewordManager = WakewordManager() self._managers = { name[0].upper() + name[1:]: manager for name, manager in self.__dict__.items() if name.endswith('Manager') }
def test_isSpelledWord(self): """Test whether string is spelled""" self.assertTrue(CommonsManager.isSpelledWord('e x a m p l e')) self.assertFalse(CommonsManager.isSpelledWord('example')) self.assertFalse(CommonsManager.isSpelledWord('e x am p l e'))
def test_clamp(self): self.assertEqual(CommonsManager.clamp(4.5, 4, 5), 4.5) self.assertEqual(CommonsManager.clamp(5, 4, 4.6), 4.6) self.assertEqual(CommonsManager.clamp(4, 4.4, 5), 4.4) self.assertEqual(CommonsManager.clamp(1, -2, -1), -1)