def METHOD_NAME():
    # Mimic a real test runner, for better compat 2.7 / 3.x
    suite = unittest.TestSuite()
    suite.addTest(_CachedTestClassSample("example_test"))
    suite.addTest(_CachedTestClassSample("example_test_2"))
    suite.addTest(_CachedTestClassSample("example_test_3"))
    unittest.TextTestRunner().run(suite)
    assert len(traces) == 5
    assert traces[0] == "create A"
    assert traces[1] == "create B"
    assert traces[2] == "create C"
    assert traces[3] == "create C"
    assert traces[4] == "remove C"  # One of the C's is cached, one is not.
    # Note: unit test runner doesn't trigger the pytest session fixture that deletes resources when all tests are done.
    # let's run that manually now to test it.
    AbstractPreparer._perform_pending_deletes()
    assert len(traces) == 8
    # we're technically relying on an implementation detail (for earlier versions of python
    # dicts did not guarantee ordering by insertion order, later versions do)
    # to order removal by relying on dict ordering.
    assert traces[5] == "remove C"
    assert traces[6] == "remove B"
    assert traces[7] == "remove A"