コード例 #1
0
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,
    )
コード例 #2
0
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,
    )
コード例 #3
0
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,
    )
コード例 #4
0
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,
    )
コード例 #5
0
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,
    )
コード例 #6
0
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,
    )
コード例 #7
0
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,
    )
コード例 #8
0
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,
    )
コード例 #9
0
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,
    )
コード例 #10
0
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