test_registered.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import dill
  2. from dill._objects import failures, registered, succeeds
  3. import warnings
  4. warnings.filterwarnings('ignore')
  5. def check(d, ok=True):
  6. res = []
  7. for k,v in d.items():
  8. try:
  9. z = dill.copy(v)
  10. if ok: res.append(k)
  11. except:
  12. if not ok: res.append(k)
  13. return res
  14. fails = check(failures)
  15. try:
  16. assert not bool(fails)
  17. except AssertionError as e:
  18. print("FAILS: %s" % fails)
  19. raise e from None
  20. register = check(registered, ok=False)
  21. try:
  22. assert not bool(register)
  23. except AssertionError as e:
  24. print("REGISTER: %s" % register)
  25. raise e from None
  26. success = check(succeeds, ok=False)
  27. try:
  28. assert not bool(success)
  29. except AssertionError as e:
  30. print("SUCCESS: %s" % success)
  31. raise e from None
  32. import builtins
  33. import types
  34. q = dill._dill._reverse_typemap
  35. p = {k:v for k,v in q.items() if k not in vars(builtins) and k not in vars(types)}
  36. diff = set(p.keys()).difference(registered.keys())
  37. try:
  38. assert not bool(diff)
  39. except AssertionError as e:
  40. print("DIFF: %s" % diff)
  41. raise e from None
  42. miss = set(registered.keys()).difference(p.keys())
  43. try:
  44. assert not bool(miss)
  45. except AssertionError as e:
  46. print("MISS: %s" % miss)
  47. raise e from None