test_storemagic.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import tempfile, os
  2. from traitlets.config.loader import Config
  3. import nose.tools as nt
  4. ip = get_ipython()
  5. ip.magic('load_ext storemagic')
  6. def test_store_restore():
  7. ip.user_ns['foo'] = 78
  8. ip.magic('alias bar echo "hello"')
  9. tmpd = tempfile.mkdtemp()
  10. ip.magic('cd ' + tmpd)
  11. ip.magic('store foo')
  12. ip.magic('store bar')
  13. # Check storing
  14. nt.assert_equal(ip.db['autorestore/foo'], 78)
  15. nt.assert_in('bar', ip.db['stored_aliases'])
  16. # Remove those items
  17. ip.user_ns.pop('foo', None)
  18. ip.alias_manager.undefine_alias('bar')
  19. ip.magic('cd -')
  20. ip.user_ns['_dh'][:] = []
  21. # Check restoring
  22. ip.magic('store -r')
  23. nt.assert_equal(ip.user_ns['foo'], 78)
  24. assert ip.alias_manager.is_alias('bar')
  25. nt.assert_in(os.path.realpath(tmpd), ip.user_ns['_dh'])
  26. os.rmdir(tmpd)
  27. def test_autorestore():
  28. ip.user_ns['foo'] = 95
  29. ip.magic('store foo')
  30. del ip.user_ns['foo']
  31. c = Config()
  32. c.StoreMagics.autorestore = False
  33. orig_config = ip.config
  34. try:
  35. ip.config = c
  36. ip.extension_manager.reload_extension('storemagic')
  37. nt.assert_not_in('foo', ip.user_ns)
  38. c.StoreMagics.autorestore = True
  39. ip.extension_manager.reload_extension('storemagic')
  40. nt.assert_equal(ip.user_ns['foo'], 95)
  41. finally:
  42. ip.config = orig_config