@@ -195,6 +195,44 @@ def testReadWriteXml(self):
195
195
names = [c .name () for c in manager2 .compositions ()]
196
196
self .assertEqual (set (names ), {'test composition' , 'test composition2' , 'test composition3' })
197
197
198
+ def testSaveAsTemplate (self ):
199
+ """
200
+ Test saving composition as template
201
+ """
202
+ project = QgsProject ()
203
+ manager = QgsLayoutManager (project )
204
+ doc = QDomDocument ("testdoc" )
205
+ self .assertFalse (manager .saveAsTemplate ('not in manager' , doc ))
206
+
207
+ composition = QgsComposition (project )
208
+ composition .setName ('test composition' )
209
+ manager .addComposition (composition )
210
+ self .assertTrue (manager .saveAsTemplate ('test composition' , doc ))
211
+
212
+ def testDuplicateComposition (self ):
213
+ """
214
+ Test duplicating compositions
215
+ """
216
+ project = QgsProject ()
217
+ manager = QgsLayoutManager (project )
218
+ doc = QDomDocument ("testdoc" )
219
+ self .assertFalse (manager .duplicateComposition ('not in manager' , 'dest' ))
220
+
221
+ composition = QgsComposition (project )
222
+ composition .setName ('test composition' )
223
+ composition .setPaperSize (100 , 200 )
224
+ manager .addComposition (composition )
225
+ # duplicate name
226
+ self .assertFalse (manager .duplicateComposition ('test composition' , 'test composition' ))
227
+
228
+ result = manager .duplicateComposition ('test composition' , 'dupe composition' )
229
+ self .assertTrue (result )
230
+ # make sure result in stored in manager
231
+ self .assertEqual (result , manager .compositionByName ('dupe composition' ))
232
+ self .assertEqual (result .name (), 'dupe composition' )
233
+ self .assertEqual (result .paperHeight (), 200 )
234
+ self .assertEqual (result .paperWidth (), 100 )
235
+
198
236
199
237
if __name__ == '__main__' :
200
238
unittest .main ()
0 commit comments