async def test_dump_and_restore_as_json(default_agent, tmpdir_factory): trackers = await default_agent.load_data(DEFAULT_STORIES_FILE) for tracker in trackers: out_path = tmpdir_factory.mktemp("tracker").join("dumped_tracker.json") dumped = tracker.current_state(EventVerbosity.AFTER_RESTART) rasa.utils.io.dump_obj_as_json_to_file(out_path.strpath, dumped) restored_tracker = restore.load_tracker_from_json( out_path.strpath, default_agent.domain) assert restored_tracker == tracker
async def test_dump_and_restore_as_json(default_agent: Agent, tmp_path: Path): trackers = await default_agent.load_data(DEFAULT_STORIES_FILE) for tracker in trackers: out_path = tmp_path / "dumped_tracker.json" dumped = tracker.current_state(EventVerbosity.AFTER_RESTART) rasa.shared.utils.io.dump_obj_as_json_to_file(str(out_path), dumped) restored_tracker = restore.load_tracker_from_json( str(out_path), default_agent.domain) assert restored_tracker == tracker
def test_read_json_dump(default_agent): tracker_dump = "data/test_trackers/tracker_moodbot.json" tracker_json = json.loads(rasa.utils.io.read_file(tracker_dump)) restored_tracker = restore.load_tracker_from_json(tracker_dump, default_agent.domain) assert len(restored_tracker.events) == 7 assert restored_tracker.latest_action_name == "action_listen" assert not restored_tracker.is_paused() assert restored_tracker.sender_id == "mysender" assert restored_tracker.events[-1].timestamp == 1517821726.211042 restored_state = restored_tracker.current_state( EventVerbosity.AFTER_RESTART) assert restored_state == tracker_json
async def test_restoring_tracker(trained_moodbot_path, recwarn): tracker_dump = "data/test_trackers/tracker_moodbot.json" agent = Agent.load(trained_moodbot_path) tracker = restore.load_tracker_from_json(tracker_dump, agent.domain) await restore.replay_events(tracker, agent) # makes sure there are no warnings. warnings are raised, if the models # predictions differ from the tracker when the dumped tracker is replayed assert [e for e in recwarn if e._category_name == "UserWarning"] == [] assert len(tracker.events) == 7 assert tracker.latest_action_name == "action_listen" assert not tracker.is_paused() assert tracker.sender_id == "mysender" assert tracker.events[-1].timestamp == 1517821726.211042
async def test_restoring_tracker(trained_moodbot_path, recwarn): tracker_dump = "data/test_trackers/tracker_moodbot.json" agent = Agent.load(trained_moodbot_path) tracker = restore.load_tracker_from_json(tracker_dump, agent.domain) await restore.replay_events(tracker, agent) # makes sure there are no warnings.warnings are raised, if the models # predictions differ from the tracker when the dumped tracker is replayed # TODO tensorflow is printing a warning currently, should be resolved with an # upcoming version (https://github.com/tensorflow/tensorflow/issues/35100) # assert [e for e in recwarn if e._category_name == "UserWarning"] == [] assert len(tracker.events) == 7 assert tracker.latest_action_name == "action_listen" assert not tracker.is_paused() assert tracker.sender_id == "mysender" assert tracker.events[-1].timestamp == 1517821726.211042