[Checkins] SVN: zopyx.smartprintng.server/trunk/ merged

Andreas Jung andreas at andreas-jung.com
Thu Jul 23 13:31:23 EDT 2009


Log message for revision 102163:
  merged
  

Changed:
  U   zopyx.smartprintng.server/trunk/README.txt
  U   zopyx.smartprintng.server/trunk/docs/HISTORY.txt
  U   zopyx.smartprintng.server/trunk/setup.py
  U   zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/base.py
  U   zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/configure.zcml
  U   zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/logger.py
  A   zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/test_data/
  U   zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/tests.py
  U   zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/views.py

-=-
Modified: zopyx.smartprintng.server/trunk/README.txt
===================================================================
--- zopyx.smartprintng.server/trunk/README.txt	2009-07-23 17:21:49 UTC (rev 102162)
+++ zopyx.smartprintng.server/trunk/README.txt	2009-07-23 17:31:22 UTC (rev 102163)
@@ -6,6 +6,11 @@
 The SmartPrintNG server is part of the SmartPrintNG web-to-print solution
 of ZOPYX.
 
+Requirements
+============
+
+* Python 2.6 (no Python 3 support)
+
 Installation
 ============
 

Modified: zopyx.smartprintng.server/trunk/docs/HISTORY.txt
===================================================================
--- zopyx.smartprintng.server/trunk/docs/HISTORY.txt	2009-07-23 17:21:49 UTC (rev 102162)
+++ zopyx.smartprintng.server/trunk/docs/HISTORY.txt	2009-07-23 17:31:22 UTC (rev 102163)
@@ -1,6 +1,18 @@
 Changelog
 =========
 
+0.5.0 (unreleased)
+------------------
+
+* now requires Python 2.6
+
+
+0.4.3 (2009/07/22)
+------------------
+
+* removed most of the ZCML configuration
+* tests, tests, tests
+ 
 0.4.2 (2009/07/19)
 ------------------
 

Modified: zopyx.smartprintng.server/trunk/setup.py
===================================================================
--- zopyx.smartprintng.server/trunk/setup.py	2009-07-23 17:21:49 UTC (rev 102162)
+++ zopyx.smartprintng.server/trunk/setup.py	2009-07-23 17:31:22 UTC (rev 102163)
@@ -1,7 +1,7 @@
 from setuptools import setup, find_packages
 import os
 
-version = '0.4.2.2'
+version = '0.5.0'
 
 setup(name='zopyx.smartprintng.server',
       version=version,
@@ -29,9 +29,10 @@
           'zopyx.convert2',
           'zope.sendmail',
           'transaction',
-          'nose',
           # -*- Extra requirements: -*-
       ],
+      test_suite='nose.collector',
+      tests_require=('nose',),
       entry_points="""\
       [paste.app_factory]
       app = zopyx.smartprintng.server.run:app

Modified: zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/base.py
===================================================================
--- zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/base.py	2009-07-23 17:21:49 UTC (rev 102162)
+++ zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/base.py	2009-07-23 17:31:22 UTC (rev 102163)
@@ -80,7 +80,6 @@
         ZF = zipfile.ZipFile(zip_out, 'w')
         ZF.writestr('output%s' % ext, file(result, 'rb').read())
         ZF.close()
-
         return zip_out, result
 
     def convertZIP(self, zip_archive, converter_name='pdf-prince'):

Modified: zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/configure.zcml
===================================================================
--- zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/configure.zcml	2009-07-23 17:21:49 UTC (rev 102162)
+++ zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/configure.zcml	2009-07-23 17:31:22 UTC (rev 102163)
@@ -4,38 +4,10 @@
   <!-- this must be included for the view declarations to work -->
   <include package="repoze.bfg.includes" />
 
-  <view
-     for=".models.Server"
-     view=".views.index"
-     />
+  <scan package="."/>
 
   <view
      for=".models.Server"
-     view=".views.convertZIP"
-     name="convertZIP"
-     /> 
-
-  <view
-     for=".models.Server"
-     view=".views.convertZIPEmail"
-     name="convertZIPEmail"
-     /> 
-
-  <view
-     for=".models.Server"
-     view=".views.availableConverters"
-     name="availableConverters"
-     /> 
-
-  <view
-     for=".models.Server"
-     view=".views.ping"
-     name="ping"
-     /> 
-
-
-  <view
-     for=".models.Server"
      view=".views.static_view"
      name="static"
      />

Modified: zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/logger.py
===================================================================
--- zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/logger.py	2009-07-23 17:21:49 UTC (rev 102162)
+++ zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/logger.py	2009-07-23 17:31:22 UTC (rev 102163)
@@ -16,7 +16,7 @@
     formatter = logging.Formatter('%(asctime)s %(levelname)-6s %(message)s', '%d.%m.%y %H:%M:%S')
     hdlr.setFormatter(formatter)
     logger.addHandler(hdlr)
-    logger.addHandler(logging.StreamHandler())  
+    logger.addHandler(logging.StreamHandler())
     logger.setLevel(getattr(logging, level))
     return logger
 

Modified: zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/tests.py
===================================================================
--- zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/tests.py	2009-07-23 17:21:49 UTC (rev 102162)
+++ zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/tests.py	2009-07-23 17:31:22 UTC (rev 102163)
@@ -1,7 +1,28 @@
+##########################################################################
+# zopyx.smartprintng.server
+# (C) 2008, 2009, ZOPYX Ltd & Co. KG, Tuebingen, Germany
+##########################################################################
+
+import os
+import base64
+import xmlrpclib
 import unittest
-
+import zipfile
+import tempfile
 from repoze.bfg import testing
 
+xml = """<?xml version="1.0"?>
+<methodCall>
+   <methodName>ping</methodName>
+</methodCall>
+"""
+xml2 = """<?xml version="1.0"?>
+<methodCall>
+   <methodName>convertZIP</methodName>
+    %s
+</methodCall>
+"""
+
 class ViewTests(unittest.TestCase):
 
     """ These tests are unit tests for the view.  They test the
