class GenConf(object): def __init__(self, manifest_path, overrides_path, templatedir, targetdir, ): self._manifest_path = manifest_path self._overrides_path = overrides_path self._template_loader = TemplateLoader([templatedir]) self._file_generator = FileGenerator(self._template_loader, targetdir) self._manifest_parser = ManifestParser() self._overrides_parser = ManifestOverridesParser() def generate(self, error_listener=DefaultGenConfErrorListener(), event_listener=DefaultGenConfEventListener()): overrides = self._parse_overrides(error_listener, event_listener) with codecs.open(self._manifest_path, 'rb', 'utf-8') as f: try: manifest = self._manifest_parser.parse(f, overrides) event_listener.on_manifest_parsed(self._manifest_path, manifest) self._file_generator.generate_files(manifest, error_listener, event_listener) except ManifestParsingError, e: error_listener.on_manifest_parsing_error(self._manifest_path, e)
class ManifestParsingTestCase(unittest.TestCase): def setUp(self): unittest.TestCase.setUp(self) self.parser = ManifestParser() self.manifest = self.parser.parse(samples.simple_manifest_stream) def test_should_parse_simple_manifest(self): assert len(self.manifest.profiles) == 2 def test_should_create_development_profile(self): development_profile = self.manifest.profile("development") assert development_profile.is_abstract == False assert len(development_profile.properties) == 3 + NUMBER_OF_AUTO_GENERATED_PROPERTIES assert len(development_profile._extends) == 1 assert development_profile._extends[0] == self.manifest.profile("all") assert len(development_profile.output_files) == 3 def test_should_create_all_profile(self): all_profile = self.manifest.profile("all") assert all_profile.is_abstract == True assert len(all_profile.properties) == 2 + NUMBER_OF_AUTO_GENERATED_PROPERTIES assert len(all_profile._extends) == 0
class ManifestParsingTestCase(unittest.TestCase): def setUp(self): unittest.TestCase.setUp(self) self.parser = ManifestParser() self.manifest = self.parser.parse(samples.simple_manifest_stream) def test_should_parse_simple_manifest(self): assert len(self.manifest.profiles) == 2 def test_should_create_development_profile(self): development_profile = self.manifest.profile("development") assert development_profile.is_abstract == False assert len(development_profile.properties ) == 3 + NUMBER_OF_AUTO_GENERATED_PROPERTIES assert len(development_profile._extends) == 1 assert development_profile._extends[0] == self.manifest.profile("all") assert len(development_profile.output_files) == 3 def test_should_create_all_profile(self): all_profile = self.manifest.profile("all") assert all_profile.is_abstract == True assert len( all_profile.properties) == 2 + NUMBER_OF_AUTO_GENERATED_PROPERTIES assert len(all_profile._extends) == 0