def _update_package_configure_zcml(configurator): path = '{0}'.format(configurator.variables['package_folder'], ) file_name = u'configure.zcml' match_xpath = "zope:include[@package='.subscribers']" match_str = '-*- extra stuff goes here -*-' insert_str = """ <include package=".subscribers" /> """ update_configure_zcml( configurator, path, file_name=file_name, match_xpath=match_xpath, match_str=match_str, insert_str=insert_str, )
def _update_package_configure_zcml(configurator): path = '{0}'.format( configurator.variables['package_folder'], ) file_name = u'configure.zcml' match_xpath = "include[@package='.api']" match_str = '-*- extra stuff goes here -*-' insert_str = """ <include package=".api" /> """ update_configure_zcml( configurator, path, file_name=file_name, match_xpath=match_xpath, match_str=match_str, insert_str=insert_str, )
def _update_api_configure_zcml(configurator): path = '{0}/api'.format(configurator.variables['package_folder'], ) file_name = u'configure.zcml' example_file_name = '{0}.example'.format(file_name) match_xpath = "zope:include[@package='.services']" match_str = '-*- extra stuff goes here -*-' insert_str = """ <include package=".services" /> """ update_configure_zcml( configurator, path, file_name=file_name, example_file_name=example_file_name, match_xpath=match_xpath, match_str=match_str, insert_str=insert_str, )
def _update_indexers_configure_zcml(configurator): path = '{0}/indexers'.format(configurator.variables['package_folder'], ) file_name = u'configure.zcml' example_file_name = '{0}.example'.format(file_name) match_xpath = "zope:include[@package='.{0}']".format( configurator.variables['indexer_name']) match_str = '-*- extra stuff goes here -*-' insert_str = """ <include file="{0}.zcml" /> """.format(configurator.variables['indexer_name']) update_configure_zcml( configurator, path, file_name=file_name, example_file_name=example_file_name, match_xpath=match_xpath, match_str=match_str, insert_str=insert_str, )
def _update_services_configure_zcml(configurator): path = '{0}/api/services'.format( configurator.variables['package_folder'], ) file_name = u'configure.zcml' example_file_name = '{0}.example'.format(file_name) match_xpath = "zope:include[@package='.{0}']".format( configurator.variables['service_class_name_normalized'], ) match_str = '-*- extra stuff goes here -*-' insert_str = '<include package=".{0}" />\n'.format( configurator.variables['service_class_name_normalized'], ) update_configure_zcml( configurator, path, file_name=file_name, example_file_name=example_file_name, match_xpath=match_xpath, match_str=match_str, insert_str=insert_str, )
def _update_upgrades_configure_zcml(configurator): path = '{0}/upgrades'.format(configurator.variables['package_folder'], ) file_name = u'configure.zcml' example_file_name = '{0}.example'.format(file_name) zcml_package_name = configurator.variables['upgrade_step_dest_version'] match_xpath = "zope:include[@file='{0}.zcml']".format(zcml_package_name) match_str = '-*- extra stuff goes here -*-' insert_str = """ <include file="{0}.zcml" /> """.format(zcml_package_name) update_configure_zcml( configurator, path, file_name=file_name, example_file_name=example_file_name, match_xpath=match_xpath, match_str=match_str, insert_str=insert_str, )
def _update_api_configure_zcml(configurator): path = '{0}/api'.format( configurator.variables['package_folder'], ) file_name = u'configure.zcml' example_file_name = '{0}.example'.format(file_name) match_xpath = "include[@package='.services']" match_str = '-*- extra stuff goes here -*-' insert_str = """ <include package=".services" /> """ update_configure_zcml( configurator, path, file_name=file_name, example_file_name=example_file_name, match_xpath=match_xpath, match_str=match_str, insert_str=insert_str, )
def _update_subscribers_configure_zcml(configurator): path = '{0}/subscribers'.format(configurator.variables['package_folder'], ) file_name = u'configure.zcml' example_file_name = '{0}.example'.format(file_name) match_xpath = "zope:subscriber[@handler='.{0}.handler']".format( configurator.variables['subscriber_handler_file_name'], ) match_str = '-*- extra stuff goes here -*-' insert_str = """ <subscriber for="plone.dexterity.interfaces.IDexterityContent zope.lifecycleevent.interfaces.IObjectModifiedEvent" handler=".{0}.handler" /> """.format(configurator.variables['subscriber_handler_file_name'], ) update_configure_zcml( configurator, path, file_name=file_name, example_file_name=example_file_name, match_xpath=match_xpath, match_str=match_str, insert_str=insert_str, )
def _update_services_configure_zcml(configurator): path = '{0}/api/services'.format( configurator.variables['package_folder'], ) file_name = u'configure.zcml' example_file_name = '{0}.example'.format(file_name) match_xpath = "include[@package='.{0}']".format( configurator.variables['service_class_name_normalized'], ) match_str = '-*- extra stuff goes here -*-' insert_str = '<include package=".{0}" />\n'.format( configurator.variables['service_class_name_normalized'], ) update_configure_zcml( configurator, path, file_name=file_name, example_file_name=example_file_name, match_xpath=match_xpath, match_str=match_str, insert_str=insert_str, )
def test_update_configure_zcml(tmpdir): file_name = u"configure.zcml" path = tmpdir.strpath file_path = path + "/" + file_name match_xpath = u"zope:include[@package='.indexers']" match_str = u"-*- extra stuff goes here -*-" insert_str = u'\n <include package=".indexers" />' template = """ <configure xmlns="http://namespaces.zope.org/zope" xmlns:genericsetup="http://namespaces.zope.org/genericsetup" xmlns:i18n="http://namespaces.zope.org/i18n" xmlns:plone="http://namespaces.plone.org/plone" i18n_domain="bob.indexer"> <i18n:registerTranslations directory="locales" /> <!-- Be careful if you use general includeDependencies, it can have sideffects! Better import explicite packages or configurations ;) --> <!--<includeDependencies package="." />--> <include package=".browser" /> <include file="permissions.zcml" /> <include file="upgrades.zcml" /> <genericsetup:registerProfile name="default" title="bob.indexer" directory="profiles/default" description="Installs the bob.indexer add-on." provides="Products.GenericSetup.interfaces.EXTENSION" post_handler=".setuphandlers.post_install" /> <genericsetup:registerProfile name="uninstall" title="bob.indexer (uninstall)" directory="profiles/uninstall" description="Uninstalls the bob.indexer add-on." provides="Products.GenericSetup.interfaces.EXTENSION" post_handler=".setuphandlers.uninstall" /> <utility factory=".setuphandlers.HiddenProfiles" name="bob.indexer-hiddenprofiles" /> <!-- -*- extra stuff goes here -*- --> </configure> """ with open(os.path.join(path, file_name), "w") as f: f.write(template) print(file_path) base.update_configure_zcml( None, path, file_name=file_name, match_xpath=match_xpath, match_str=match_str, insert_str=insert_str, ) base.update_configure_zcml( None, path, file_name=file_name, match_xpath=match_xpath, match_str=match_str, insert_str=insert_str, ) # assert base.is_string_in_file(None, file_path, insert_str) is True # make sure we only have the string once: with open(file_path, "r+") as xml_file: contents = xml_file.readlines() count = 0 for index, line in enumerate(contents): if insert_str.strip() in line: count += 1 assert count == 1