Esempio n. 1
0
    def test_parse_quotes(self):
        cmd1 = 'account set --subscription \'Visual Studeio enterprizse (msft)\''
        args1 = parse_quotes(cmd1)
        self.assertEqual(
            args1, ['account', 'set', '--subscription', 'Visual Studeio enterprizse (msft)'])

        cmd2 = 'account set --subscription \"Visual Studeio enterprizse (msft)\"'
        args2 = parse_quotes(cmd2)
        self.assertEqual(
            args2, ['account', 'set', '--subscription', 'Visual Studeio enterprizse (msft)'])

        cmd3 = 'account set --subscription'
        args3 = parse_quotes(cmd3)
        self.assertEqual(args3, ['account', 'set', '--subscription'])

        cmd4 = 'word1 "quote1" word2 "quote is 3" words are fun'
        args4 = parse_quotes(cmd4)
        self.assertEqual(
            args4, ['word1', "quote1", 'word2', "quote is 3", 'words', 'are', 'fun'])

        cmd5 = '"??[?resourceGroup == "CJ101"].name"'
        args5 = parse_quotes(cmd5)
        self.assertEqual(
            args5, ['??[?resourceGroup == CJ101].name']
        )
Esempio n. 2
0
    def test_parse_quotes(self):
        cmd1 = 'account set --subscription \'Visual Studeio enterprizse (msft)\''
        args1 = parse_quotes(cmd1)
        self.assertEqual(args1, [
            'account', 'set', '--subscription',
            'Visual Studeio enterprizse (msft)'
        ])

        cmd2 = 'account set --subscription \"Visual Studeio enterprizse (msft)\"'
        args2 = parse_quotes(cmd2)
        self.assertEqual(args2, [
            'account', 'set', '--subscription',
            'Visual Studeio enterprizse (msft)'
        ])

        cmd3 = 'account set --subscription'
        args3 = parse_quotes(cmd3)
        self.assertEqual(args3, ['account', 'set', '--subscription'])

        cmd4 = 'word1 "quote1" word2 "quote is 3" words are fun'
        args4 = parse_quotes(cmd4)
        self.assertEqual(
            args4,
            ['word1', "quote1", 'word2', "quote is 3", 'words', 'are', 'fun'])

        cmd5 = '"??[?resourceGroup == "CJ101"].name"'
        args5 = parse_quotes(cmd5)
        self.assertEqual(args5, ['??[?resourceGroup == CJ101].name'])
Esempio n. 3
0
 def test_string_replacement(self):
     # tests that the query replaces the values in the command
     args = 'vm show -g "??group" -n "??name"'
     args = parse_quotes(args)
     self.shell.last.result = {'group': 'mygroup', 'name': 'myname'}
     flag = self.shell.handle_jmespath_query(args)
     self.assertTrue(flag)
     results = self.stream.getvalue().split(os.linesep)
     self.assertEqual(results[0],
                      '"vm" "show" "-g" "mygroup" "-n" "myname"')
Esempio n. 4
0
 def test_query_result_spaces(self):
     # tests a singleton example
     args = 'vm show -g "??group" -n "??name"'
     args = parse_quotes(args)
     self.shell.last.result = {'group': 'mygroup', 'name': 'my name'}
     flag = self.shell.handle_jmespath_query(args)
     self.assertTrue(flag)
     results = self.stream.getvalue().split(os.linesep)
     self.assertEqual(results[0],
                      '"vm" "show" "-g" "mygroup" "-n" "my name"')
 def test_string_replacement(self):
     # tests that the query replaces the values in the command
     args = 'vm show -g "??group" -n "??name"'
     args = parse_quotes(args)
     self.shell.last.result = {
         'group': 'mygroup',
         'name': 'myname'
     }
     flag = self.shell.handle_jmespath_query(args)
     self.assertTrue(flag)
     results = self.stream.getvalue().split(os.linesep)
     self.assertEqual(results[0], '"vm" "show" "-g" "mygroup" "-n" "myname"')
 def test_query_result_spaces(self):
     # tests a singleton example
     args = 'vm show -g "??group" -n "??name"'
     args = parse_quotes(args)
     self.shell.last.result = {
         'group': 'mygroup',
         'name': 'my name'
     }
     flag = self.shell.handle_jmespath_query(args)
     self.assertTrue(flag)
     results = self.stream.getvalue().split(os.linesep)
     self.assertEqual(results[0], '"vm" "show" "-g" "mygroup" "-n" "my name"')
Esempio n. 7
0
 def test_usage_error(self):
     # tests case when multiple args but first arg starts with query
     args = '??[].group foo bar'
     args = parse_quotes(args)
     self.shell.last.result = {'group': 'mygroup', 'name': 'myname'}
     flag = self.shell.handle_jmespath_query(args)
     self.assertTrue(flag)
     self.assertEqual(
         self.stream.getvalue().strip(), "Usage Error: " + os.linesep +
         "1. Use ?? stand-alone to display previous result with optional filtering "
         "(Ex: ??[jmespath query])" + os.linesep + "OR:" + os.linesep +
         "2. Use ?? to query the previous result for argument values "
         "(Ex: group show --name ??[jmespath query])")
Esempio n. 8
0
 def test_errors(self):
     # tests invalid query
     args = 'vm show -g "??[0].group" -n "??[1].name"'
     args = parse_quotes(args)
     self.shell.last.result = [{
         'group': 'mygroup',
         'name': 'myname'
     }, {
         'group': 'mygroup3',
     }]
     flag = self.shell.handle_jmespath_query(args)
     self.assertTrue(flag)
     results = self.stream.getvalue().split(os.linesep)
     self.assertEqual(results[0], '"vm" "show" "-g" "mygroup" "-n" "None"')
