--- moin-1.6.orig/MoinMoin/_tests/test_packages.py	2007-12-01 02:09:09.000000000 +0200
+++ /usr/local/lib/python2.5/site-packages/MoinMoin/_tests/test_packages.py	2007-12-09 14:25:03.000000000 +0200
@@ -2,21 +2,26 @@
 """
     MoinMoin - MoinMoin.packages tests
 
-    @copyright: 2005 MoinMoin:AlexanderSchremmer
+    @copyright: 2005 MoinMoin:AlexanderSchremmer,
+                2007 Federico Lorenzi
     @license: GNU GPL, see COPYING for details.
 """
 
-
+import tempfile
 import py
+import zipfile
 
+from MoinMoin import wikiutil
 from MoinMoin.Page import Page
 from MoinMoin.PageEditor import PageEditor
+from MoinMoin.action.PackagePages import PackagePages
 from MoinMoin.packages import Package, ScriptEngine, MOIN_PACKAGE_FILE, packLine, unpackLine
 from MoinMoin._tests.common import gain_superuser_rights
 
 
 class DebugPackage(Package, ScriptEngine):
     """ Used for debugging, does not need a real .zip file. """
+
     def __init__(self, request, filename, script=None):
         Package.__init__(self, request)
         ScriptEngine.__init__(self)
@@ -52,20 +57,17 @@
     """ Tests various things in the packages package. Note that this package does
         not care to clean up and needs to run in a test wiki because of that. """
 
-
     def setup_class(self):
         py.test.skip("Test broken")
         if not getattr(self.request.cfg, 'is_test_wiki', False):
             py.test.skip('This test needs to be run using the test wiki.')
 
-
     def teardown_class(self):
         py.test.skip("Test broken")
         DebugPackage(self.request, u"""moinmoinpackage|1
 DeletePage|FooPage|Test ...
 """).installPackage()
 
-
     def testBasicPackageThings(self):
         py.test.skip("Test broken")
         gain_superuser_rights(self.request)
@@ -78,9 +80,40 @@
 
 
 class TestQuoting:
+
     def testQuoting(self):
-        for line in ([':foo', 'is\\', 'ja|', u't|ü', u'baAzß'], [], ['', '']):
+        for line in ([':foo', 'is\\', 'ja|', u't|ï¿½', u'baAzï¿½'], [], ['', '']):
             assert line == unpackLine(packLine(line))
 
-coverage_modules = ['MoinMoin.packages']
 
+class TestRealCreation:
+
+    def testSearchCreate(self):
+        package = PackagePages(self.request.rootpage.page_name, self.request)
+        temp = tempfile.NamedTemporaryFile(suffix='.zip')
+        package.collectpackage(package.searchpackage(self.request, "Category"), temp)
+        assert zipfile.is_zipfile(temp.name)
+
+    def testListCreate(self):
+        package = PackagePages(self.request.rootpage.page_name, self.request)
+        temp = tempfile.NamedTemporaryFile(suffix='.zip')
+        package.collectpackage(['FrontPage'], temp)
+        assert zipfile.is_zipfile(temp.name)
+
+    def testAllCreate(self):
+        package = PackagePages(self.request.rootpage.page_name, self.request)
+        temp = tempfile.NamedTemporaryFile(suffix='.zip')
+        package.collectpackage(self.request.rootpage.getPageList(
+                                include_underlay=False, 
+                                filter=lambda name: not wikiutil.isSystemPage(self.request, name)), 
+                                temp)
+        if package:
+            py.test.skip("No user created pages in wiki!")
+        assert zipfile.is_zipfile(temp.name)
+
+    def testInvalidCreate(self):
+        package = PackagePages(self.request.rootpage.page_name, self.request)
+        temp = tempfile.NamedTemporaryFile(suffix='.zip')
+        package.collectpackage(['___//THIS PAGE SHOULD NOT EXIST\\___'], temp)
+        assert not zipfile.is_zipfile(temp.name)
+coverage_modules = ['MoinMoin.packages']
