310_modulereload.py 805 B

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