raise KeyError for unknown keys, and check KeyError in unit tests
only use EnhancedTestCase where actually useful