def test_console_hello(self): self.original_stdout = sys.stdout sys.stdout = pydevd_io.IOBuf() try: sys.stdout.encoding = sys.stdin.encoding except AttributeError: # In Python 3 encoding is not writable (whereas in Python 2 it doesn't exist). pass try: client_port, _server_port = self.get_free_addresses() client_thread = self.start_client_thread( client_port) #@UnusedVariable import time time.sleep(.3) #let's give it some time to start the threads from _pydev_bundle import pydev_localhost interpreter = pydevconsole.InterpreterInterface( pydev_localhost.get_localhost(), client_port, threading.currentThread()) (result, ) = interpreter.hello("Hello pydevconsole") self.assertEqual(result, "Hello eclipse") finally: sys.stdout = self.original_stdout
def testConsoleRequests(self): client_port = 7992 client_thread = self.startClientThread(client_port) #@UnusedVariable import time time.sleep(.3) #let's give it some time to start the threads interpreter = pydevconsole.InterpreterInterface( 'localhost', client_port) interpreter.addExec('class Foo:') interpreter.addExec(' CONSTANT=1') interpreter.addExec('') interpreter.addExec('foo=Foo()') interpreter.addExec('foo.__doc__=None') interpreter.addExec('val = %s()' % (raw_input_name, )) interpreter.addExec('50') interpreter.addExec('print (val)') self.assertEqual(['50', 'input_request'], sys.stdout.getvalue().split()) comps = interpreter.getCompletions('foo.') self.assert_(('CONSTANT', '', '', '3') in comps or ('CONSTANT', '', '', '4') in comps) comps = interpreter.getCompletions('"".') self.assert_(('__add__', 'x.__add__(y) <==> x+y', '', '3') in comps or ('__add__', '', '', '4') in comps) self.assert_(('AssertionError', '', '', '1') in interpreter.getCompletions('')) self.assert_(('RuntimeError', '', '', '1') not in interpreter.getCompletions('Assert')) self.assert_(('__doc__', None, '', '3') not in interpreter.getCompletions('foo.CO')) comps = interpreter.getCompletions('va') self.assert_(('val', '', '', '3') in comps or ('val', '', '', '4') in comps) interpreter.addExec('s = "mystring"') desc = interpreter.getDescription('val') self.assert_( desc.find('str(object) -> string') >= 0 or desc == "'input_request'" or desc.find('str(string[, encoding[, errors]]) -> str') >= 0, 'Could not find what was needed in %s' % desc) desc = interpreter.getDescription('val.join') self.assert_( desc.find('S.join(sequence) -> string') >= 0 or desc.find('S.join(sequence) -> str') >= 0 or desc == "<builtin method 'join'>" or desc == "<built-in method join of str object>", "Could not recognize: %s" % (desc, ))
def testConsoleHello(self): client_port, _server_port = self.getFreeAddresses() client_thread = self.startClientThread(client_port) #@UnusedVariable import time time.sleep(.3) #let's give it some time to start the threads import pydev_localhost interpreter = pydevconsole.InterpreterInterface( pydev_localhost.get_localhost(), client_port, server=None) (result, ) = interpreter.hello("Hello pydevconsole") self.assertEqual(result, "Hello eclipse")
def test_console_hello(self): self.original_stdout = sys.stdout sys.stdout = StringIO() try: client_port, _server_port = self.get_free_addresses() client_thread = self.start_client_thread( client_port) #@UnusedVariable import time time.sleep(.3) #let's give it some time to start the threads from _pydev_bundle import pydev_localhost interpreter = pydevconsole.InterpreterInterface( pydev_localhost.get_localhost(), client_port, threading.currentThread()) (result, ) = interpreter.hello("Hello pydevconsole") self.assertEqual(result, "Hello eclipse") finally: sys.stdout = self.original_stdout
def testConsoleRequests(self): client_port, _server_port = self.getFreeAddresses() client_thread = self.startClientThread(client_port) #@UnusedVariable import time time.sleep(.3) #let's give it some time to start the threads import pydev_localhost interpreter = pydevconsole.InterpreterInterface( pydev_localhost.get_localhost(), client_port, server=None) interpreter.addExec('class Foo:') interpreter.addExec(' CONSTANT=1') interpreter.addExec('') interpreter.addExec('foo=Foo()') interpreter.addExec('foo.__doc__=None') interpreter.addExec('val = %s()' % (raw_input_name, )) interpreter.addExec('50') interpreter.addExec('print (val)') found = sys.stdout.getvalue().split() try: self.assertEqual(['50', 'input_request'], found) except: self.assertEqual(['input_request'], found) #IPython comps = interpreter.getCompletions('foo.', 'foo.') self.assert_( ('CONSTANT', '', '', '3') in comps or ('CONSTANT', '', '', '4') in comps, \ 'Found: %s' % comps ) comps = interpreter.getCompletions('"".', '"".') self.assert_( ('__add__', 'x.__add__(y) <==> x+y', '', '3') in comps or ('__add__', '', '', '4') in comps or ('__add__', 'x.__add__(y) <==> x+y\r\nx.__add__(y) <==> x+y', '()', '2') in comps or ('__add__', 'x.\n__add__(y) <==> x+yx.\n__add__(y) <==> x+y', '()', '2'), 'Did not find __add__ in : %s' % (comps, )) completions = interpreter.getCompletions('', '') for c in completions: if c[0] == 'AssertionError': break else: self.fail('Could not find AssertionError') completions = interpreter.getCompletions('Assert', 'Assert') for c in completions: if c[0] == 'RuntimeError': self.fail('Did not expect to find RuntimeError there') self.assert_(('__doc__', None, '', '3') not in interpreter.getCompletions('foo.CO', 'foo.')) comps = interpreter.getCompletions('va', 'va') self.assert_(('val', '', '', '3') in comps or ('val', '', '', '4') in comps) interpreter.addExec('s = "mystring"') desc = interpreter.getDescription('val') self.assert_( desc.find('str(object) -> string') >= 0 or desc == "'input_request'" or desc.find('str(string[, encoding[, errors]]) -> str') >= 0 or desc.find('str(Char* value)') >= 0 or desc.find('str(value: Char*)') >= 0, 'Could not find what was needed in %s' % desc) desc = interpreter.getDescription('val.join') self.assert_( desc.find('S.join(sequence) -> string') >= 0 or desc.find('S.join(sequence) -> str') >= 0 or desc.find('S.join(iterable) -> string') >= 0 or desc == "<builtin method 'join'>" or desc == "<built-in method join of str object>" or desc.find('str join(str self, list sequence)') >= 0 or desc.find('S.join(iterable) -> str') >= 0 or desc.find('join(self: str, sequence: list) -> str') >= 0, "Could not recognize: %s" % (desc, ))
def test_console_requests(self): self.original_stdout = sys.stdout sys.stdout = pydevd_io.IOBuf() try: rpc_client = self.start_client_thread() #@UnusedVariable import time time.sleep(.3) #let's give it some time to start the threads from _pydev_bundle import pydev_localhost from _pydev_bundle.pydev_console_types import CodeFragment interpreter = pydevconsole.InterpreterInterface(threading.current_thread(), rpc_client=rpc_client) sys.stdout = pydevd_io.IOBuf() interpreter.add_exec(CodeFragment('class Foo:\n CONSTANT=1\n')) interpreter.add_exec(CodeFragment('foo=Foo()')) interpreter.add_exec(CodeFragment('foo.__doc__=None')) interpreter.add_exec(CodeFragment('val = %s()' % (raw_input_name,))) interpreter.add_exec(CodeFragment('50')) interpreter.add_exec(CodeFragment('print (val)')) found = sys.stdout.getvalue().split() try: self.assertEqual(['50', 'input_request'], found) except: try: self.assertEqual(['input_request'], found) #IPython except: self.assertEqual([u'50', u'input_request'], found[1:]) # IPython 5.1 self.assertTrue(found[0].startswith(u'Out')) comps = interpreter.do_get_completions('foo.', 'foo.') self.assertTrue( ('CONSTANT', '', '', '3') in comps or ('CONSTANT', '', '', '4') in comps, \ 'Found: %s' % comps ) comps = interpreter.do_get_completions('"".', '"".') self.assertTrue( ('__add__', 'x.__add__(y) <==> x+y', '', '3') in comps or ('__add__', '', '', '4') in comps or ('__add__', 'x.__add__(y) <==> x+y\r\nx.__add__(y) <==> x+y', '()', '2') in comps or ('__add__', 'x.\n__add__(y) <==> x+yx.\n__add__(y) <==> x+y', '()', '2'), 'Did not find __add__ in : %s' % (comps,) ) completions = interpreter.do_get_completions('', '') for c in completions: if c[0] == 'AssertionError': break else: self.fail('Could not find AssertionError') completions = interpreter.do_get_completions('Assert', 'Assert') for c in completions: if c[0] == 'RuntimeError': self.fail('Did not expect to find RuntimeError there') self.assertTrue(('__doc__', None, '', '3') not in interpreter.do_get_completions('foo.CO', 'foo.')) comps = interpreter.do_get_completions('va', 'va') self.assertTrue(('val', '', '', '3') in comps or ('vars', '', '', '4') in comps) interpreter.add_exec(CodeFragment('s = "mystring"')) desc = interpreter.getDescription('val') self.assertTrue(desc.find('str(object) -> string') >= 0 or desc == "'input_request'" or desc.find('str(string[, encoding[, errors]]) -> str') >= 0 or desc.find('str(Char* value)') >= 0 or desc.find('str(object=\'\') -> string') >= 0 or desc.find('str(value: Char*)') >= 0 or desc.find('str(object=\'\') -> str') >= 0 or desc.find('unicode(object=\'\') -> unicode object') >= 0 or desc.find('The most base type') >= 0 # Jython 2.7 is providing this :P , 'Could not find what was needed in %s' % desc) desc = interpreter.getDescription('val.join') self.assertTrue(desc.find('S.join(sequence) -> string') >= 0 or desc.find('S.join(sequence) -> str') >= 0 or desc.find('S.join(iterable) -> string') >= 0 or desc == "<builtin method 'join'>" or desc == "<built-in method join of str object>" or desc.find('str join(str self, list sequence)') >= 0 or desc.find('S.join(iterable) -> str') >= 0 or desc.find('S.join(iterable) -> unicode') >= 0 or desc.find('join(self: str, sequence: list) -> str') >= 0 or desc.find('Concatenate any number of strings.') >= 0, "Could not recognize: %s" % (desc,)) finally: sys.stdout = self.original_stdout