Export / Import
===============
XML Adapters to be used within GenericSetup profiles.

    >>> from zope.app import zapi
    >>> from Products.GenericSetup.interfaces import IBody
    >>> from Products.GenericSetup.testing import DummySetupEnviron
    >>> from Products.CMFCore.utils import getToolByName

Exporter

    >>> ftool = getToolByName(portal, 'portal_faceted')
    >>> exporter = importer = zapi.queryMultiAdapter((ftool, DummySetupEnviron()), IBody)
    >>> exporter
    <eea.faceted.tool.exportimport.tool.FacetedToolXMLAdapter object at ...>

See default faceted portal types

    >>> print exporter.body
    <?xml version="1.0" encoding="utf-8"?>
    <object name="portal_faceted" meta_type="EEA Faceted Tool">
     <portal_type name="Report">
      <property name="title">Publication</property>
      <property name="search_type">Folder</property>
      <property name="search_interface">eea.reports.interfaces.IReportContainerEnhanced</property>
     </portal_type>
    </object>
    <BLANKLINE>

Purge all portal types

    >>> importer.body = '''<?xml version="1.0"?>
    ... <object name="portal_faceted" purge="True" />
    ... '''
    >>> print exporter.body
     <?xml version="1.0" encoding="utf-8"?>
    <object name="portal_faceted" meta_type="EEA Faceted Tool"/>
    <BLANKLINE>

Import some data

    >>> importer.body = '''<?xml version="1.0" encoding="utf-8"?>
    ... <object name="portal_faceted" meta_type="EEA Faceted Tool">
    ...  <portal_type name="Test Faceted 1">
    ...   <property name="title">Test Faceted 1</property>
    ...   <property name="search_type">Folder</property>
    ...   <property name="search_interface">some.interface</property>
    ...  </portal_type>
    ...  <portal_type name="Test Faceted 2">
    ...   <property name="title">Test Faceted 2</property>
    ...   <property name="search_type">Document</property>
    ...   <property name="search_interface">some.other.interface</property>
    ...  </portal_type>
    ... </object>
    ... '''

    >>> print exporter.body
    <?xml version="1.0" encoding="utf-8"?>
    <object name="portal_faceted" meta_type="EEA Faceted Tool">
     <portal_type name="Test Faceted 1">
      <property name="title">Test Faceted 1</property>
      <property name="search_type">Folder</property>
      <property name="search_interface">some.interface</property>
     </portal_type>
     <portal_type name="Test Faceted 2">
      <property name="title">Test Faceted 2</property>
      <property name="search_type">Document</property>
      <property name="search_interface">some.other.interface</property>
     </portal_type>
    </object>
    <BLANKLINE>

Purge portal type

    >>> importer.body = '''<?xml version="1.0" encoding="utf-8"?>
    ... <object name="portal_faceted" meta_type="EEA Faceted Tool">
    ...  <portal_type name="Test Faceted 1" purge="True" />
    ... </object>
    ... '''

    >>> print exporter.body
    <?xml version="1.0" encoding="utf-8"?>
    <object name="portal_faceted" meta_type="EEA Faceted Tool">
     <portal_type name="Test Faceted 2">
      <property name="title">Test Faceted 2</property>
      <property name="search_type">Document</property>
      <property name="search_interface">some.other.interface</property>
     </portal_type>
    </object>
    <BLANKLINE>

Purge properties

    >>> importer.body = '''<?xml version="1.0" encoding="utf-8"?>
    ... <object name="portal_faceted" meta_type="EEA Faceted Tool">
    ...  <portal_type name="Test Faceted 2">
    ...   <property name="title">Test Faceted 2</property>
    ...   <property name="search_type" purge="True" />
    ...   <property name="search_interface" purge="True" />
    ...  </portal_type>
    ... </object>
    ... '''

    >>> print exporter.body
    <?xml version="1.0" encoding="utf-8"?>
    <object name="portal_faceted" meta_type="EEA Faceted Tool">
     <portal_type name="Test Faceted 2">
      <property name="title">Test Faceted 2</property>
      <property name="search_type"></property>
      <property name="search_interface"></property>
     </portal_type>
    </object>
    <BLANKLINE>
