def setUp(self):
     self.context = Context('http://localhost',
                            spec={
                                'paths': {
                                    '/users': {},
                                    '/users/{username}': {},
                                    '/users/{username}/events': {},
                                    '/users/{username}/orgs': {},
                                    '/orgs': {},
                                    '/orgs/{org}': {},
                                    '/orgs/{org}/events': {},
                                    '/orgs/{org}/members': {}
                                }
                            })
     self.completer = HttpPromptCompleter(self.context)
     self.completer_event = None
예제 #2
0
class TestCompleter(unittest.TestCase):
    def setUp(self):
        self.context = Context()
        self.completer = HttpPromptCompleter(self.context)
        self.completer_event = None

    def get_completions(self, command):
        if not isinstance(command, six.text_type):
            command = six.u(command)
        position = len(command)
        completions = self.completer.get_completions(
            Document(text=command, cursor_position=position),
            self.completer_event)
        return [c.text for c in completions]

    def test_header_name(self):
        result = self.get_completions('ctype')
        self.assertEqual(result[0], 'Content-Type')

    def test_header_value(self):
        result = self.get_completions('Content-Type:json')
        self.assertEqual(result[0], 'application/json')

    def test_verify_option(self):
        result = self.get_completions('--vfy')
        self.assertEqual(result[0], '--verify')

    def test_preview_then_action(self):
        result = self.get_completions('httpie po')
        self.assertEqual(result[0], 'post')

    def test_rm_body_param(self):
        self.context.body_params['my_name'] = 'dont_care'
        result = self.get_completions('rm -b ')
        self.assertEqual(result[0], 'my_name')

    def test_rm_querystring_param(self):
        self.context.querystring_params['my_name'] = 'dont_care'
        result = self.get_completions('rm -q ')
        self.assertEqual(result[0], 'my_name')

    def test_rm_header(self):
        self.context.headers['Accept'] = 'dont_care'
        result = self.get_completions('rm -h ')
        self.assertEqual(result[0], 'Accept')

    def test_rm_option(self):
        self.context.options['--form'] = None
        result = self.get_completions('rm -o ')
        self.assertEqual(result[0], '--form')

    def test_querystring_with_chinese(self):
        result = self.get_completions('name==王')
        self.assertFalse(result)

    def test_header_with_spanish(self):
        result = self.get_completions('X-Custom-Header:Jesú')
        self.assertFalse(result)
예제 #3
0
class TestCompleter(unittest.TestCase):

    def setUp(self):
        self.context = Context()
        self.completer = HttpPromptCompleter(self.context)
        self.completer_event = None

    def get_completions(self, command):
        if not isinstance(command, six.text_type):
            command = six.u(command)
        position = len(command)
        completions = self.completer.get_completions(
            Document(text=command, cursor_position=position),
            self.completer_event)
        return [c.text for c in completions]

    def test_header_name(self):
        result = self.get_completions('ctype')
        self.assertEqual(result[0], 'Content-Type')

    def test_header_value(self):
        result = self.get_completions('Content-Type:json')
        self.assertEqual(result[0], 'application/json')

    def test_verify_option(self):
        result = self.get_completions('--vfy')
        self.assertEqual(result[0], '--verify')

    def test_preview_then_action(self):
        result = self.get_completions('httpie po')
        self.assertEqual(result[0], 'post')

    def test_rm_body_param(self):
        self.context.body_params['my_name'] = 'dont_care'
        result = self.get_completions('rm -b ')
        self.assertEqual(result[0], 'my_name')

    def test_rm_querystring_param(self):
        self.context.querystring_params['my_name'] = 'dont_care'
        result = self.get_completions('rm -q ')
        self.assertEqual(result[0], 'my_name')

    def test_rm_header(self):
        self.context.headers['Accept'] = 'dont_care'
        result = self.get_completions('rm -h ')
        self.assertEqual(result[0], 'Accept')

    def test_rm_option(self):
        self.context.options['--form'] = None
        result = self.get_completions('rm -o ')
        self.assertEqual(result[0], '--form')
