[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