annotate elpa/elpy-1.14.1/elpy/tests/test_server.py @ 156:c745e2cc79ee

elpy: update along with direct deps
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Mon, 27 Feb 2017 12:17:38 -0500
parents elpa/elpy-1.12.0/elpy/tests/test_server.py@55ceabc58fcc
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
152
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
1 # coding: utf-8
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
2
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
3 """Tests for the elpy.server module"""
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
4
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
5 import os
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
6 import tempfile
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
7 import unittest
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
8
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
9 import mock
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
10
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
11 from elpy import rpc
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
12 from elpy import server
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
13 from elpy.tests import compat
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
14 from elpy.tests.support import BackendTestCase
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
15 import elpy.refactor
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
16
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
17
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
18 class ServerTestCase(unittest.TestCase):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
19 def setUp(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
20 self.srv = server.ElpyRPCServer()
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
21
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
22
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
23 class BackendCallTestCase(ServerTestCase):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
24 def assert_calls_backend(self, method):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
25 with mock.patch("elpy.server.get_source") as get_source:
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
26 with mock.patch.object(self.srv, "backend") as backend:
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
27 get_source.return_value = "transformed source"
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
28
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
29 getattr(self.srv, method)("filename", "source", "offset")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
30
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
31 get_source.assert_called_with("source")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
32 getattr(backend, method).assert_called_with(
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
33 "filename", "transformed source", "offset"
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
34 )
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
35
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
36
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
37 class TestInit(ServerTestCase):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
38 def test_should_not_select_a_backend_by_default(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
39 self.assertIsNone(self.srv.backend)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
40
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
41
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
42 class TestRPCEcho(ServerTestCase):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
43 def test_should_return_arguments(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
44 self.assertEqual(("hello", "world"),
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
45 self.srv.rpc_echo("hello", "world"))
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
46
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
47
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
48 class TestRPCInit(ServerTestCase):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
49 @mock.patch("elpy.jedibackend.JediBackend")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
50 @mock.patch("elpy.ropebackend.RopeBackend")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
51 def test_should_set_project_root(self, RopeBackend, JediBackend):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
52 self.srv.rpc_init({"project_root": "/project/root",
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
53 "backend": "rope"})
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
54
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
55 self.assertEqual("/project/root", self.srv.project_root)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
56
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
57 @mock.patch("elpy.jedibackend.JediBackend")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
58 @mock.patch("elpy.ropebackend.RopeBackend")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
59 def test_should_initialize_rope(self, RopeBackend, JediBackend):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
60 self.srv.rpc_init({"project_root": "/project/root",
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
61 "backend": "rope"})
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
62
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
63 RopeBackend.assert_called_with("/project/root")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
64
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
65 @mock.patch("elpy.jedibackend.JediBackend")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
66 @mock.patch("elpy.ropebackend.RopeBackend")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
67 def test_should_initialize_jedi(self, RopeBackend, JediBackend):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
68 self.srv.rpc_init({"project_root": "/project/root",
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
69 "backend": "jedi"})
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
70
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
71 JediBackend.assert_called_with("/project/root")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
72
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
73 @mock.patch("elpy.jedibackend.JediBackend")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
74 @mock.patch("elpy.ropebackend.RopeBackend")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
75 def test_should_use_rope_if_available_and_requested(
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
76 self, RopeBackend, JediBackend):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
77 RopeBackend.return_value.name = "rope"
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
78 JediBackend.return_value.name = "jedi"
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
79
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
80 self.srv.rpc_init({"project_root": "/project/root",
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
81 "backend": "rope"})
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
82
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
83 self.assertEqual("rope", self.srv.backend.name)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
84
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
85 @mock.patch("elpy.jedibackend.JediBackend")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
86 @mock.patch("elpy.ropebackend.RopeBackend")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
87 def test_should_use_jedi_if_available_and_requested(
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
88 self, RopeBackend, JediBackend):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
89 RopeBackend.return_value.name = "rope"
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
90 JediBackend.return_value.name = "jedi"
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
91
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
92 self.srv.rpc_init({"project_root": "/project/root",
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
93 "backend": "jedi"})
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
94
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
95 self.assertEqual("jedi", self.srv.backend.name)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
96
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
97 @mock.patch("elpy.jedibackend.JediBackend")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
98 @mock.patch("elpy.ropebackend.RopeBackend")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
99 def test_should_use_rope_if_available_and_nothing_requested(
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
100 self, RopeBackend, JediBackend):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
101 RopeBackend.return_value.name = "rope"
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
102 JediBackend.return_value.name = "jedi"
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
103
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
104 self.srv.rpc_init({"project_root": "/project/root",
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
105 "backend": None})
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
106
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
107 self.assertEqual("rope", self.srv.backend.name)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
108
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
109 @mock.patch("elpy.jedibackend.JediBackend")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
110 @mock.patch("elpy.ropebackend.RopeBackend")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
111 def test_should_use_jedi_if_rope_not_available_and_nothing_requested(
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
112 self, RopeBackend, JediBackend):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
113 RopeBackend.return_value.name = "rope"
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
114 JediBackend.return_value.name = "jedi"
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
115 old_rope = server.ropebackend
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
116 server.ropebackend = None
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
117
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
118 try:
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
119 self.srv.rpc_init({"project_root": "/project/root",
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
120 "backend": None})
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
121 finally:
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
122 server.ropebackend = old_rope
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
123
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
124 self.assertEqual("jedi", self.srv.backend.name)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
125
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
126 @mock.patch("elpy.jedibackend.JediBackend")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
127 @mock.patch("elpy.ropebackend.RopeBackend")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
128 def test_should_use_none_if_nothing_available(
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
129 self, RopeBackend, JediBackend):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
130 RopeBackend.return_value.name = "rope"
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
131 JediBackend.return_value.name = "jedi"
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
132 old_rope = server.ropebackend
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
133 old_jedi = server.jedibackend
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
134 server.ropebackend = None
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
135 server.jedibackend = None
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
136
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
137 try:
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
138 self.srv.rpc_init({"project_root": "/project/root",
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
139 "backend": None})
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
140 finally:
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
141 server.ropebackend = old_rope
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
142 server.jedibackend = old_jedi
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
143
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
144 self.assertIsNone(self.srv.backend)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
145
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
146
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
147 class TestRPCGetCalltip(BackendCallTestCase):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
148 def test_should_call_backend(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
149 self.assert_calls_backend("rpc_get_calltip")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
150
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
151 def test_should_handle_no_backend(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
152 self.srv.backend = None
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
153 self.assertIsNone(self.srv.rpc_get_calltip("filname", "source",
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
154 "offset"))
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
155
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
156
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
157 class TestRPCGetCompletions(BackendCallTestCase):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
158 def test_should_call_backend(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
159 self.assert_calls_backend("rpc_get_completions")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
160
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
161 def test_should_handle_no_backend(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
162 self.srv.backend = None
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
163 self.assertEqual([],
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
164 self.srv.rpc_get_completions("filname", "source",
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
165 "offset"))
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
166
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
167 def test_should_sort_results(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
168 with mock.patch.object(self.srv, 'backend') as backend:
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
169 backend.rpc_get_completions.return_value = [
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
170 {'name': '_e'},
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
171 {'name': '__d'},
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
172 {'name': 'c'},
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
173 {'name': 'B'},
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
174 {'name': 'a'},
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
175 ]
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
176 expected = list(reversed(backend.rpc_get_completions.return_value))
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
177
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
178 actual = self.srv.rpc_get_completions("filename", "source",
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
179 "offset")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
180
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
181 self.assertEqual(expected, actual)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
182
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
183 def test_should_uniquify_results(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
184 with mock.patch.object(self.srv, 'backend') as backend:
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
185 backend.rpc_get_completions.return_value = [
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
186 {'name': 'a'},
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
187 {'name': 'a'},
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
188 ]
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
189 expected = [{'name': 'a'}]
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
190
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
191 actual = self.srv.rpc_get_completions("filename", "source",
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
192 "offset")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
193
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
194 self.assertEqual(expected, actual)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
195
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
196
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
197 class TestRPCGetCompletionDocs(ServerTestCase):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
198 def test_should_call_backend(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
199 with mock.patch.object(self.srv, "backend") as backend:
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
200 self.srv.rpc_get_completion_docstring("completion")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
201
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
202 (backend.rpc_get_completion_docstring
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
203 .assert_called_with("completion"))
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
204
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
205 def test_should_handle_no_backend(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
206 self.srv.backend = None
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
207 self.assertIsNone(self.srv.rpc_get_completion_docstring("foo"))
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
208
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
209
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
210 class TestRPCGetCompletionLocation(ServerTestCase):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
211 def test_should_call_backend(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
212 with mock.patch.object(self.srv, "backend") as backend:
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
213 self.srv.rpc_get_completion_location("completion")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
214
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
215 (backend.rpc_get_completion_location
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
216 .assert_called_with("completion"))
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
217
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
218 def test_should_handle_no_backend(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
219 self.srv.backend = None
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
220 self.assertIsNone(self.srv.rpc_get_completion_location("foo"))
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
221
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
222
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
223 class TestRPCGetDefinition(BackendCallTestCase):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
224 def test_should_call_backend(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
225 self.assert_calls_backend("rpc_get_definition")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
226
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
227 def test_should_handle_no_backend(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
228 self.srv.backend = None
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
229 self.assertIsNone(self.srv.rpc_get_definition("filname", "source",
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
230 "offset"))
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
231
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
232
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
233 class TestRPCGetDocstring(BackendCallTestCase):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
234 def test_should_call_backend(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
235 self.assert_calls_backend("rpc_get_docstring")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
236
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
237 def test_should_handle_no_backend(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
238 self.srv.backend = None
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
239 self.assertIsNone(self.srv.rpc_get_docstring("filname", "source",
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
240 "offset"))
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
241
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
242
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
243 class TestRPCGetPydocCompletions(ServerTestCase):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
244 @mock.patch.object(server, 'get_pydoc_completions')
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
245 def test_should_call_pydoc_completions(self, get_pydoc_completions):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
246 srv = server.ElpyRPCServer()
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
247 srv.rpc_get_pydoc_completions()
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
248 get_pydoc_completions.assert_called_with(None)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
249 srv.rpc_get_pydoc_completions("foo")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
250 get_pydoc_completions.assert_called_with("foo")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
251
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
252
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
253 class TestGetPydocDocumentation(ServerTestCase):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
254 @mock.patch("pydoc.render_doc")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
255 def test_should_find_documentation(self, render_doc):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
256 render_doc.return_value = "expected"
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
257
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
258 actual = self.srv.rpc_get_pydoc_documentation("open")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
259
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
260 render_doc.assert_called_with("open",
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
261 "Elpy Pydoc Documentation for %s",
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
262 False)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
263 self.assertEqual("expected", actual)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
264
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
265 def test_should_return_none_for_unknown_module(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
266 actual = self.srv.rpc_get_pydoc_documentation("frob.open")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
267
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
268 self.assertIsNone(actual)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
269
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
270 def test_should_return_valid_unicode(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
271 import json
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
272
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
273 docstring = self.srv.rpc_get_pydoc_documentation("tarfile")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
274
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
275 json.dumps(docstring)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
276
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
277
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
278 class TestRPCGetRefactorOptions(BackendTestCase):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
279 @mock.patch.object(compat.builtins, '__import__')
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
280 def test_should_fail_if_rope_is_not_available(self, import_):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
281 import_.side_effect = ImportError
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
282 filename = self.project_file("foo.py", "")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
283 srv = server.ElpyRPCServer()
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
284 self.assertRaises(ImportError, srv.rpc_get_refactor_options,
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
285 filename, 0)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
286
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
287 @mock.patch.object(elpy.refactor, 'Refactor')
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
288 def test_should_initialize_and_call_refactor_object(self, Refactor):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
289 filename = self.project_file("foo.py", "import foo")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
290 srv = server.ElpyRPCServer()
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
291 srv.project_root = self.project_root
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
292
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
293 srv.rpc_get_refactor_options(filename, 5)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
294
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
295 Refactor.assert_called_with(self.project_root, filename)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
296 Refactor.return_value.get_refactor_options.assert_called_with(5, None)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
297
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
298
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
299 class TestRPCRefactor(BackendTestCase):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
300 @mock.patch.object(compat.builtins, '__import__')
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
301 def test_should_fail_if_rope_is_not_available(self, import_):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
302 import_.side_effect = ImportError
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
303 filename = self.project_file("foo.py", "")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
304 srv = server.ElpyRPCServer()
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
305 self.assertRaises(ImportError, srv.rpc_refactor,
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
306 filename, 'foo', ())
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
307
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
308 @mock.patch.object(elpy.refactor, 'Refactor')
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
309 def test_should_initialize_and_call_refactor_object_with_args(
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
310 self, Refactor):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
311 filename = self.project_file("foo.py", "import foo")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
312 srv = server.ElpyRPCServer()
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
313 srv.project_root = self.project_root
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
314
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
315 srv.rpc_refactor(filename, 'foo', (1, 2, 3))
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
316
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
317 Refactor.assert_called_with(self.project_root, filename)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
318 Refactor.return_value.get_changes.assert_called_with('foo', 1, 2, 3)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
319
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
320 @mock.patch.object(elpy.refactor, 'Refactor')
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
321 def test_should_initialize_and_call_refactor_object_without_args(
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
322 self, Refactor):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
323 filename = self.project_file("foo.py", "import foo")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
324 srv = server.ElpyRPCServer()
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
325 srv.project_root = self.project_root
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
326
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
327 srv.rpc_refactor(filename, 'foo', None)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
328
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
329 Refactor.assert_called_with(self.project_root, filename)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
330 Refactor.return_value.get_changes.assert_called_with('foo')
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
331
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
332
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
333 class TestRPCGetUsages(BackendCallTestCase):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
334 def test_should_call_backend(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
335 self.assert_calls_backend("rpc_get_usages")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
336
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
337 def test_should_handle_no_backend(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
338 self.srv.backend = None
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
339 with self.assertRaises(rpc.Fault):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
340 self.assertIsNone(self.srv.rpc_get_usages("filname", "source",
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
341 "offset"))
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
342
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
343
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
344 class TestRPCImportMagic(ServerTestCase):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
345 def test_should_call_importmagic(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
346 with mock.patch.object(self.srv, "import_magic") as impmagic:
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
347 self.srv.rpc_get_import_symbols("filename", "source", "os")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
348 impmagic.get_import_symbols.assert_called_with("os")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
349 self.srv.rpc_add_import("filename", "source", "import os")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
350 impmagic.add_import.assert_called_with("source", "import os")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
351 self.srv.rpc_get_unresolved_symbols("filename", "source")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
352 impmagic.get_unresolved_symbols.assert_called_with("source")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
353 self.srv.rpc_remove_unreferenced_imports("filename", "source")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
354 impmagic.remove_unreferenced_imports.assert_called_with("source")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
355
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
356
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
357 class TestGetSource(unittest.TestCase):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
358 def test_should_return_string_by_default(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
359 self.assertEqual(server.get_source("foo"),
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
360 "foo")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
361
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
362 def test_should_return_file_contents(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
363 fd, filename = tempfile.mkstemp(prefix="elpy-test-")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
364 self.addCleanup(os.remove, filename)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
365 with open(filename, "w") as f:
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
366 f.write("file contents")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
367
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
368 fileobj = {'filename': filename}
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
369
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
370 self.assertEqual(server.get_source(fileobj),
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
371 "file contents")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
372
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
373 def test_should_clean_up_tempfile(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
374 fd, filename = tempfile.mkstemp(prefix="elpy-test-")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
375 with open(filename, "w") as f:
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
376 f.write("file contents")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
377
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
378 fileobj = {'filename': filename,
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
379 'delete_after_use': True}
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
380
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
381 self.assertEqual(server.get_source(fileobj),
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
382 "file contents")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
383 self.assertFalse(os.path.exists(filename))
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
384
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
385 def test_should_support_utf8(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
386 fd, filename = tempfile.mkstemp(prefix="elpy-test-")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
387 self.addCleanup(os.remove, filename)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
388 with open(filename, "wb") as f:
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
389 f.write(u"möp".encode("utf-8"))
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
390
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
391 source = server.get_source({'filename': filename})
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
392
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
393 self.assertEqual(source, u"möp")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
394
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
395
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
396 class TestPysymbolKey(BackendTestCase):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
397 def keyLess(self, a, b):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
398 self.assertLess(b, a)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
399 self.assertLess(server._pysymbol_key(a),
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
400 server._pysymbol_key(b))
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
401
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
402 def test_should_be_case_insensitive(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
403 self.keyLess("bar", "Foo")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
404
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
405 def test_should_sort_private_symbols_after_public_symbols(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
406 self.keyLess("foo", "_bar")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
407
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
408 def test_should_sort_private_symbols_after_dunder_symbols(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
409 self.assertLess(server._pysymbol_key("__foo__"),
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
410 server._pysymbol_key("_bar"))
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
411
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
412 def test_should_sort_dunder_symbols_after_public_symbols(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
413 self.keyLess("bar", "__foo")
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
414
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
415
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
416 class Autopep8TestCase(ServerTestCase):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
417
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
418 def test_rpc_fix_code_should_return_formatted_string(self):
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
419 code_block = 'x= 123\n'
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
420 new_block = self.srv.rpc_fix_code(code_block)
55ceabc58fcc elpy: upgrade to 1.12
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
diff changeset
421 self.assertEqual(new_block, 'x = 123\n')