예제 #4
0
 def setUp(self):
     self.context = Context('http://localhost', spec={
         'paths': {
             '/users': {},
             '/users/{username}': {},
             '/users/{username}/events': {},
             '/users/{username}/orgs': {},
             '/orgs': {},
             '/orgs/{org}': {},
             '/orgs/{org}/events': {},
             '/orgs/{org}/members': {}
         }
     })
     self.completer = HttpPromptCompleter(self.context)
     self.completer_event = None
예제 #5
0
 def setUp(self):
     self.context = Context()
     self.completer = HttpPromptCompleter(self.context)
     self.completer_event = None
예제 #6
0
class TestCompleter(unittest.TestCase):

    def setUp(self):
        self.context = Context('http://localhost', spec={
            'paths': {
                '/users': {},
                '/users/{username}': {},
                '/users/{username}/events': {},
                '/users/{username}/orgs': {},
                '/orgs': {},
                '/orgs/{org}': {},
                '/orgs/{org}/events': {},
                '/orgs/{org}/members': {}
            }
        })
        self.completer = HttpPromptCompleter(self.context)
        self.completer_event = None

    def get_completions(self, command):
        if not isinstance(command, six.text_type):
            command = six.u(command)
        position = len(command)
        completions = self.completer.get_completions(
            Document(text=command, cursor_position=position),
            self.completer_event)
        return [c.text for c in completions]

    def test_header_name(self):
        result = self.get_completions('ctype')
        self.assertEqual(result[0], 'Content-Type')

    def test_header_value(self):
        result = self.get_completions('Content-Type:json')
        self.assertEqual(result[0], 'application/json')

    def test_verify_option(self):
        result = self.get_completions('--vfy')
        self.assertEqual(result[0], '--verify')

    def test_preview_then_action(self):
        result = self.get_completions('httpie po')
        self.assertEqual(result[0], 'post')

    def test_rm_body_param(self):
        self.context.body_params['my_name'] = 'dont_care'
        result = self.get_completions('rm -b ')
        self.assertEqual(result[0], 'my_name')

    def test_rm_body_json_param(self):
        self.context.body_json_params['number'] = 2
        result = self.get_completions('rm -b ')
        self.assertEqual(result[0], 'number')

    def test_rm_querystring_param(self):
        self.context.querystring_params['my_name'] = 'dont_care'
        result = self.get_completions('rm -q ')
        self.assertEqual(result[0], 'my_name')

    def test_rm_header(self):
        self.context.headers['Accept'] = 'dont_care'
        result = self.get_completions('rm -h ')
        self.assertEqual(result[0], 'Accept')

    def test_rm_option(self):
        self.context.options['--form'] = None
        result = self.get_completions('rm -o ')
        self.assertEqual(result[0], '--form')

    def test_querystring_with_chinese(self):
        result = self.get_completions('name==王')
        self.assertFalse(result)

    def test_header_with_spanish(self):
        result = self.get_completions('X-Custom-Header:Jesú')
        self.assertFalse(result)

    def test_options_method(self):
        result = self.get_completions('opt')
        self.assertEqual(result[0], 'options')

    def test_ls_no_path(self):
        result = self.get_completions('ls ')
        self.assertEqual(result, ['orgs', 'users'])

    def test_ls_no_path_substring(self):
        result = self.get_completions('ls o')
        self.assertEqual(result, ['orgs'])

    def test_ls_absolute_path(self):
        result = self.get_completions('ls /users/1/')
        self.assertEqual(result, ['events', 'orgs'])

    def test_ls_absolute_path_substring(self):
        result = self.get_completions('ls /users/1/e')
        self.assertEqual(result, ['events'])

    def test_ls_relative_path(self):
        self.context.url = 'http://localhost/orgs'
        result = self.get_completions('ls 1/')
        self.assertEqual(result, ['events', 'members'])

    def test_cd_no_path(self):
        result = self.get_completions('cd ')
        self.assertEqual(result, ['orgs', 'users'])

    def test_cd_no_path_substring(self):
        result = self.get_completions('cd o')
        self.assertEqual(result, ['orgs'])

    def test_cd_absolute_path(self):
        result = self.get_completions('cd /users/1/')
        self.assertEqual(result, ['events', 'orgs'])

    def test_cd_absolute_path_substring(self):
        result = self.get_completions('cd /users/1/e')
        self.assertEqual(result, ['events'])

    def test_cd_relative_path(self):
        self.context.url = 'http://localhost/orgs'
        result = self.get_completions('cd 1/')
        self.assertEqual(result, ['events', 'members'])
