def test_load_extensions_fails_on_repeated_extension(self): register_extensions('mock')(MockParser) extensions = {} cabinets.plugins.load_to_cache(MockParser, extensions, cabinets.Parser) with self.assertRaises(cabinets.plugins.CabinetsPluginError): cabinets.plugins.load_to_cache(MockParser, extensions, cabinets.Parser)
def test_load_extensions(self): register_extensions('mock')(MockParser) extensions = {} cabinets.plugins.load_to_cache(MockParser, extensions, cabinets.Parser) self.assertDictEqual(extensions, {'mock': MockParser})
def test_register_extensions_fails_on_attempt_to_register_instance(self): with self.assertRaises(ParserError) as err: register_extensions('mock')(42) self.assertIn('must be a class', str(err.exception))
def test_register_extensions_fails_on_cabinet_subclass_check(self): with self.assertRaises(ParserError) as err: register_extensions('mock')(MockCabinet) self.assertIn('not a subclass', str(err.exception))
def test_register_extensions_fails_on_double_register(self): with self.assertRaises(ParserError): _ = register_extensions('mock')(MockParser) _ = register_extensions('mock')(MockParser)
def test_register_extensions_succeeds(self): cls = register_extensions('mock')(MockParser) self.assertIs(cls, MockParser) self.assertIn('mock', MockParser._extensions)