@@ -14,21 +35,22 @@
         between tests (done in setUp for good measure too)
         """
         testing.cleanUp()
-        
+
     def tearDown(self):
         """ cleanUp() is required to clear out the application registry
         between tests
         """
         testing.cleanUp()
 
-    def test_my_view(self):
+    def test_index(self):
         from zopyx.smartprintng.server.views import index
         context = testing.DummyModel()
         request = testing.DummyRequest()
         renderer = testing.registerDummyRenderer('templates/index.pt')
         response = index(context, request)
-        renderer.assert_(project='my_server')
+        renderer.assert_(project='zopyx.smartprintng.server')
 
+
 class ViewIntegrationTests(unittest.TestCase):
     """ These tests are integration tests for the view.  These test
     the functionality the view *and* its integration with the rest of
@@ -57,17 +79,49 @@
         """ Clear out the application registry """
         testing.cleanUp()
 
-    def test_my_view(self):
-        from my_server.views import my_view
+    def test_index(self):
+        from zopyx.smartprintng.server.views import index
         context = testing.DummyModel()
         request = testing.DummyRequest()
-        result = my_view(context, request)
+        result = index(context, request)
         self.assertEqual(result.status, '200 OK')
         body = result.app_iter[0]
-        self.failUnless('Welcome to' in body)
         self.assertEqual(len(result.headerlist), 2)
         self.assertEqual(result.headerlist[0],
                          ('Content-Type', 'text/html; charset=UTF-8'))
         self.assertEqual(result.headerlist[1], ('Content-Length',
                                                 str(len(body))))
 
+    def test_xmlrpc_ping(self):
+        from zopyx.smartprintng.server.views import ping
+        context = testing.DummyModel()
+        headers = dict()
+        headers['content-type'] = 'text/xml'
+        request = testing.DummyRequest(headers=headers, post=True)
+        request.body = xml
+        result = ping(context, request)
+        self.assertEqual(result.status, '200 OK')
+        body = result.app_iter[0]
+        params, methodname = xmlrpclib.loads(result.body)
+        self.assertEqual(params[0], 'zopyx.smartprintng.server')
+
+    def test_xmlrpc_convertZIP(self):
+        from zopyx.smartprintng.server.views import convertZIP
+        context = testing.DummyModel()
+        headers = dict()
+        headers['content-type'] = 'text/xml'
+        request = testing.DummyRequest(headers=headers, post=True)
+        zip_archive = os.path.join(os.path.dirname(__file__), 'test_data', 'test.zip')
+        zip_data = file(zip_archive, 'rb').read()
+        params = xmlrpclib.dumps((base64.encodestring(zip_data), 'pdf-prince'))
+        request.body = xml2 % params
+        result = convertZIP(context, request)
+        self.assertEqual(result.status, '200 OK')
+        body = result.app_iter[0]
+        params, methodname = xmlrpclib.loads(result.body)
+        output_zipdata = base64.decodestring(params[0])
+        output_zip_filename = tempfile.mktemp()
+        file(output_zip_filename, 'wb').write(output_zipdata)
+        ZIP = zipfile.ZipFile(output_zip_filename, 'r')
+        self.assertEqual('output.pdf' in ZIP.namelist(), True)
+

Modified: zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/views.py
===================================================================
--- zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/views.py	2009-07-23 17:21:49 UTC (rev 102162)
+++ zopyx.smartprintng.server/trunk/zopyx/smartprintng/server/views.py	2009-07-23 17:31:22 UTC (rev 102163)
@@ -6,7 +6,9 @@
 import pkg_resources
 from repoze.bfg.chameleon_zpt import render_template_to_response
 from repoze.bfg.view import static
+from repoze.bfg.view import bfg_view
 from zopyx.smartprintng.server.base import ServerCore
+from models import Server
 from logger import LOG
 
 static_view = static('templates/static')
@@ -15,6 +17,7 @@
 # HTTP views
 ##################
 
+ at bfg_view(for_=Server, request_type='GET', permission='read')
 class index(object):
 
     def __init__(self, context, request):
@@ -37,6 +40,7 @@
 from repoze.bfg.xmlrpc import xmlrpc_view
 import xmlrpclib
 
+ at bfg_view(name='convertZIP', for_=Server)
 @xmlrpc_view
 def convertZIP(context, zip_archive, converter_name='pdf-prince'):
     core = ServerCore()
@@ -47,6 +51,8 @@
         LOG.error(msg, exc_info=True)
         return xmlrpclib.Fault(123, msg)
 
+
+ at bfg_view(name='convertZIPEmail', for_=Server)
 @xmlrpc_view
 def convertZIPEmail(context, zip_archive, converter_name='pdf-prince', sender=None, recipient=None, subject=None, body=None):
     core = ServerCore()
@@ -57,10 +63,14 @@
         LOG.error(msg, exc_info=True)
         return xmlrpclib.Fault(123, msg)
 
+
+ at bfg_view(name='availableConverters', for_=Server)
 @xmlrpc_view
 def availableConverters(context):
     return ServerCore().availableConverters()
 
+
+ at bfg_view(name='ping', for_=Server)
 @xmlrpc_view
 def ping(context):
     return 'zopyx.smartprintng.server'



More information about the Checkins mailing list