source: products/quintagroup.transmogrifier/trunk/quintagroup/transmogrifier/portlets.txt @ 1588

Last change on this file since 1588 was 1588, checked in by mylan, 10 years ago

Added tests of blacklists migration in importing/exporting portlets

File size: 3.9 KB
Line 
1Portlets exporter and importer sections
2=======================================
3
4Portlets exporter and importer sections are used to migrate Plone 3 contextual
5portlet assignments and blacklist settings.
6The portlets exporter section blueprint name is
7``quintagroup.transmogrifier.portletsexporter`` and importer section blueprint
8name is ``quintagroup.transmogrifier.portletsimporter``.
9
10Portlet assignments and blacklists are stored in XML format. Both sections need
11relative path to the object with portlets assigned and importer also needs XML
12data for updating them.
13
14Both sections has ``path-key`` option which specifies key in item where path to
15object is stored (``_path`` is default) and ``files-key`` option that gives
16key where XML data will be or is stored.
17
18>>> import pprint
19>>> portlets = """
20... [transmogrifier]
21... pipeline =
22...     portletssource
23...     portletsexporter
24...     printer
25...     dataprinter
26...     portletsimporter
27...     
28... [portletssource]
29... blueprint = quintagroup.transmogrifier.tests.portletssource
30...
31... [portletsexporter]
32... blueprint = quintagroup.transmogrifier.portletsexporter
33...
34... [printer]
35... blueprint = collective.transmogrifier.sections.tests.pprinter
36...
37... [dataprinter]
38... blueprint = quintagroup.transmogrifier.tests.dataprinter
39... print =
40...     _files
41...     portlets
42...     data
43...
44... [portletsimporter]
45... blueprint = quintagroup.transmogrifier.portletsimporter
46... files-key = files
47... """
48>>> registerConfig(u'quintagroup.transmogrifier.tests.portlets', portlets)
49>>> transmogrifier(u'quintagroup.transmogrifier.tests.portlets') # doctest: +ELLIPSIS, +REPORT_NDIFF
50{}
51{'_path': 'not/existing/bar'}
52{'_path': 'spam/eggs/notassignable'}
53{'_files': {'portlets': {'data': ...
54                         'name': '.portlets.xml'}},
55 '_path': 'assignable'}
56<?xml version="1.0" encoding="utf-8"?>
57<portlets>
58  <assignment category="context" key="/assignable" manager="plone.leftcolumn" name="rss" type="portlets.rss">
59    <property name="count">
60      10
61    </property>
62    <property name="url">
63      http://sumno.com/feeds/main-page/
64    </property>
65    <property name="portlet_title">
66      RSS feed
67    </property>
68    <property name="timeout">
69      60
70    </property>
71  </assignment>
72  <blacklist category="user" manager="plone.leftcolumn" status="block"/>
73  <blacklist category="group" manager="plone.leftcolumn" status="acquire"/>
74  <blacklist category="content_type" manager="plone.leftcolumn" status="acquire"/>
75  <blacklist category="context" manager="plone.leftcolumn" status="acquire"/>
76</portlets>
77<BLANKLINE>
78{'_files': {'portlets': {'data': ...
79                         'name': '.portlets.xml'}},
80 '_path': 'other-assignable',
81 'files': {'portlets': {'data': ...
82                        'name': '.portlets.xml'}}}
83<?xml version="1.0" encoding="utf-8"?>
84<portlets>
85  <assignment category="context" key="/other-assignable" manager="plone.leftcolumn" name="rss" type="portlets.rss">
86    <property name="count">
87      10
88    </property>
89    <property name="url">
90      http://sumno.com/feeds/main-page/
91    </property>
92    <property name="portlet_title">
93      RSS feed
94    </property>
95    <property name="timeout">
96      60
97    </property>
98  </assignment>
99  <blacklist category="user" manager="plone.leftcolumn" status="block"/>
100  <blacklist category="group" manager="plone.leftcolumn" status="acquire"/>
101  <blacklist category="content_type" manager="plone.leftcolumn" status="acquire"/>
102  <blacklist category="context" manager="plone.leftcolumn" status="acquire"/>
103</portlets>
104<BLANKLINE>
105
106>>> 'habra-rss' in mapping
107True
108>>> mapping['habra-rss'].count
10920
110>>> mapping['habra-rss'].url
111u'http://habrahabr.ru/rss/'
112>>> mapping['habra-rss'].portlet_title
113u'Habrahabr RSS feed'
114>>> mapping['habra-rss'].timeout
115120
116>>> 'rss' in mapping
117True
118>>> mapping['rss'].count
11910
120>>> mapping['rss'].url
121u'http://sumno.com/feeds/main-page/'
122>>> mapping['rss'].portlet_title
123u'RSS feed'
124>>> mapping['rss'].timeout
12560
Note: See TracBrowser for help on using the repository browser.