Ejemplo n.º 1
0
 def test_syntax_valid_002(self):
     tokens = [
         'echo', ' ', '\\$PATH', ' ', '||', ' ', 'echo', ' ', '$path', '\n'
     ]
     tagstokens = TagsTokens(tokens).get_tags().check_syntax()
     print(tagstokens)
     self.assertTrue(tagstokens.valid)
Ejemplo n.º 2
0
 def test_syntax_valid_011(self):
     tokens = [
         'echo', ' ', '${', 'var', '}', '_', '$var', '${', 'var2', '}', '_'
     ]
     tagstokens = TagsTokens(tokens).get_tags().check_syntax()
     print(tagstokens)
     self.assertTrue(tagstokens.valid)
Ejemplo n.º 3
0
 def test_tags_002(self):
     tokens = ['echo', ' ', '"', 'qwert', '"', '"', 'yuiop', '"']
     tags = TagsTokens(tokens).get_tags().check_syntax().tags
     self.assertEqual([
         'STMT', 'SPACES', 'DQUOTES', 'STMT', 'END_DQUOTES', 'DQUOTES',
         'STMT', 'END_DQUOTES'
     ], tags)
Ejemplo n.º 4
0
 def test_syntax_valid_006(self):
     tokens = [
         'echo', ' ', 'text', '||', 'file', ' ', '<<', ' ', 'file2', '\n'
     ]
     tagstokens = TagsTokens(tokens).get_tags().check_syntax()
     print(tagstokens)
     self.assertTrue(tagstokens.valid)
Ejemplo n.º 5
0
 def test_tags_double_quotes_007(self):
     term_inputs = '"\'$(CMD;CMD|CMD)\'"'
     tags = TagsTokens().init_with_input(term_inputs).check_syntax().tags
     self.assertEqual([
         'DQUOTES', 'STMT', 'CMDSUBST1', 'STMT', 'END_COMMAND', 'STMT',
         'PIPE', 'STMT', 'END_BRACKET', 'STMT', 'END_DQUOTES'
     ], tags)
Ejemplo n.º 6
0
 def test_tags_quotes_008(self):
     term_inputs = "''$(CMD)''"
     tags = TagsTokens().init_with_input(term_inputs).check_syntax().tags
     self.assertEqual([
         'QUOTE', 'END_QUOTE', 'CMDSUBST1', 'STMT', 'END_BRACKET', 'QUOTE',
         'END_QUOTE'
     ], tags)
Ejemplo n.º 7
0
 def test_tags_double_quotes_013(self):
     term_inputs = '"$("$(")"'
     tags = TagsTokens().init_with_input(term_inputs).check_syntax().tags
     self.assertEqual([
         'DQUOTES', 'CMDSUBST1', 'DQUOTES', 'CMDSUBST1', 'DQUOTES', 'STMT',
         'END_DQUOTES'
     ], tags)
Ejemplo n.º 8
0
 def test_tags_quotes_009(self):
     term_inputs = "''${CMD}''"
     tags = TagsTokens().init_with_input(term_inputs).check_syntax().tags
     self.assertEqual([
         'QUOTE', 'END_QUOTE', 'BRACEPARAM', 'STMT', 'END_BRACE', 'QUOTE',
         'END_QUOTE'
     ], tags)
Ejemplo n.º 9
0
 def test_tags_004(self):
     tokens = ['ls', ' ', '-l', ' ', '\\\n/', ' ', ';', '\n']
     tags = TagsTokens(tokens).get_tags().check_syntax().tags
     self.assertEqual([
         'STMT', 'SPACES', 'STMT', 'SPACES', 'STMT', 'SPACES',
         'END_COMMAND', 'NEW_LINE'
     ], tags)
Ejemplo n.º 10
0
 def test_tags_quotes_012(self):
     term_inputs = "'\" ${ CMD CMD }\"'"
     tags = TagsTokens().init_with_input(term_inputs).check_syntax().tags
     self.assertEqual([
         'QUOTE', 'STMT', 'STMT', 'STMT', 'STMT', 'STMT', 'STMT', 'STMT',
         'STMT', 'STMT', 'STMT', 'END_QUOTE'
     ], tags)
Ejemplo n.º 11
0
 def test_syntax_valid_007(self):
     tokens = [
         '                 ', '\\\necho', ' ', '\\\\test', '             '
     ]
     tagstokens = TagsTokens(tokens).get_tags().check_syntax()
     print(tagstokens)
     self.assertTrue(tagstokens.valid)
