message: Ensure `run_all_in_graph_and_eager_modes` works in derived test classes.
  Currently `run_all_in_graph_and_eager_modes` uses `__dict__` which is an
  unreliable list of members. This change uses `dir` which is part of "Public
  Python".
  A consequence of this change is that some TensorFlow Probability (eager-mode only) tests must be temporarily disabled until they are fixed.
diff: @@ -915,11 +915,14 @@ def generate_combinations_with_testcase_name(**kwargs):
  def run_all_in_graph_and_eager_modes(cls):
  """Execute all test methods in the given class with and without eager."""
  base_decorator = run_in_graph_and_eager_modes
  - for name, value in cls.__dict__.copy().items():
  - if callable(value) and name.startswith(
  - unittest.TestLoader.testMethodPrefix) and not (
  + for name in dir(cls):
  + if (not name.startswith(unittest.TestLoader.testMethodPrefix) or
  name.startswith("testSkipEager") or
  - name.startswith("test_skip_eager") or name == "test_session"):
  + name.startswith("test_skip_eager") or
  + name == "test_session"):
  + continue
  + value = getattr(cls, name, None)
  + if callable(value):
  setattr(cls, name, base_decorator(value))
  return cls
  