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)
def test_syntax_valid_011(self): tokens = [ 'echo', ' ', '${', 'var', '}', '_', '$var', '${', 'var2', '}', '_' ] tagstokens = TagsTokens(tokens).get_tags().check_syntax() print(tagstokens) self.assertTrue(tagstokens.valid)
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)
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)
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)
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)
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)
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)
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)
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)
def test_syntax_valid_007(self): tokens = [ ' ', '\\\necho', ' ', '\\\\test', ' ' ] tagstokens = TagsTokens(tokens).get_tags().check_syntax() print(tagstokens) self.assertTrue(tagstokens.valid)
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'])
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, [])
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'])
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'])
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)