Ejemplo n.º 12
0
 def test_syntax_incomplete_004(self):
     terminput = '${cmd} ${'
     tagstokens = TagsTokens().init_with_input(terminput).check_syntax()
     print(tagstokens)
     self.assertTrue(tagstokens.valid)
     self.assertTrue(tagstokens.incomplete)
     self.assertEqual(tagstokens.token_error, '')
     self.assertEqual(tagstokens.stack, ['BRACEPARAM'])
Ejemplo n.º 13
0
 def test_syntax_error_008(self):
     terminput = '$(${"}"(\') $( ${ (\' \''
     tagstokens = TagsTokens().init_with_input(terminput).check_syntax()
     print(tagstokens)
     self.assertFalse(tagstokens.valid)
     self.assertFalse(tagstokens.incomplete)
     self.assertEqual(tagstokens.token_error, 'bad substitution')
     self.assertEqual(tagstokens.stack, [])
Ejemplo n.º 14
0
 def test_syntax_incomplete_007(self):
     terminput = '$(ls || '
     tagstokens = TagsTokens().init_with_input(terminput).check_syntax()
     print(tagstokens)
     self.assertTrue(tagstokens.valid)
     self.assertTrue(tagstokens.incomplete)
     self.assertEqual(tagstokens.token_error, '')
     self.assertEqual(tagstokens.stack, ['CMDSUBST1', 'CMDOR'])
Ejemplo n.º 15
0
 def test_syntax_incomplete_008(self):
     terminput = '" " "\' '
     tagstokens = TagsTokens().init_with_input(terminput).check_syntax()
     print(tagstokens)
     self.assertTrue(tagstokens.valid)
     self.assertTrue(tagstokens.incomplete)
     self.assertEqual(tagstokens.token_error, '')
     self.assertEqual(tagstokens.stack, ['DQUOTES'])
Ejemplo n.º 16
0
 def test_subsh_001(self):
     term_input = '()'
     tt = TagsTokens().init_with_input(term_input).check_syntax()
     print(tt)
     self.assertEqual(['SUBSH', 'END_BRACKET'], tt.tags)
     self.assertEqual(['(', ')'], tt.tokens)
     self.assertEqual(['SUBSH', 'END_BRACKET'], tt.stack)
     self.assertFalse(tt.valid)
     self.assertFalse(tt.incomplete)
Ejemplo n.º 17
0
 def test_selecter_end_001(self):
     term_input = ';;'
     tt = TagsTokens().init_with_input(term_input).check_syntax()
     print(tt)
     self.assertEqual(['SELECTER_END'], tt.tags)
     self.assertEqual([';;'], tt.tokens)
     self.assertEqual(['SELECTER_END'], tt.stack)
     self.assertFalse(tt.valid)
     self.assertFalse(tt.incomplete)
Ejemplo n.º 18
0
 def test_trunc_valid_001(self):
     term_input = '>a'
     tt = TagsTokens().init_with_input(term_input).check_syntax()
     print(tt)
     self.assertEqual(['TRUNC', 'STMT'], tt.tags)
     self.assertEqual(['>', 'a'], tt.tokens)
     self.assertEqual([], tt.stack)
     self.assertTrue(tt.valid)
     self.assertFalse(tt.incomplete)
Ejemplo n.º 19
0
 def test_end_brace_001(self):
     term_input = ''
     tt = TagsTokens().init_with_input(term_input).check_syntax()
     print(tt)
     self.assertEqual([], tt.tags)
     self.assertEqual([], tt.tokens)
     self.assertEqual([], tt.stack)
     self.assertTrue(tt.valid)
     self.assertFalse(tt.incomplete)
Ejemplo n.º 20
0
 def test_tags_007(self):
     tokens = [
         'echo', ' ', 'text', '>>', 'file', ' ', '>>', ' ', 'file2', '\n'
     ]
     tags = TagsTokens(tokens).get_tags().check_syntax().tags
     self.assertEqual([
         'STMT', 'SPACES', 'STMT', 'APPEND', 'STMT', 'SPACES', 'APPEND',
         'SPACES', 'STMT', 'NEW_LINE'
     ], tags)
Ejemplo n.º 21
0
 def test_tags_006(self):
     tokens = [
         'echo', ' ', '${', 'var', '}', '_', '$var', '${', 'var2', '}', '_'
     ]
     tags = TagsTokens(tokens).get_tags().check_syntax().tags
     self.assertEqual([
         'STMT', 'SPACES', 'BRACEPARAM', 'STMT', 'END_BRACE', 'STMT', 'VAR',
         'BRACEPARAM', 'STMT', 'END_BRACE', 'STMT'
     ], tags)
