def load_storage(self): super(BinariesTestClient, self).load_storage() self.add_default_stores() bot_config = self.configuration.client_configuration.configurations[0] brain_config = bot_config.configurations[0] brain_config.binaries._load_binary = self._load_bin brain_config.binaries._save_binary = self._save_bin aimlfile = os.path.dirname(__file__) + os.sep + self.TEST_AIML_FILE self._file_store_config._categories_storage = FileStoreConfiguration( dirs=aimlfile, format="xml", extension="aiml", encoding="utf-8", delete_on_start=False) self.storage_factory._storage_engines[ StorageFactory.CATEGORIES] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.CATEGORIES] = self._storage_engine config = FileStoreConfiguration() config._dirs = [self._filename] config._has_single_file = True self._file_store_config._binaries_storage = config self.storage_factory._storage_engines[ StorageFactory.BINARIES] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.BINARIES] = self._storage_engine
def add_duplicates_store(self): config = FileStoreConfiguration() tmpdir = os.path.dirname(__file__) + os.sep + self.TEST_DIRECTORY tmpfile = tmpdir + os.sep + self.DUPLICATES_FILE config._dirs = [tmpfile] config._has_single_file = True self._file_store_config._duplicates_storage = config self.storage_factory._storage_engines[ StorageFactory.DUPLICATES] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.DUPLICATES] = self._storage_engine
def load_storage(self): super(AimlTestClient, self).load_storage() self.add_default_stores() bot_config = self.configuration.client_configuration.configurations[0] brain_config = bot_config.configurations[0] if self._aiml_type == "errors": brain_config.debugfiles._save_errors = True if self._set_store is True: self.add_errors_store() elif self._aiml_type == "duplicates": brain_config.debugfiles._save_duplicates = True if self._set_store is True: self.add_duplicates_store() if self._category_file is None: self.add_categories_store([os.path.dirname(__file__)]) else: aimlfile = os.path.dirname(__file__) + os.sep + self._category_file self._file_store_config._categories_storage = FileStoreConfiguration( dirs=aimlfile, format="xml", extension="aiml", encoding="utf-8", delete_on_start=False) self.storage_factory._storage_engines[ StorageFactory.CATEGORIES] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.CATEGORIES] = self._storage_engine
def add_regex_templates_store(self, file): self._file_store_config._regex_storage = FileStoreConfiguration( file=file, format="text", encoding="utf-8", delete_on_start=False) self.storage_factory._storage_engines[ StorageFactory.REGEX_TEMPLATES] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.REGEX_TEMPLATES] = self._storage_engine
def add_variables_store(self, file): self._file_store_config._variables_storage = FileStoreConfiguration( file=file, format="text", encoding="utf-8", delete_on_start=False) self.storage_factory._storage_engines[ StorageFactory.VARIABLES] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.VARIABLES] = self._storage_engine
def load_storage(self): super(NluTestClient, self).load_storage() self.add_default_stores() aimlfile = os.path.dirname(__file__) + os.sep + self._aiml_file self._file_store_config._categories_storage = FileStoreConfiguration( dirs=aimlfile, format="xml", extension="aiml", encoding="utf-8", delete_on_start=False) self.storage_factory._storage_engines[ StorageFactory.CATEGORIES] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.CATEGORIES] = self._storage_engine bot_config = self.configuration.client_configuration.configurations[0] brain_config = bot_config._brain_configs[0] if self._nlu_invalid is False: brain_config.nlu._classname = 'programytest.aiml_tests.nlu_tests.test_nlu.DummyNlu' else: brain_config.nlu._classname = 'programytest.aiml_tests.nlu_tests.test_nlu.InvalidNlu' brain_config.nlu._url = 'http://test_nlu.co.jp' brain_config.nlu._apikey = self._response_type brain_config.nlu._use_file = False
def parse_configuration(self): self.configuration.client_configuration.storage._categories_storage = FileStoreConfiguration( dirs=[os.path.dirname(__file__)], format="xml", extension="aiml", encoding="utf-8", delete_on_start=False)
def test_save_braintree(self): config = FileStorageConfiguration() config._categories_storage = FileStoreConfiguration(dirs=[os.path.dirname(__file__) + os.sep + "data" + os.sep + "categories"], extension="aiml", subdirs=False, format="xml", encoding="utf-8", delete_on_start=False) tmpdir = os.path.dirname(__file__) + os.sep + "braintree" tmpfile = tmpdir + os.sep + "braintree.xml" config.braintree_storage._dirs = [tmpfile] config.braintree_storage._has_single_file = True engine = FileStorageEngine(config) engine.initialise() store = FileBraintreeStore(engine) path = store._get_dir_from_path(store._get_storage_path()) if os.path.exists(path): shutil.rmtree(path) self.assertFalse(os.path.exists(path)) test_client = TestClient() client_context = test_client.create_client_context("test1") pattern_graph = client_context.brain.aiml_parser.pattern_parser store.save_braintree(client_context, pattern_graph) self.assertTrue(os.path.exists(store._get_storage_path())) shutil.rmtree(tmpdir) self.assertFalse(os.path.exists(tmpdir))
def add_twitter_store(self): self._file_store_config._twitter_storage = FileStoreConfiguration( dirs=os.path.dirname(__file__) + os.sep + "testdata", format="text", encoding="utf-8", delete_on_start=False) self.storage_factory._storage_engines[ StorageFactory.TWITTER] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.TWITTER] = self._storage_engine
def add_oobs_store(self, oobsfile): self._file_store_config._oobs_storage = FileStoreConfiguration( file=oobsfile, fileformat="text", encoding="utf-8", delete_on_start=False) self.storage_factory._storage_engines[ StorageFactory.OOBS] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.OOBS] = self._storage_engine
def add_braintree_store(self, brainfile): self._file_store_config._braintree_storage = FileStoreConfiguration( file=brainfile, fileformat="text", encoding="utf-8", delete_on_start=False) self.storage_factory._storage_engines[ StorageFactory.BRAINTREE] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.BRAINTREE] = self._storage_engine
def add_properties_store(self, file): self._file_store_config._properties_storage = FileStoreConfiguration( file=file, fileformat="text", encoding="utf-8", delete_on_start=False) self.storage_factory._storage_engines[ StorageFactory.PROPERTIES] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.PROPERTIES] = self._storage_engine
def add_learnf_store(self, dirs): self._file_store_config._learnf_storage = FileStoreConfiguration( dirs=dirs, format="xml", extension="aiml", encoding="utf-8", delete_on_start=False) self.storage_factory._storage_engines[ StorageFactory.LEARNF] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.LEARNF] = self._storage_engine
def add_services_store(self, dirs): self._file_store_config._services_storage = FileStoreConfiguration( dirs=dirs, fileformat="yaml", extension="conf", encoding="utf-8", delete_on_start=False) self.storage_factory._storage_engines[ StorageFactory.SERVICES] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.SERVICES] = self._storage_engine
def add_debug_stores(self, errors_file, duplicates_file): self._file_store_config._errors_storage = FileStoreConfiguration( file=errors_file, fileformat="text", encoding="utf-8", delete_on_start=False) self.storage_factory._storage_engines[ StorageFactory.ERRORS] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.ERRORS] = self._storage_engine self._file_store_config._duplicates_storage = FileStoreConfiguration( file=duplicates_file, fileformat="text", encoding="utf-8", delete_on_start=False) self.storage_factory._storage_engines[ StorageFactory.DUPLICATES] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.DUPLICATES] = self._storage_engine
def add_template_nodes_store(self, file=None): if file is None: file = os.path.dirname( __file__ ) + os.sep + "testdata" + os.sep + "nodes" + os.sep + "test_template_nodes.txt" self._file_store_config._template_nodes_storage = FileStoreConfiguration( file=file, format="text", encoding="utf-8", delete_on_start=False) self.storage_factory._storage_engines[ StorageFactory.TEMPLATE_NODES] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.TEMPLATE_NODES] = self._storage_engine
def add_categories_store(self, dirs): self._file_store_config._categories_storage = FileStoreConfiguration( dirs=dirs, fileformat="xml", extension="aiml", encoding="utf-8", delete_on_start=False) self.storage_factory._storage_engines[ StorageFactory.CATEGORIES] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.CATEGORIES] = self._storage_engine
def add_person2_store(self, file): self._file_store_config._person2_storage = FileStoreConfiguration( dirs=file, format="text", extension="txt", encoding="utf-8", delete_on_start=False) self.storage_factory._storage_engines[ StorageFactory.PERSON2] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.PERSON2] = self._storage_engine
def add_single_categories_store(self, file): self._file_store_config._categories_storage = FileStoreConfiguration( file=file, format="xml", extension="aiml", encoding="utf-8", delete_on_start=False) self.storage_factory._storage_engines[ 'categories'] = self._storage_engine self.storage_factory._store_to_engine_map[ 'categories'] = self._storage_engine
def add_set_store(self, file): self._file_store_config._sets_storage = FileStoreConfiguration( file=file, format="text", extension="txt", encoding="utf-8", delete_on_start=False) self.storage_factory._storage_engines[ StorageFactory.SETS] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.SETS] = self._storage_engine
def add_spelling_store(self): self._file_store_config._spelling_storage = FileStoreConfiguration( file=os.path.dirname(__file__) + os.sep + "testdata" + os.sep + "test_corpus.txt", format="text", encoding="utf-8", delete_on_start=False) self.storage_factory._storage_engines[ StorageFactory.SPELLING_CORPUS] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.SPELLING_CORPUS] = self._storage_engine
def add_usergroups_store(self): self._file_store_config._usergroups_storage = FileStoreConfiguration( file=os.path.dirname(__file__) + os.sep + "testdata" + os.sep + "test_usergroups.yaml", format="yaml", encoding="utf-8", delete_on_start=False) self.storage_factory._storage_engines[ StorageFactory.USERGROUPS] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.USERGROUPS] = self._storage_engine
def add_conversation_store(self, dir): self._file_store_config._conversation_storage = FileStoreConfiguration( dirs=dir, format="text", extension="txt", encoding="utf-8", delete_on_start=False) self.storage_factory._storage_engines[ StorageFactory.CONVERSATIONS] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.CONVERSATIONS] = self._storage_engine
def add_rdfs_store(self, dirs): self._file_store_config._rdf_storage = FileStoreConfiguration( dirs=dirs, format="text", extension="txt", encoding="utf-8", delete_on_start=False) self.storage_factory._storage_engines[ StorageFactory.RDF] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.RDF] = self._storage_engine
def add_license_keys_store(self): self._file_store_config._license_storage = FileStoreConfiguration( file=os.path.dirname(__file__) + os.sep + "testdata" + os.sep + "test_licenses.keys", format="text", encoding="utf-8", delete_on_start=False) self.storage_factory._storage_engines[ StorageFactory.LICENSE_KEYS] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.LICENSE_KEYS] = self._storage_engine self.load_license_keys()
def load_storage(self): super(BrainTreeTestClient, self).load_storage() self.add_default_stores() aimlfile = os.path.dirname(__file__) + os.sep + self.TEST_AIML_FILE self._file_store_config._categories_storage = FileStoreConfiguration( dirs=aimlfile, format="xml", extension="aiml", encoding="utf-8", delete_on_start=False) self.storage_factory._storage_engines[ StorageFactory.CATEGORIES] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.CATEGORIES] = self._storage_engine config = FileStoreConfiguration() config._format = self._tree_type config._dirs = [self._filename] config._has_single_file = True self._file_store_config._braintree_storage = config self.storage_factory._storage_engines[ StorageFactory.BRAINTREE] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.BRAINTREE] = self._storage_engine
def test_load_all_from_text_file_diff_extension(self): config = FileStorageConfiguration() file = os.path.dirname(__file__) + os.sep + "data" + os.sep + "categories" + os.sep + "kinghorn.aiml" self.assertTrue(os.path.exists(file)) config._categories_storage = FileStoreConfiguration(file=file, extension="xml", fileformat="xml", encoding="utf-8", delete_on_start=False) engine = FileStorageEngine(config) engine.initialise() store = FileCategoryStore(engine) parser = MockAIMLParser() store.load_all(parser) self.assertEqual(0, len(parser._parsed_files))
def test_load_all_from_test_dir_no_subdir(self): config = FileStorageConfiguration() dirs = os.path.dirname(__file__) + os.sep + "data" + os.sep + "categories" self.assertTrue(os.path.exists(dirs)) config._categories_storage = FileStoreConfiguration(dirs=[dirs], extension="aiml", subdirs=False, fileformat="xml", encoding="utf-8", delete_on_start=False) engine = FileStorageEngine(config) engine.initialise() store = FileCategoryStore(engine) parser = MockAIMLParser() store.load_all(parser) self.assertEqual(1, len(parser._parsed_files)) self.assertTrue(parser._parsed_files[0].endswith("/kinghorn.aiml"))
def load_storage(self): super(JpJsonAIMLTestClient, self).load_storage() self.add_default_stores() if self._category_file is None: self.add_categories_store([os.path.dirname(__file__)]) else: aimlfile = os.path.dirname(__file__) + os.sep + self._category_file self._file_store_config._categories_storage = FileStoreConfiguration( dirs=aimlfile, format="xml", extension="aiml", encoding="utf-8", delete_on_start=False) self.storage_factory._storage_engines[ StorageFactory.CATEGORIES] = self._storage_engine self.storage_factory._store_to_engine_map[ StorageFactory.CATEGORIES] = self._storage_engine
def _create_storage_defaults(self, amap): tmpdir = FileStorageConfiguration.get_temp_dir() amap[FileStore.CATEGORIES_STORAGE] = FileStoreConfiguration( dirs=[tmpdir + os.sep + "categories"], extension="aiml", subdirs=True, format="xml", encoding="utf-8", delete_on_start=False) amap[FileStore.ERRORS_STORAGE] = FileStoreConfiguration( file=tmpdir + os.sep + "debug/errors.txt", format="text", encoding="utf-8", delete_on_start=False) amap[FileStore.DUPLICATES_STORAGE] = FileStoreConfiguration( file=tmpdir + os.sep + "debug/duplicates.txt", format="text", encoding="utf-8", delete_on_start=False) amap[FileStore.LEARNF_STORAGE] = FileStoreConfiguration( dirs=[tmpdir + os.sep + "categories/learnf"], extension="aiml", subdirs=False, format="xml", encoding="utf-8", delete_on_start=False) amap[FileStore.CONVERSATION_STORAGE] = FileStoreConfiguration( dirs=[tmpdir + os.sep + "conversations"], extension="txt", subdirs=False, format="text", encoding="utf-8", delete_on_start=False) amap[FileStore.LOGS_STORAGE] = FileStoreConfiguration( dirs=[tmpdir + os.sep + "debug"], extension="txt", subdirs=False, format="text", encoding="utf-8", delete_on_start=False) amap[FileStore.SETS_STORAGE] = FileStoreConfiguration( dirs=[tmpdir + os.sep + "sets"], extension="txt", subdirs=False, format="text", encoding="utf-8", delete_on_start=False) amap[FileStore.MAPS_STORAGE] = FileStoreConfiguration( dirs=[tmpdir + os.sep + "maps"], extension="txt", subdirs=False, format="text", encoding="utf-8", delete_on_start=False) amap[FileStore.RDF_STORAGE] = FileStoreConfiguration( dirs=[tmpdir + os.sep + "rdfs"], extension="txt", subdirs=True, format="text", encoding="utf-8", delete_on_start=False) amap[FileStore.DENORMAL_STORAGE] = FileStoreConfiguration( file=tmpdir + os.sep + "lookups/denormal.txt", format="text", encoding="utf-8", delete_on_start=False) amap[FileStore.NORMAL_STORAGE] = FileStoreConfiguration( file=tmpdir + os.sep + "lookups/normal.txt", format="text", encoding="utf-8", delete_on_start=False) amap[FileStore.GENDER_STORAGE] = FileStoreConfiguration( file=tmpdir + os.sep + "lookups/gender.txt", format="text", encoding="utf-8", delete_on_start=False) amap[FileStore.PERSON_STORAGE] = FileStoreConfiguration( file=tmpdir + os.sep + "lookups/person.txt", format="text", encoding="utf-8", delete_on_start=False) amap[FileStore.PERSON2_STORAGE] = FileStoreConfiguration( file=tmpdir + os.sep + "lookups/person2.txt", format="text", encoding="utf-8", delete_on_start=False) amap[FileStore.REGEX_STORAGE] = FileStoreConfiguration( file=tmpdir + os.sep + "lookups/regex.txt", format="text", encoding="utf-8", delete_on_start=False) amap[FileStore.PROPERTIES_STORAGE] = FileStoreConfiguration( file=tmpdir + os.sep + "properties.txt", format="text", encoding="utf-8", delete_on_start=False) amap[FileStore.DEFAULTS_STORAGE] = FileStoreConfiguration( file=tmpdir + os.sep + "defaults.txt", format="text", encoding="utf-8", delete_on_start=False) amap[FileStore.VARIABLES_STORAGE] = FileStoreConfiguration( dirs=[tmpdir + os.sep + "variables"], extension="txt", subdirs=False, format="text", encoding="utf-8", delete_on_start=False) amap[FileStore.NLU_SERVERS_STORAGE] = FileStoreConfiguration( file=tmpdir + os.sep + "nlu_servers.yaml", format="yaml", encoding="utf-8", delete_on_start=False) amap[FileStore.TWITTER_STORAGE] = FileStoreConfiguration( dirs=[tmpdir + os.sep + "twitter"], extension="txt", subdirs=False, format="text", encoding="utf-8", delete_on_start=False) amap[FileStore.SPELLING_STORAGE] = FileStoreConfiguration( file=tmpdir + os.sep + "spelling/corpus.txt", format="text", encoding="utf-8", delete_on_start=False) amap[FileStore.LICENSE_STORAGE] = FileStoreConfiguration( file=tmpdir + os.sep + "licenses/license.keys", format="text", encoding="utf-8", delete_on_start=False) amap[FileStore.PATTERN_NODES_STORAGE] = FileStoreConfiguration( file=tmpdir + os.sep + "nodes/pattern_nodes.txt", format="text", encoding="utf-8", delete_on_start=False) amap[FileStore.TEMPLATE_NODES_STORAGE] = FileStoreConfiguration( file=tmpdir + os.sep + "nodes/template_nodes.txt", format="text", encoding="utf-8", delete_on_start=False) amap[FileStore.BINARIES_STORAGE] = FileStoreConfiguration( file=tmpdir + os.sep + "braintree/braintree.bin", format="binary", encoding="utf-8", delete_on_start=False) amap[FileStore.BRAINTREE_STORAGE] = FileStoreConfiguration( file=tmpdir + os.sep + "braintree/braintree.xml", format="xml", encoding="utf-8", delete_on_start=False) amap[FileStore.PREPROCESSORS_STORAGE] = FileStoreConfiguration( file=tmpdir + os.sep + "processing/preprocessors.txt", format="text", encoding="utf-8", delete_on_start=False) amap[FileStore.POSTPROCESSORS_STORAGE] = FileStoreConfiguration( file=tmpdir + os.sep + "processing/postprocessors.txt", format="text", encoding="utf-8", delete_on_start=False) amap[FileStore.USERGROUPS_STORAGE] = FileStoreConfiguration( file=tmpdir + os.sep + "security/usergroups.txt", format="text", encoding="utf-8", delete_on_start=False) amap[FileStore.TRIGGERS_STORAGE] = FileStoreConfiguration( file=tmpdir + os.sep + "triggers/triggers.txt", format="text", encoding="utf-8", delete_on_start=False) amap[FileStore.RDF_UPDATES_STORAGE] = FileStoreConfiguration( dirs=[tmpdir + os.sep + "rdf_updates"], extension="txt", subdirs=False, format="text", encoding="utf-8", delete_on_start=False)