def test_ok(self): s = TimeSanitizer(timezone='Asia/Saigon') # ok, o = s.detect_time('Now') self.assertEqual(o['human_time'], 'Now') self.assertIsInstance(o['time'], datetime) # ok, o = s.detect_time('now') self.assertEqual(o['human_time'], 'Now') self.assertIsInstance(o['time'], datetime) # ok, o = s.detect_time('Today, 11am') print(json_dumps(o)) # ok, o = s.detect_time('Today, 5:32pm') print(json_dumps(o)) # ok, o = s.detect_time('TOMORROW, 09:3pm') print(json_dumps(o)) # ok, o = s.detect_time('1/12/2020, 09:3pm') print(json_dumps(o)) # ok, o = s.detect_time('10/12/2020, 7pm') print(json_dumps(o)) pass
def save_dialog(self): # if self.__persist is None: if LOG.isEnabledFor(LL.DEBUG): LOG.log(LL.DEBUG, 'The persist object is None, skipped') return self # try: self.__persist.state = self.state # story_json = json_dumps(self.__context) self.__persist.story = story_json # self.__persist.save() # if LOG.isEnabledFor(LL.DEBUG): LOG.log(LL.DEBUG, 'Logging current dialog successfully: %s' % story_json) return self except Exception as err: if LOG.isEnabledFor(LL.DEBUG): LOG.log(LL.DEBUG, 'Logging current dialog failed, error: %s' % str(err)) raise err pass
def __init__(self, *args, **kwargs): # if LOG.isEnabledFor(LL.DEBUG): LOG.log(LL.DEBUG, 'The states: %s' % json_dumps(self.states)) # self.__rules, self.__replies = self.enhanceRules(self.transitions) # super(Descriptor, self).__init__(*args, **kwargs)
def __is_invalid_state(self, persist): if not persist.state in self.__descriptor.states: if LOG.isEnabledFor(LL.DEBUG): LOG.log( LL.DEBUG, 'The conversation has invalid state [%s] / valid states: %s' % (persist.state, json_dumps(self.__descriptor.states))) return True return False
def goodbye(self): if self._isInitialState() or self._isFinalState(): return self try: self.__persist.state = self._quit_state # story_json = json_dumps(self.__context) self.__persist.story = story_json # self.__persist.save() # if LOG.isEnabledFor(LL.DEBUG): LOG.log(LL.DEBUG, 'Logging farewell event successfully: %s' % story_json) return self except Exception as err: if LOG.isEnabledFor(LL.DEBUG): LOG.log(LL.DEBUG, 'Logging farewell event failed, error: %s' % str(err)) raise err
def persist(self, ref): # assert isinstance( ref, ConversationModel), 'object must be a ConversationModel' self.__persist = ref # story = self.__persist.story if story is not None and len(story) > 0: story_dict, err = json_loads(story) if story_dict is not None: self.__context = story_dict if LOG.isEnabledFor(LL.DEBUG): LOG.log( LL.DEBUG, 'loading the context successfully: %s' % json_dumps(self.__context)) else: if LOG.isEnabledFor(LL.DEBUG): LOG.log(LL.DEBUG, 'error on loading the context: %s' % str(err)) # return ref
def __repr__(self): return json_dumps( self, ['id', 'created_at', 'state', 'phone_number', 'facebook_id'])