def test_embedding_arg_kw(self): _get_kw = GetKeyword(table_dir=self.db_dir, index_dir=self.index_dir, open_tab=self.test_b_file, rf_extension=self.rf_ext) regex, file_path = _get_kw.return_file_and_patter( '', 'Embedding arg To Keyword Name') self.assertEqual(file_path, self.resource_b_table_file) self.assertEqual( regex, '(?im)^embedding[_ ]?\$\{.+\}[_ ]?to[_ ]?keyword[_ ]?name$')
def test_with_test_a_robot(self): get_kw = GetKeyword(table_dir=self.db_dir, index_dir=self.index_dir, open_tab=self.test_a_file, rf_extension=self.rf_ext) kw = 'Resource A Keyword 1' object_name = None regex, file_path = get_kw.return_file_and_patter(object_name, kw) self.assertEqual(regex, '(?im)^resource[_ ]?a[_ ]?keyword[_ ]?1$') self.assertEqual(file_path, self.resource_a_table_file)
def test_with_test_a_robot(self): get_kw = GetKeyword( table_dir=self.db_dir, index_dir=self.index_dir, open_tab=self.test_a_file, rf_extension=self.rf_ext ) kw = 'Resource A Keyword 1' object_name = None regex, file_path = get_kw.return_file_and_patter(object_name, kw) self.assertEqual(regex, '(?im)^resource[_ ]?a[_ ]?keyword[_ ]?1$') self.assertEqual(file_path, self.resource_a_table_file)
def test_embedding_arg_kw(self): _get_kw = GetKeyword( table_dir=self.db_dir, index_dir=self.index_dir, open_tab=self.test_b_file, rf_extension=self.rf_ext ) regex, file_path = _get_kw.return_file_and_patter( '', 'Embedding arg To Keyword Name') self.assertEqual(file_path, self.resource_b_table_file) self.assertEqual( regex, '(?im)^embedding[_ ]?\$\{.+\}[_ ]?to[_ ]?keyword[_ ]?name$' )
def setUp(self): self.get_kw = GetKeyword( table_dir=self.db_dir, index_dir=self.index_dir, open_tab=self.get_common_robot_path, rf_extension=self.rf_ext )
def test_keyword_lib_with_alias(self): get_kw_ = GetKeyword( table_dir=self.db_dir, index_dir=self.index_dir, open_tab=self.get_resource_b_robot_path, rf_extension=self.rf_ext ) # regex, file_path = get_kw_.return_file_and_patter( # 'LongName', # 'Long Name Keyword' # ) # self.assertEqual( # file_path, # self.long_name_file # ) kw = ( 'Keyword Which Also Has Really Long Name But Not As' ' Long The Class Name By 1234 In Keyword' ) regex, file_path = get_kw_.return_file_and_patter( 'OtherNameLib', kw ) expected_re = ( '(?i)(\\@keyword.+name=[\\\'"]' 'keyword[_ ]?which[_ ]?also[_ ]?has[_ ]?really' '[_ ]?long[_ ]?name[_ ]?but[_ ]?not[_ ]?as' '[_ ]?long[_ ]?the[_ ]?class[_ ]?name[_ ]?by' '[_ ]?\\$\\{.+\\}[_ ]?in[_ ]?keyword)' ) self.assertEqual( file_path, self.get_resource_lib_longer_than_100_chars ) self.assertEqual(regex, expected_re)
def test_keyword_lib_with_alias(self): get_kw_ = GetKeyword( table_dir=self.db_dir, index_dir=self.index_dir, open_tab=self.get_resource_b_robot_path, rf_extension=self.rf_ext ) # regex, file_path = get_kw_.return_file_and_patter( # 'LongName', # 'Long Name Keyword' # ) # self.assertEqual( # file_path, # self.long_name_file # ) kw = ( 'Keyword Which Also Has Really Long Name But Not As' ' Long The Class Name By 1234 In Keyword' ) regex, file_path = get_kw_.return_file_and_patter( 'OtherNameLib', kw ) expected_re = ( '(?i)(\\@keyword.+name=[\\\'"]' 'keyword[_ ]?which[_ ]?also[_ ]?has[_ ]?really' '[_ ]?long[_ ]?name[_ ]?but[_ ]?not[_ ]?as' '[_ ]?long[_ ]?the[_ ]?class[_ ]?name[_ ]?by' '[_ ]?\\$\\{.+\\}[_ ]?in[_ ]?keyword)' ) self.assertEqual( file_path, self.get_resource_lib_longer_than_100_chars ) self.assertEqual(regex, expected_re)
class TestGetKeywordFromResource(unittest.TestCase): @classmethod def setUpClass(cls): db_base = path.join( env.RESULTS_DIR, 'database_in_package_dir') cls.db_dir = path.join( db_base, 'db_dir' ) cls.index_dir = path.join( db_base, 'index_dir', ) cls.suite_dir = path.join( env.TEST_DATA_DIR, 'suite_tree' ) if path.exists(db_base): shutil.rmtree(db_base) mkdir(db_base) mkdir(cls.db_dir) mkdir(cls.index_dir) scanner = Scanner() scanner.scan( cls.suite_dir, 'robot', cls.db_dir) index_all(cls.db_dir, cls.index_dir) cls.rf_ext = 'robot' def setUp(self): self.get_kw = GetKeyword( table_dir=self.db_dir, index_dir=self.index_dir, open_tab=self.get_common_robot_path, rf_extension=self.rf_ext ) def test_return_file_and_patter(self): kw = 'Common Keyword 2' object_name = None expected_path = path.normcase(self.get_common_robot_path) regex, file_path = self.get_kw.return_file_and_patter(object_name, kw) self.assertEqual(regex, self.get_common_keyword_2_regex) self.assertEqual(file_path, expected_path) object_name = 'common' regex, file_path = self.get_kw.return_file_and_patter(object_name, kw) self.assertEqual(regex, self.get_common_keyword_2_regex) self.assertEqual(file_path, expected_path) kw = 'common keyword 2' regex, file_path = self.get_kw.return_file_and_patter(object_name, kw) self.assertEqual(regex, self.get_common_keyword_2_regex) self.assertEqual(file_path, expected_path) kw = 'COMMON KEYWORD 2' regex, file_path = self.get_kw.return_file_and_patter(object_name, kw) self.assertEqual(regex, self.get_common_keyword_2_regex) self.assertEqual(file_path, expected_path) kw = 'Common_Keyword_2' regex, file_path = self.get_kw.return_file_and_patter(object_name, kw) self.assertEqual(regex, self.get_common_keyword_2_regex) self.assertEqual(file_path, expected_path) kw = 'CommonKeyword2' regex, file_path = self.get_kw.return_file_and_patter(object_name, kw) self.assertEqual(regex, self.get_common_keyword_2_regex) self.assertEqual(file_path, expected_path) def test_with_test_a_robot(self): get_kw = GetKeyword( table_dir=self.db_dir, index_dir=self.index_dir, open_tab=self.test_a_file, rf_extension=self.rf_ext ) kw = 'Resource A Keyword 1' object_name = None regex, file_path = get_kw.return_file_and_patter(object_name, kw) self.assertEqual(regex, '(?im)^resource[_ ]?a[_ ]?keyword[_ ]?1$') self.assertEqual(file_path, self.resource_a_table_file) def test_get_regex_resource(self): kw = 'Common Keyword 2' regex = self.get_kw.get_regex_resource(kw) self.assertEqual(regex, self.get_common_keyword_2_regex) kw = 'RUN' regex = self.get_kw.get_regex_resource(kw) self.assertEqual(regex, '(?im)^run$') kw = 'Common_Keyword_2' regex = self.get_kw.get_regex_resource(kw) self.assertEqual(regex, self.get_common_keyword_2_regex) kw = 'CommonKeyword2' regex = self.get_kw.get_regex_resource(kw) self.assertEqual(regex, self.get_common_keyword_2_regex) kw = 'commonKeyword2' regex = self.get_kw.get_regex_resource(kw) self.assertEqual(regex, self.get_common_keyword_2_regex) kw = 'COMMON KEYWORD 2' regex = self.get_kw.get_regex_resource(kw) self.assertEqual(regex, self.get_common_keyword_2_regex) def test_rf_data(self): self.assertTrue(self.get_kw.rf_data(self.get_common_robot_path)) self.assertFalse(self.get_kw.rf_data(self.get_common_variables_path)) @property def get_common_robot(self): return 'common.robot' @property def get_common_robot_path(self): return path.join(self.suite_dir, self.get_common_robot) @property def get_common_keyword_2_regex(self): return '(?im)^common[_ ]?keyword[_ ]?2$' @property def get_common_variables_path(self): return path.join(self.suite_dir, 'common_variables.py') @property def test_a_file(self): return path.normcase(path.join(self.suite_dir, 'test_a.robot')) @property def resource_a_table_file(self): return path.normcase(path.join(self.suite_dir, 'resource_a.robot')) @property def test_a_table_name(self): return rf_table_name(self.test_a_file) @property def resource_a_table_name(self): return rf_table_name(self.resource_a_table_file)
def setUp(self): self._get_kw = GetKeyword(table_dir=self.db_dir, index_dir=self.index_dir, open_tab=self.get_common_robot_path, rf_extension=self.rf_ext)
class TestGetKeywordFromResource(unittest.TestCase): @classmethod def setUpClass(cls): db_base = path.join(env.RESULTS_DIR, 'database_in_package_dir') cls.db_dir = path.join(db_base, 'db_dir') cls.index_dir = path.join( db_base, 'index_dir', ) cls.suite_dir = path.join(env.TEST_DATA_DIR, 'suite_tree') if path.exists(db_base): shutil.rmtree(db_base) mkdir(db_base) mkdir(cls.db_dir) mkdir(cls.index_dir) scanner = Scanner() scanner.scan(cls.suite_dir, 'robot', cls.db_dir) index_all(cls.db_dir, cls.index_dir) cls.rf_ext = 'robot' def setUp(self): self._get_kw = GetKeyword(table_dir=self.db_dir, index_dir=self.index_dir, open_tab=self.get_common_robot_path, rf_extension=self.rf_ext) def test_return_file_and_patter(self): kw = 'Common Keyword 2' object_name = None expected_path = path.normcase(self.get_common_robot_path) regex, file_path = self._get_kw.return_file_and_patter(object_name, kw) self.assertEqual(regex, self.get_common_keyword_2_regex) self.assertEqual(file_path, expected_path) object_name = 'common' regex, file_path = self._get_kw.return_file_and_patter(object_name, kw) self.assertEqual(regex, self.get_common_keyword_2_regex) self.assertEqual(file_path, expected_path) kw = 'common keyword 2' regex, file_path = self._get_kw.return_file_and_patter(object_name, kw) self.assertEqual(regex, self.get_common_keyword_2_regex) self.assertEqual(file_path, expected_path) kw = 'COMMON KEYWORD 2' regex, file_path = self._get_kw.return_file_and_patter(object_name, kw) self.assertEqual(regex, self.get_common_keyword_2_regex) self.assertEqual(file_path, expected_path) kw = 'Common_Keyword_2' regex, file_path = self._get_kw.return_file_and_patter(object_name, kw) self.assertEqual(regex, self.get_common_keyword_2_regex) self.assertEqual(file_path, expected_path) kw = 'CommonKeyword2' regex, file_path = self._get_kw.return_file_and_patter(object_name, kw) self.assertEqual(regex, self.get_common_keyword_2_regex) self.assertEqual(file_path, expected_path) def test_with_test_a_robot(self): get_kw = GetKeyword(table_dir=self.db_dir, index_dir=self.index_dir, open_tab=self.test_a_file, rf_extension=self.rf_ext) kw = 'Resource A Keyword 1' object_name = None regex, file_path = get_kw.return_file_and_patter(object_name, kw) self.assertEqual(regex, '(?im)^resource[_ ]?a[_ ]?keyword[_ ]?1$') self.assertEqual(file_path, self.resource_a_table_file) def test_get_regex_resource(self): kw = 'Common Keyword 2' regex = self._get_kw.get_regex_resource(kw) self.assertEqual(regex, self.get_common_keyword_2_regex) kw = 'RUN' regex = self._get_kw.get_regex_resource(kw) self.assertEqual(regex, '(?im)^run$') kw = 'Common_Keyword_2' regex = self._get_kw.get_regex_resource(kw) self.assertEqual(regex, self.get_common_keyword_2_regex) kw = 'CommonKeyword2' regex = self._get_kw.get_regex_resource(kw) self.assertEqual(regex, self.get_common_keyword_2_regex) kw = 'commonKeyword2' regex = self._get_kw.get_regex_resource(kw) self.assertEqual(regex, self.get_common_keyword_2_regex) kw = 'COMMON KEYWORD 2' regex = self._get_kw.get_regex_resource(kw) self.assertEqual(regex, self.get_common_keyword_2_regex) kw = 'Embedding ${arg} To Keyword Name' regex = self._get_kw.get_regex_resource(kw) self.assertEqual( regex, '(?im)^embedding[_ ]?\$\{.+\}[_ ]?to[_ ]?keyword[_ ]?name$') kw = 'Embedding ${arg1} And ${arg2} To Keyword Name' regex = self._get_kw.get_regex_resource(kw) self.assertEqual(regex, ('(?im)^embedding[_ ]?' '\$\{.+\}[_ ]?' 'and[_ ]?' '\$\{.+\}[_ ]?' 'to[_ ]?' 'keyword[_ ]?' 'name$')) def test_rf_data(self): self.assertTrue(self._get_kw.rf_data(self.get_common_robot_path)) self.assertFalse(self._get_kw.rf_data(self.get_common_variables_path)) def test_embedding_arg_kw(self): _get_kw = GetKeyword(table_dir=self.db_dir, index_dir=self.index_dir, open_tab=self.test_b_file, rf_extension=self.rf_ext) regex, file_path = _get_kw.return_file_and_patter( '', 'Embedding arg To Keyword Name') self.assertEqual(file_path, self.resource_b_table_file) self.assertEqual( regex, '(?im)^embedding[_ ]?\$\{.+\}[_ ]?to[_ ]?keyword[_ ]?name$') @property def get_common_robot(self): return 'common.robot' @property def get_common_robot_path(self): return path.join(self.suite_dir, self.get_common_robot) @property def get_common_keyword_2_regex(self): return '(?im)^common[_ ]?keyword[_ ]?2$' @property def get_common_variables_path(self): return path.join(self.suite_dir, 'common_variables.py') @property def test_a_file(self): return path.normcase(path.join(self.suite_dir, 'test_a.robot')) @property def resource_a_table_file(self): return path.normcase(path.join(self.suite_dir, 'resource_a.robot')) @property def test_b_file(self): return path.normcase(path.join(self.suite_dir, 'test_b.robot')) @property def resource_b_table_file(self): return path.normcase(path.join(self.suite_dir, 'resource_b.robot')) @property def test_a_table_name(self): return rf_table_name(self.test_a_file) @property def resource_a_table_name(self): return rf_table_name(self.resource_a_table_file)
class TestGetKeywordFromResource(unittest.TestCase): @classmethod def setUpClass(cls): db_base = path.join(env.RESULTS_DIR, 'database_in_package_dir') cls.db_dir = path.join(db_base, 'db_dir') cls.index_dir = path.join( db_base, 'index_dir', ) cls.suite_dir = path.join(env.TEST_DATA_DIR, 'suite_tree') if path.exists(db_base): shutil.rmtree(db_base) mkdir(db_base) mkdir(cls.db_dir) mkdir(cls.index_dir) scanner = Scanner() scanner.scan(cls.suite_dir, 'robot', cls.db_dir) index_all(cls.db_dir, cls.index_dir) cls.rf_ext = 'robot' def setUp(self): self.get_kw = GetKeyword(table_dir=self.db_dir, index_dir=self.index_dir, open_tab=self.get_common_robot_path, rf_extension=self.rf_ext) def test_get_lib_kw(self): regex, file_path = self.get_kw.get_lib_keyword(self.s2l_table_file, None, 'Simulate') self.assertIsNotNone(regex) self.assertIsNotNone(file_path) def test_get_lib_keyword_file(self): kw_file = self.get_kw.get_lib_keyword_file(self.s2l_table_file, None, 'Simulate') self.assertIn(self.s2l_simulate, kw_file) kw_file = self.get_kw.get_lib_keyword_file(self.s2l_table_file, None, 'textarea_value_should_be') self.assertIn(self.s2l_textarea_value_should_be, kw_file) kw_file = self.get_kw.get_lib_keyword_file(self.s2l_table_file, None, 'PressKey') self.assertIn(self.s2l_press_key, kw_file) kw_file = self.get_kw.get_lib_keyword_file(self.s2l_table_file, 'Selenium2Library', 'PressKey') self.assertIn(self.s2l_press_key, kw_file) kw_file = self.get_kw.get_lib_keyword_file(self.s2l_table_file, 'NotHere', 'PressKey') self.assertEqual(kw_file, None) kw_file = self.get_kw.get_lib_keyword_file(self.s2l_table_file, None, 'NotKeyword') self.assertEqual(kw_file, None) def test_get_regex_library(self): kw = 'Simulate' regex = self.get_kw.get_regex_library(kw) self.assertEqual( regex, r'(?im)(def simulate\()|(\@keyword.+name=[\'"]simulate)') kw = 'Press Key' regex = self.get_kw.get_regex_library(kw) self.assertEqual( regex, r'(?im)(def press_?key\()|(\@keyword.+name=[\'"]press[_ ]key)') @property def s2l(self): if platform.system() == 'Windows': return 'selenium2library' else: return 'Selenium2Library' @property def s2l_simulate(self): return path.join(self.s2l, 'keywords', '_element.py') @property def s2l_press_key(self): return path.join(self.s2l, 'keywords', '_element.py') @property def s2l_textarea_value_should_be(self): return path.join(self.s2l, 'keywords', '_formelement.py') @property def s2l_table_file(self): return path.join( self.db_dir, 'Selenium2Library-ac72a5ed5dae4edc06e58114b7c0ce92.json') @property def get_common_robot(self): return 'common.robot' @property def get_common_robot_path(self): return path.join(self.suite_dir, self.get_common_robot)
class TestGetKeywordFromLibrary(unittest.TestCase): @classmethod def setUpClass(cls): db_base = path.join(env.RESULTS_DIR, 'database_in_package_dir') cls.db_dir = path.join(db_base, 'db_dir') cls.index_dir = path.join( db_base, 'index_dir', ) cls.suite_dir = path.join(env.TEST_DATA_DIR, 'suite_tree') if path.exists(db_base): shutil.rmtree(db_base) mkdir(db_base) mkdir(cls.db_dir) mkdir(cls.index_dir) scanner = Scanner() scanner.scan(cls.suite_dir, 'robot', cls.db_dir) index_all(cls.db_dir, cls.index_dir) cls.rf_ext = 'robot' def setUp(self): self.get_kw = GetKeyword(table_dir=self.db_dir, index_dir=self.index_dir, open_tab=self.get_common_robot_path, rf_extension=self.rf_ext) def test_get_lib_kw(self): regex, file_path = self.get_kw.get_lib_keyword(self.s2l_table_file, None, 'Simulate') self.assertIsNotNone(regex) self.assertIsNotNone(file_path) def test_get_lib_keyword_file(self): kw_file = self.get_kw.get_lib_keyword_file(self.s2l_table_file, None, 'Simulate') self.assertIn(self.s2l_simulate, kw_file) kw_file = self.get_kw.get_lib_keyword_file(self.s2l_table_file, None, 'textarea_value_should_be') self.assertIn(self.s2l_textarea_value_should_be, kw_file) kw_file = self.get_kw.get_lib_keyword_file(self.s2l_table_file, None, 'PressKey') self.assertIn(self.s2l_press_key, kw_file) kw_file = self.get_kw.get_lib_keyword_file(self.s2l_table_file, 'Selenium2Library', 'PressKey') self.assertIn(self.s2l_press_key, kw_file) kw_file = self.get_kw.get_lib_keyword_file(self.s2l_table_file, 'NotHere', 'PressKey') self.assertEqual(kw_file, None) kw_file = self.get_kw.get_lib_keyword_file(self.s2l_table_file, None, 'NotKeyword') self.assertEqual(kw_file, None) def test_get_regex_library(self): kw = 'Simulate' regex = self.get_kw.get_regex_library(kw) self.assertEqual( regex, r'(?im)(def simulate\()|(\@keyword.+name=[\'"]simulate)') kw = 'Press Key' regex = self.get_kw.get_regex_library(kw) self.assertEqual( regex, r'(?im)(def press_?key\()|(\@keyword.+name=[\'"]press[_ ]key)') kw = 'Embedding ${arg} To Keyword Name' regex = self.get_kw.get_regex_library(kw) self.assertEqual( regex, (r'(?i)(\@keyword.+name=[\'"]' r'embedding[_ ]?\$\{.+\}[_ ]?to[_ ]?keyword[_ ]?name)')) regex = self.get_kw.get_regex_library('Other ${arg1} and ${arg2} Too') self.assertEqual(regex, (r'(?i)(\@keyword.+name=[\'"]' r'other[_ ]?\$\{.+\}[_ ]?and[_ ]?\$\{.+\}[_ ]?too)')) def test_keyword_lib_with_alias(self): get_kw_ = GetKeyword(table_dir=self.db_dir, index_dir=self.index_dir, open_tab=self.get_resource_b_robot_path, rf_extension=self.rf_ext) # regex, file_path = get_kw_.return_file_and_patter( # 'LongName', # 'Long Name Keyword' # ) # self.assertEqual( # file_path, # self.long_name_file # ) kw = ('Keyword Which Also Has Really Long Name But Not As' ' Long The Class Name By 1234 In Keyword') regex, file_path = get_kw_.return_file_and_patter('OtherNameLib', kw) expected_re = ('(?i)(\\@keyword.+name=[\\\'"]' 'keyword[_ ]?which[_ ]?also[_ ]?has[_ ]?really' '[_ ]?long[_ ]?name[_ ]?but[_ ]?not[_ ]?as' '[_ ]?long[_ ]?the[_ ]?class[_ ]?name[_ ]?by' '[_ ]?\\$\\{.+\\}[_ ]?in[_ ]?keyword)') self.assertEqual(file_path, self.get_resource_lib_longer_than_100_chars) self.assertEqual(regex, expected_re) @property def s2l(self): if platform.system() == 'Windows': return 'selenium2library' else: return 'Selenium2Library' @property def s2l_simulate(self): return path.join(self.s2l, 'keywords', '_element.py') @property def s2l_press_key(self): return path.join(self.s2l, 'keywords', '_element.py') @property def s2l_textarea_value_should_be(self): return path.join(self.s2l, 'keywords', '_formelement.py') @property def s2l_table_file(self): return path.join( self.db_dir, 'Selenium2Library-ac72a5ed5dae4edc06e58114b7c0ce92.json') @property def get_common_robot(self): return 'common.robot' @property def get_common_robot_path(self): return path.join(self.suite_dir, self.get_common_robot) @property def long_name_file(self): return path.join(path.normcase(self.suite_dir), 'LibraryWithReallyTooLongName.py') @property def get_resource_b_robot_path(self): return path.join(self.suite_dir, 'resource_b.robot') @property def get_resource_lib_longer_than_100_chars(self): return path.join( path.normcase(self.suite_dir), ('LibraryNameWhichIsLongerThan100CharactersButItSeemsThatIt' 'RequiresQuiteAlotLettersInTheFileNameAndIsNotGoodReal' 'LifeExample.py'))
class TestGetKeywordFromResource(unittest.TestCase): @classmethod def setUpClass(cls): db_base = path.join( env.RESULTS_DIR, 'database_in_package_dir') cls.db_dir = path.join( db_base, 'db_dir' ) cls.index_dir = path.join( db_base, 'index_dir', ) cls.suite_dir = path.join( env.TEST_DATA_DIR, 'suite_tree' ) if path.exists(db_base): shutil.rmtree(db_base) mkdir(db_base) mkdir(cls.db_dir) mkdir(cls.index_dir) scanner = Scanner() scanner.scan( cls.suite_dir, 'robot', cls.db_dir) index_all(cls.db_dir, cls.index_dir) cls.rf_ext = 'robot' def setUp(self): self.get_kw = GetKeyword( table_dir=self.db_dir, index_dir=self.index_dir, open_tab=self.get_common_robot_path, rf_extension=self.rf_ext ) def test_get_lib_kw(self): regex, file_path = self.get_kw.get_lib_keyword( self.s2l_table_file, None, 'Simulate' ) self.assertIsNotNone(regex) self.assertIsNotNone(file_path) def test_get_lib_keyword_file(self): kw_file = self.get_kw.get_lib_keyword_file( self.s2l_table_file, None, 'Simulate' ) self.assertIn(self.s2l_simulate, kw_file) kw_file = self.get_kw.get_lib_keyword_file( self.s2l_table_file, None, 'textarea_value_should_be' ) self.assertIn(self.s2l_textarea_value_should_be, kw_file) kw_file = self.get_kw.get_lib_keyword_file( self.s2l_table_file, None, 'PressKey' ) self.assertIn(self.s2l_press_key, kw_file) kw_file = self.get_kw.get_lib_keyword_file( self.s2l_table_file, 'Selenium2Library', 'PressKey' ) self.assertIn(self.s2l_press_key, kw_file) kw_file = self.get_kw.get_lib_keyword_file( self.s2l_table_file, 'NotHere', 'PressKey' ) self.assertEqual(kw_file, None) kw_file = self.get_kw.get_lib_keyword_file( self.s2l_table_file, None, 'NotKeyword' ) self.assertEqual(kw_file, None) def test_get_regex_library(self): kw = 'Simulate' regex = self.get_kw.get_regex_library(kw) self.assertEqual( regex, r'(?im)(def simulate\()|(\@keyword.+name=[\'"]simulate)' ) kw = 'Press Key' regex = self.get_kw.get_regex_library(kw) self.assertEqual( regex, r'(?im)(def press_?key\()|(\@keyword.+name=[\'"]press[_ ]key)' ) @property def s2l(self): if platform.system() == 'Windows': return 'selenium2library' else: return 'Selenium2Library' @property def s2l_simulate(self): return path.join(self.s2l, 'keywords', '_element.py') @property def s2l_press_key(self): return path.join(self.s2l, 'keywords', '_element.py') @property def s2l_textarea_value_should_be(self): return path.join(self.s2l, 'keywords', '_formelement.py') @property def s2l_table_file(self): return path.join( self.db_dir, 'Selenium2Library-ac72a5ed5dae4edc06e58114b7c0ce92.json' ) @property def get_common_robot(self): return 'common.robot' @property def get_common_robot_path(self): return path.join(self.suite_dir, self.get_common_robot)
class TestGetKeywordFromLibrary(unittest.TestCase): @classmethod def setUpClass(cls): db_base = path.join( env.RESULTS_DIR, 'database_in_package_dir') cls.db_dir = path.join( db_base, 'db_dir' ) cls.index_dir = path.join( db_base, 'index_dir', ) cls.suite_dir = path.join( env.TEST_DATA_DIR, 'suite_tree' ) if path.exists(db_base): shutil.rmtree(db_base) mkdir(db_base) mkdir(cls.db_dir) mkdir(cls.index_dir) scanner = Scanner() scanner.scan( cls.suite_dir, 'robot', cls.db_dir) index_all(cls.db_dir, cls.index_dir) cls.rf_ext = 'robot' def setUp(self): self.get_kw = GetKeyword( table_dir=self.db_dir, index_dir=self.index_dir, open_tab=self.get_common_robot_path, rf_extension=self.rf_ext ) def test_get_lib_kw(self): regex, file_path = self.get_kw.get_lib_keyword( self.s2l_table_file, None, 'Simulate' ) self.assertIsNotNone(regex) self.assertIsNotNone(file_path) def test_get_lib_keyword_file(self): kw_file = self.get_kw.get_lib_keyword_file( self.s2l_table_file, None, 'Simulate' ) self.assertIn(self.s2l_simulate, kw_file) kw_file = self.get_kw.get_lib_keyword_file( self.s2l_table_file, None, 'textarea_value_should_be' ) self.assertIn(self.s2l_textarea_value_should_be, kw_file) kw_file = self.get_kw.get_lib_keyword_file( self.s2l_table_file, None, 'PressKey' ) self.assertIn(self.s2l_press_key, kw_file) kw_file = self.get_kw.get_lib_keyword_file( self.s2l_table_file, 'Selenium2Library', 'PressKey' ) self.assertIn(self.s2l_press_key, kw_file) kw_file = self.get_kw.get_lib_keyword_file( self.s2l_table_file, 'NotHere', 'PressKey' ) self.assertEqual(kw_file, None) kw_file = self.get_kw.get_lib_keyword_file( self.s2l_table_file, None, 'NotKeyword' ) self.assertEqual(kw_file, None) def test_get_regex_library(self): kw = 'Simulate' regex = self.get_kw.get_regex_library(kw) self.assertEqual( regex, r'(?im)(def simulate\()|(\@keyword.+name=[\'"]simulate)' ) kw = 'Press Key' regex = self.get_kw.get_regex_library(kw) self.assertEqual( regex, r'(?im)(def press_?key\()|(\@keyword.+name=[\'"]press[_ ]key)' ) kw = 'Embedding ${arg} To Keyword Name' regex = self.get_kw.get_regex_library(kw) self.assertEqual( regex, ( r'(?i)(\@keyword.+name=[\'"]' r'embedding[_ ]?\$\{.+\}[_ ]?to[_ ]?keyword[_ ]?name)' ) ) regex = self.get_kw.get_regex_library('Other ${arg1} and ${arg2} Too') self.assertEqual( regex, ( r'(?i)(\@keyword.+name=[\'"]' r'other[_ ]?\$\{.+\}[_ ]?and[_ ]?\$\{.+\}[_ ]?too)' ) ) def test_keyword_lib_with_alias(self): get_kw_ = GetKeyword( table_dir=self.db_dir, index_dir=self.index_dir, open_tab=self.get_resource_b_robot_path, rf_extension=self.rf_ext ) # regex, file_path = get_kw_.return_file_and_patter( # 'LongName', # 'Long Name Keyword' # ) # self.assertEqual( # file_path, # self.long_name_file # ) kw = ( 'Keyword Which Also Has Really Long Name But Not As' ' Long The Class Name By 1234 In Keyword' ) regex, file_path = get_kw_.return_file_and_patter( 'OtherNameLib', kw ) expected_re = ( '(?i)(\\@keyword.+name=[\\\'"]' 'keyword[_ ]?which[_ ]?also[_ ]?has[_ ]?really' '[_ ]?long[_ ]?name[_ ]?but[_ ]?not[_ ]?as' '[_ ]?long[_ ]?the[_ ]?class[_ ]?name[_ ]?by' '[_ ]?\\$\\{.+\\}[_ ]?in[_ ]?keyword)' ) self.assertEqual( file_path, self.get_resource_lib_longer_than_100_chars ) self.assertEqual(regex, expected_re) @property def s2l(self): if platform.system() == 'Windows': return 'selenium2library' else: return 'Selenium2Library' @property def s2l_simulate(self): return path.join(self.s2l, 'keywords', '_element.py') @property def s2l_press_key(self): return path.join(self.s2l, 'keywords', '_element.py') @property def s2l_textarea_value_should_be(self): return path.join(self.s2l, 'keywords', '_formelement.py') @property def s2l_table_file(self): return path.join( self.db_dir, 'Selenium2Library-ac72a5ed5dae4edc06e58114b7c0ce92.json' ) @property def get_common_robot(self): return 'common.robot' @property def get_common_robot_path(self): return path.join(self.suite_dir, self.get_common_robot) @property def long_name_file(self): return path.join( path.normcase(self.suite_dir), 'LibraryWithReallyTooLongName.py' ) @property def get_resource_b_robot_path(self): return path.join(self.suite_dir, 'resource_b.robot') @property def get_resource_lib_longer_than_100_chars(self): return path.join( path.normcase(self.suite_dir), ( 'LibraryNameWhichIsLongerThan100CharactersButItSeemsThatIt' 'RequiresQuiteAlotLettersInTheFileNameAndIsNotGoodReal' 'LifeExample.py' ) )