##// END OF EJS Templates
add tests
Matthias Bussonnier -
Show More
@@ -151,6 +151,59 b' class TestAutoreload(Fixture):'
151 151 with tt.AssertNotPrints(('[autoreload of %s failed:' % mod_name), channel='stderr'):
152 152 self.shell.run_code("pass") # trigger another reload
153 153
154 def test_reload_class_attributes(self):
155 self.shell.magic_autoreload("2")
156 mod_name, mod_fn = self.new_module(textwrap.dedent("""
157 class MyClass:
158
159 def __init__(self, a=10):
160 self.a = a
161 self.b = 22
162 # self.toto = 33
163
164 def square(self):
165 print('compute square')
166 return self.a*self.a
167 """))
168 self.shell.run_code("from %s import MyClass" % mod_name)
169 self.shell.run_code("c = MyClass(5)")
170 self.shell.run_code("c.square()")
171 with nt.assert_raises(AttributeError):
172 self.shell.run_code("c.cube()")
173 with nt.assert_raises(AttributeError):
174 self.shell.run_code("c.power(5)")
175 self.shell.run_code("c.b")
176 with nt.assert_raises(AttributeError):
177 self.shell.run_code("c.toto")
178
179
180 self.write_file(mod_fn, textwrap.dedent("""
181 class MyClass:
182
183 def __init__(self, a=10):
184 self.a = a
185 self.b = 11
186
187 def power(self, p):
188 print('compute power '+str(p))
189 return self.a**p
190 """))
191
192 self.shell.run_code("d = MyClass(5)")
193 self.shell.run_code("d.power(5)")
194 with nt.assert_raises(AttributeError):
195 self.shell.run_code("c.cube()")
196 with nt.assert_raises(AttributeError):
197 self.shell.run_code("c.square(5)")
198 self.shell.run_code("c.b")
199 self.shell.run_code("c.a")
200 with nt.assert_raises(AttributeError):
201 self.shell.run_code("c.toto")
202
203
204
205
206
154 207
155 208 def _check_smoketest(self, use_aimport=True):
156 209 """
@@ -340,3 +393,7 b' x = -99'
340 393
341 394 def test_smoketest_autoreload(self):
342 395 self._check_smoketest(use_aimport=False)
396
397
398
399
@@ -386,6 +386,12 b' def run_iptest():'
386 386 monkeypatch_xunit()
387 387
388 388 arg1 = sys.argv[1]
389 if arg1.startswith('IPython/'):
390 if arg1.endswith('.py'):
391 arg1 = arg1[:-3]
392 sys.argv[1] = arg1.replace('/', '.')
393
394 arg1 = sys.argv[1]
389 395 if arg1 in test_sections:
390 396 section = test_sections[arg1]
391 397 sys.argv[1:2] = section.includes
General Comments 0
You need to be logged in to leave comments. Login now