310_modulereload.py 855 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. print('sandbox mode, module is disabled')
  2. exit()
  3. try:
  4. import os
  5. except ImportError:
  6. exit(0)
  7. import importlib
  8. os.chdir('tests')
  9. assert os.getcwd().endswith('tests')
  10. # test
  11. os.environ['TEST_RELOAD_VALUE'] = '123'
  12. os.environ['SET_X'] = '1'
  13. os.environ['SET_Y'] = '0'
  14. from testreload import MyClass, a
  15. objid = id(MyClass)
  16. funcid = id(MyClass.some_func)
  17. getxyid = id(MyClass.get_xy)
  18. assert MyClass.value == '123'
  19. assert MyClass.get_xy() == (1, 0)
  20. inst = MyClass()
  21. assert inst.some_func() == '123'
  22. # reload
  23. os.environ['TEST_RELOAD_VALUE'] = '456'
  24. os.environ['SET_X'] = '0'
  25. os.environ['SET_Y'] = '1'
  26. importlib.reload(a)
  27. assert id(MyClass) == objid
  28. assert id(MyClass.some_func) != funcid
  29. assert id(MyClass.get_xy) != getxyid
  30. assert MyClass.value == '456'
  31. assert inst.some_func() == '456'
  32. assert (MyClass.get_xy() == (1, 1)), MyClass.get_xy()