예제 #7
0
 def setUp(self):
     self.context = Context()
     self.completer = HttpPromptCompleter(self.context)
     self.completer_event = None
class TestCompleter(unittest.TestCase):
    def setUp(self):
        self.context = Context('http://localhost',
                               spec={
                                   'paths': {
                                       '/users': {},
                                       '/users/{username}': {},
                                       '/users/{username}/events': {},
                                       '/users/{username}/orgs': {},
                                       '/orgs': {},
                                       '/orgs/{org}': {},
                                       '/orgs/{org}/events': {},
                                       '/orgs/{org}/members': {}
                                   }
                               })
        self.completer = HttpPromptCompleter(self.context)
        self.completer_event = None

    def get_completions(self, command):
        if not isinstance(command, six.text_type):
            command = six.u(command)
        position = len(command)
        completions = self.completer.get_completions(
            Document(text=command, cursor_position=position),
            self.completer_event)
        return [c.text for c in completions]

    def test_header_name(self):
        result = self.get_completions('ctype')
        self.assertEqual(result[0], 'Content-Type')

    def test_header_value(self):
        result = self.get_completions('Content-Type:json')
        self.assertEqual(result[0], 'application/json')

    def test_verify_option(self):
        result = self.get_completions('--vfy')
        self.assertEqual(result[0], '--verify')

    def test_preview_then_action(self):
        result = self.get_completions('httpie po')
        self.assertEqual(result[0], 'post')

    def test_rm_body_param(self):
        self.context.body_params['my_name'] = 'dont_care'
        result = self.get_completions('rm -b ')
        self.assertEqual(result[0], 'my_name')

    def test_rm_body_json_param(self):
        self.context.body_json_params['number'] = 2
        result = self.get_completions('rm -b ')
        self.assertEqual(result[0], 'number')

    def test_rm_querystring_param(self):
        self.context.querystring_params['my_name'] = 'dont_care'
        result = self.get_completions('rm -q ')
        self.assertEqual(result[0], 'my_name')

    def test_rm_header(self):
        self.context.headers['Accept'] = 'dont_care'
        result = self.get_completions('rm -h ')
        self.assertEqual(result[0], 'Accept')

    def test_rm_option(self):
        self.context.options['--form'] = None
        result = self.get_completions('rm -o ')
        self.assertEqual(result[0], '--form')

    def test_querystring_with_chinese(self):
        result = self.get_completions('name==王')
        self.assertFalse(result)

    def test_header_with_spanish(self):
        result = self.get_completions('X-Custom-Header:Jesú')
        self.assertFalse(result)

    def test_options_method(self):
        result = self.get_completions('opt')
        self.assertEqual(result[0], 'options')

    def test_ls_no_path(self):
        result = self.get_completions('ls ')
        self.assertEqual(result, ['orgs', 'users'])

    def test_ls_no_path_substring(self):
        result = self.get_completions('ls o')
        self.assertEqual(result, ['orgs'])

    def test_ls_absolute_path(self):
        result = self.get_completions('ls /users/1/')
        self.assertEqual(result, ['events', 'orgs'])

    def test_ls_absolute_path_substring(self):
        result = self.get_completions('ls /users/1/e')
        self.assertEqual(result, ['events'])

    def test_ls_relative_path(self):
        self.context.url = 'http://localhost/orgs'
        result = self.get_completions('ls 1/')
        self.assertEqual(result, ['events', 'members'])

    def test_cd_no_path(self):
        result = self.get_completions('cd ')
        self.assertEqual(result, ['orgs', 'users'])

    def test_cd_no_path_substring(self):
        result = self.get_completions('cd o')
        self.assertEqual(result, ['orgs'])

    def test_cd_absolute_path(self):
        result = self.get_completions('cd /users/1/')
        self.assertEqual(result, ['events', 'orgs'])

    def test_cd_absolute_path_substring(self):
        result = self.get_completions('cd /users/1/e')
        self.assertEqual(result, ['events'])

    def test_cd_relative_path(self):
        self.context.url = 'http://localhost/orgs'
        result = self.get_completions('cd 1/')
        self.assertEqual(result, ['events', 'members'])