Esempio n. 9
0
    def test_spaces_with_equal(self):
        # tests quotes with spaces
        args = 'foo doo -bar="??[?group == \'myg roup\'].name"'
        args = parse_quotes(args)
        self.shell.last.result = [{
            'group': 'myg roup',
            'name': 'fred'
        }, {
            'group': 'mygroup3',
            'name': 'myname3'
        }]

        self.shell.handle_jmespath_query(args)
        results = self.stream.getvalue().split(os.linesep)
        self.assertEqual(results[0], '"foo" "doo" "-bar=[\'fred\']"')
Esempio n. 10
0
 def test_usage_error(self):
     # tests case when multiple args but first arg starts with query
     args = '??[].group foo bar'
     args = parse_quotes(args)
     self.shell.last.result = {
         'group': 'mygroup',
         'name': 'myname'
     }
     flag = self.shell.handle_jmespath_query(args)
     self.assertTrue(flag)
     self.assertEqual(self.stream.getvalue().strip(),
                      "Usage Error: " + os.linesep +
                      "1. Use ?? stand-alone to display previous result with optional filtering "
                      "(Ex: ??[jmespath query])" +
                      os.linesep + "OR:" + os.linesep +
                      "2. Use ?? to query the previous result for argument values "
                      "(Ex: group show --name ??[jmespath query])")
Esempio n. 11
0
 def test_errors(self):
     # tests invalid query
     args = 'vm show -g "??[0].group" -n "??[1].name"'
     args = parse_quotes(args)
     self.shell.last.result = [
         {
             'group': 'mygroup',
             'name': 'myname'
         },
         {
             'group': 'mygroup3',
         }
     ]
     flag = self.shell.handle_jmespath_query(args)
     self.assertTrue(flag)
     results = self.stream.getvalue().split(os.linesep)
     self.assertEqual(results[0], '"vm" "show" "-g" "mygroup" "-n" "None"')
Esempio n. 12
0
 def test_print_list_replacement(self):
     # tests that the query replaces the values in the command
     args = '??[].group'
     args = parse_quotes(args)
     self.shell.last.result = [{
         'group': 'mygroup',
         'name': 'myname'
     }, {
         'group': 'mygroup2',
         'name': 'myname2'
     }, {
         'group': 'mygroup3',
         'name': 'myname3'
     }]
     flag = self.shell.handle_jmespath_query(args)
     self.assertTrue(flag)
     self.assertEqual(json.loads(self.stream.getvalue()),
                      ['mygroup', 'mygroup2', 'mygroup3'])
Esempio n. 13
0
    def test_spaces_with_equal(self):
        # tests quotes with spaces
        args = 'foo doo -bar="??[?group == \'myg roup\'].name"'
        args = parse_quotes(args)
        self.shell.last.result = [
            {
                'group': 'myg roup',
                'name': 'fred'
            },
            {
                'group': 'mygroup3',
                'name': 'myname3'
            }
        ]

        self.shell.handle_jmespath_query(args)
        results = self.stream.getvalue().split(os.linesep)
        self.assertEqual(results[0], '"foo" "doo" "-bar=[\'fred\']"')
Esempio n. 14
0
 def test_print_list_replacement(self):
     # tests that the query replaces the values in the command
     args = '??[].group'
     args = parse_quotes(args)
     self.shell.last.result = [
         {
             'group': 'mygroup',
             'name': 'myname'
         },
         {
             'group': 'mygroup2',
             'name': 'myname2'
         },
         {
             'group': 'mygroup3',
             'name': 'myname3'
         }
     ]
     flag = self.shell.handle_jmespath_query(args)
     self.assertTrue(flag)
     self.assertEqual(json.loads(self.stream.getvalue()), ['mygroup', 'mygroup2', 'mygroup3'])
Esempio n. 15
0
 def test_list_replacement(self):
     # tests that the query replaces the values in the command
     args = 'foo update --set blah=??[].group'
     args = parse_quotes(args)
     self.shell.last.result = [{
         'group': 'mygroup',
         'name': 'myname'
     }, {
         'group': 'mygroup2',
         'name': 'myname2'
     }, {
         'group': 'mygroup3',
         'name': 'myname3'
     }]
     flag = self.shell.handle_jmespath_query(args)
     self.assertTrue(flag)
     results = self.stream.getvalue().strip().split(os.linesep)
     self.assertTrue(len(results) == 1)
     self.assertEqual(
         results[0],
         '"foo" "update" "--set" "blah=[\'mygroup\', \'mygroup2\', \'mygroup3\']"'
     )
Esempio n. 16
0
 def test_list_replacement(self):
     # tests that the query replaces the values in the command
     args = 'foo update --set blah=??[].group'
     args = parse_quotes(args)
     self.shell.last.result = [
         {
             'group': 'mygroup',
             'name': 'myname'
         },
         {
             'group': 'mygroup2',
             'name': 'myname2'
         },
         {
             'group': 'mygroup3',
             'name': 'myname3'
         }
     ]
     flag = self.shell.handle_jmespath_query(args)
     self.assertTrue(flag)
     results = self.stream.getvalue().strip().split(os.linesep)
     self.assertTrue(len(results) == 1)
     self.assertEqual(results[0], '"foo" "update" "--set" "blah=[\'mygroup\', \'mygroup2\', \'mygroup3\']"')