Ejemplo n.º 22
0
 def test_basic_valid_004(self):
     """Test command with terminator."""
     term_input = 'cmd;'
     tt = TagsTokens().init_with_input(term_input).check_syntax()
     print(tt)
     self.assertEqual(['STMT', 'END_COMMAND'], tt.tags)
     self.assertEqual(['cmd', ';'], tt.tokens)
     self.assertEqual([], tt.stack)
     self.assertTrue(tt.valid)
     self.assertFalse(tt.incomplete)
Ejemplo n.º 23
0
 def test_tags_005(self):
     tokens = [
         'echo', ' ', '1', '&&', '\n', '<(', 'LOL', ')', '||', '\n', 'LOL',
         '\n'
     ]
     tags = TagsTokens(tokens).get_tags().check_syntax().tags
     self.assertEqual([
         'STMT', 'SPACES', 'STMT', 'CMDAND', 'NEW_LINE', 'CMDSUBST3',
         'STMT', 'END_BRACKET', 'CMDOR', 'NEW_LINE', 'STMT', 'NEW_LINE'
     ], tags)
Ejemplo n.º 24
0
 def test_basic_valid_001(self):
     """Basic test no input -> no tags no tokens."""
     term_input = ''
     tt = TagsTokens().init_with_input(term_input).check_syntax()
     print(tt)
     self.assertEqual([], tt.tags)
     self.assertEqual([], tt.tokens)
     self.assertEqual([], tt.stack)
     self.assertTrue(tt.valid)
     self.assertFalse(tt.incomplete)
Ejemplo n.º 25
0
 def test_basic_valid_006(self):
     """Test newline in raw input."""
     term_input = '\n'
     tt = TagsTokens().init_with_input(term_input).check_syntax()
     print(tt)
     self.assertEqual([], tt.tags)
     self.assertEqual([], tt.tokens)
     self.assertEqual([], tt.stack)
     self.assertTrue(tt.valid)
     self.assertFalse(tt.incomplete)
Ejemplo n.º 26
0
 def test_basic_valid_007(self):
     """Test newline in raw input."""
     tokens = ['\n']
     tt = TagsTokens(tokens).get_tags().check_syntax()
     print(tt)
     self.assertEqual(['NEW_LINE'], tt.tags)
     # self.assertEqual(['\n'], tt.tokens)
     self.assertEqual([], tt.stack)
     self.assertTrue(tt.valid)
     self.assertFalse(tt.incomplete)
Ejemplo n.º 27
0
 def test_basic_valid_008(self):
     """Test BACKGROUND_JOBS and spacing in token input."""
     tokens = ['  ', 'cmd', ' \t', '&', ' \t']
     tt = TagsTokens(tokens).get_tags().check_syntax()
     print(tt)
     self.assertEqual(['STMT', 'SPACES', 'BACKGROUND_JOBS'], tt.tags)
     self.assertEqual(['cmd', ' \t', '&'], tt.tokens)
     self.assertEqual([], tt.stack)
     self.assertTrue(tt.valid)
     self.assertFalse(tt.incomplete)
Ejemplo n.º 28
0
 def test_basic_invalid_001(self):
     """Test BACKGROUND_JOBS alone."""
     term_input = '&'
     tt = TagsTokens().init_with_input(term_input).check_syntax()
     print(tt)
     self.assertEqual(['BACKGROUND_JOBS'], tt.tags)
     self.assertEqual(['&'], tt.tokens)
     self.assertEqual(['BACKGROUND_JOBS'], tt.stack)
     self.assertFalse(tt.valid)
     self.assertFalse(tt.incomplete)
Ejemplo n.º 29
0
 def test_append_001(self):
     term_input = '>>'
     tt = TagsTokens().init_with_input(term_input).check_syntax()
     print(tt)
     self.assertEqual(['APPEND'], tt.tags)
     self.assertEqual(['>>'], tt.tokens)
     # self.assertEqual([], tt.stack)
     self.assertEqual('>>', tt.token_error)
     self.assertFalse(tt.valid)
     self.assertFalse(tt.incomplete)
Ejemplo n.º 30
0
 def test_basic_valid_005(self):
     """Test terminator alone."""
     term_input = ';'
     tt = TagsTokens().init_with_input(term_input).check_syntax()
     print(tt)
     self.assertEqual(['END_COMMAND'], tt.tags)
     self.assertEqual([';'], tt.tokens)
     self.assertEqual([], tt.stack)
     self.assertTrue(tt.valid)
     self.assertFalse(tt.incomplete)