[Checkins] SVN: megrok.z3cform.composed/trunk/ Added tests and prepared the 0.1 release
Souheil CHELFOUH
souheil at chelfouh.com
Tue Oct 27 15:27:03 EDT 2009
Log message for revision 105308:
Added tests and prepared the 0.1 release
Changed:
D megrok.z3cform.composed/trunk/README.txt
U megrok.z3cform.composed/trunk/docs/HISTORY.txt
U megrok.z3cform.composed/trunk/setup.py
A megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/README.txt
U megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/__init__.py
U megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/composedform.py
U megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/configure.zcml
A megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/ftesting.zcml
U megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/meta.zcml
A megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/tests.py
-=-
Deleted: megrok.z3cform.composed/trunk/README.txt
===================================================================
--- megrok.z3cform.composed/trunk/README.txt 2009-10-27 18:29:59 UTC (rev 105307)
+++ megrok.z3cform.composed/trunk/README.txt 2009-10-27 19:27:02 UTC (rev 105308)
@@ -1,4 +0,0 @@
-Introduction
-============
-
-
Modified: megrok.z3cform.composed/trunk/docs/HISTORY.txt
===================================================================
--- megrok.z3cform.composed/trunk/docs/HISTORY.txt 2009-10-27 18:29:59 UTC (rev 105307)
+++ megrok.z3cform.composed/trunk/docs/HISTORY.txt 2009-10-27 19:27:02 UTC (rev 105308)
@@ -1,8 +1,7 @@
Changelog
=========
-1.0 - Unreleased
+0.1 (2009-10-27)
----------------
* Initial release
-
Modified: megrok.z3cform.composed/trunk/setup.py
===================================================================
--- megrok.z3cform.composed/trunk/setup.py 2009-10-27 18:29:59 UTC (rev 105307)
+++ megrok.z3cform.composed/trunk/setup.py 2009-10-27 19:27:02 UTC (rev 105308)
@@ -1,17 +1,31 @@
+from os.path import join
from setuptools import setup, find_packages
-import os
+name = 'megrok.z3cform.composed'
version = '0.1'
+readme = open(join('src', 'megrok', 'z3cform', 'composed', 'README.txt')).read()
+history = open(join('docs', 'HISTORY.txt')).read()
-setup(name='megrok.z3cform.composed',
+install_requires = [
+ 'setuptools',
+ 'z3c.form',
+ 'megrok.z3cform.base',
+ 'grokcore.view',
+ 'grokcore.viewlet',
+ 'grokcore.component',
+ 'zope.component',
+ ]
+
+tests_require = install_requires + [
+ 'zope.testing',
+ 'zope.app.testing',
+ 'zope.app.zcmlfiles',
+ ]
+
+setup(name=name,
version=version,
- description="",
- long_description=open("README.txt").read() + "\n" +
- open(os.path.join("docs", "HISTORY.txt")).read(),
- classifiers=[
- "Programming Language :: Python",
- "Topic :: Software Development :: Libraries :: Python Modules",
- ],
+ description="Composed forms for Grok, using z3c.form.",
+ long_description = readme + '\n\n' + history,
keywords='z3cform Grok Form',
author='Souheil Chelfouh',
author_email='trollfot at gmail.com',
@@ -22,15 +36,17 @@
namespace_packages=['megrok', 'megrok.z3cform'],
include_package_data=True,
zip_safe=False,
- install_requires=[
- 'setuptools',
- 'z3c.form',
- 'megrok.z3cform.base',
- 'grokcore.view',
- 'grokcore.viewlet',
- 'zope.component',
- ],
- entry_points="""
- # -*- Entry points: -*-
- """,
+ tests_require = tests_require,
+ install_requires = install_requires,
+ extras_require = {'test': tests_require},
+ test_suite="megrok.z3cform.composed",
+ classifiers = [
+ 'Development Status :: 4 - Beta',
+ 'Environment :: Web Environment',
+ 'Framework :: Grok',
+ 'Intended Audience :: Other Audience',
+ 'License :: OSI Approved :: GNU General Public License (GPL)',
+ 'Operating System :: OS Independent',
+ 'Programming Language :: Python',
+ ],
)
Copied: megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/README.txt (from rev 105305, megrok.z3cform.composed/trunk/README.txt)
===================================================================
--- megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/README.txt (rev 0)
+++ megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/README.txt 2009-10-27 19:27:02 UTC (rev 105308)
@@ -0,0 +1,112 @@
+=======================
+megrok.z3cform.composed
+=======================
+
+`megrok.z3cform.composed` is a package dedicated to define and
+register composed forms. Composed forms are forms built from a
+collection of sub forms.
+
+`megrok.z3cform.composed` is based on `z3c.form` and
+`megrok.z3cform.base`.
+
+
+Getting started
+===============
+
+We import the needed dependencies::
+
+ >>> import grokcore.view as grok
+ >>> import megrok.z3cform.composed
+ >>> from megrok.z3cform.composed import ComposedForm, SubForm
+
+We import the components utilities::
+
+ >>> from zope.component import getMultiAdapter
+ >>> from zope.publisher.browser import TestRequest
+
+
+Defining a composed form
+========================
+
+Context
+-------
+
+A form needs a context. Let's create a simple model for test purposes::
+
+ >>> class MyContent(object):
+ ... pass
+
+
+Declaration
+-----------
+
+ >>> class Form(ComposedForm):
+ ... grok.context(MyContent)
+
+
+Registration
+------------
+
+ >>> grok_component('composed', Form)
+ True
+
+
+Query
+-----
+
+ >>> content = MyContent()
+ >>> request = TestRequest()
+
+ >>> composed = getMultiAdapter((content, request), name="form")
+ >>> composed
+ <megrok.z3cform.composed.tests.Form object at ...>
+
+ >>> composed.subforms
+ []
+
+ >>> composed.updateForm()
+ >>> composed.subforms
+ []
+
+
+Defining sub forms
+==================
+
+Declaration
+-----------
+
+ >>> class SubFormOne(SubForm):
+ ... grok.context(MyContent)
+ ... megrok.z3cform.composed.order(2)
+ ... megrok.z3cform.composed.view(Form)
+
+ >>> class SubFormTwo(SubForm):
+ ... grok.context(MyContent)
+ ... megrok.z3cform.composed.order(1)
+ ... megrok.z3cform.composed.view(Form)
+
+
+Registration
+------------
+
+ >>> grok_component('one', SubFormOne)
+ True
+
+ >>> grok_component('one', SubFormTwo)
+ True
+
+
+Query
+-----
+
+ >>> composed.subforms
+ []
+
+ >>> composed.updateForm()
+ >>> composed.subforms
+ [<megrok.z3cform.composed.tests.SubFormTwo object at ...>, <megrok.z3cform.composed.tests.SubFormOne object at ...>]
+
+ >>> for sub in composed.subforms:
+ ... print sub.prefix, sub.parentForm
+ subformtwo <megrok.z3cform.composed.tests.Form object at ...>
+ subformone <megrok.z3cform.composed.tests.Form object at ...>
Property changes on: megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/README.txt
___________________________________________________________________
Added: svn:mergeinfo
+
Modified: megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/__init__.py
===================================================================
--- megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/__init__.py 2009-10-27 18:29:59 UTC (rev 105307)
+++ megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/__init__.py 2009-10-27 19:27:02 UTC (rev 105308)
@@ -2,3 +2,4 @@
from subform import SubForm
from composedform import ComposedForm
+from grokcore.viewlet import view, order
Modified: megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/composedform.py
===================================================================
--- megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/composedform.py 2009-10-27 18:29:59 UTC (rev 105307)
+++ megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/composedform.py 2009-10-27 19:27:02 UTC (rev 105308)
@@ -12,6 +12,7 @@
"""A more generic form which can be composed of many others.
"""
grok.baseclass()
+ subforms = []
def updateSubForms(self):
subforms = map(lambda x: x[1], component.getAdapters(
Modified: megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/configure.zcml
===================================================================
--- megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/configure.zcml 2009-10-27 18:29:59 UTC (rev 105307)
+++ megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/configure.zcml 2009-10-27 19:27:02 UTC (rev 105308)
@@ -2,7 +2,10 @@
xmlns="http://namespaces.zope.org/zope"
xmlns:grok="http://namespaces.zope.org/grok">
+ <include package="megrok.z3cform.base" file="meta.zcml" />
<include package="megrok.pagetemplate" file="meta.zcml" />
<grok:grok package="." />
+ <include package="megrok.z3cform.base" />
+
</configure>
Added: megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/ftesting.zcml
===================================================================
--- megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/ftesting.zcml (rev 0)
+++ megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/ftesting.zcml 2009-10-27 19:27:02 UTC (rev 105308)
@@ -0,0 +1,16 @@
+<configure
+ xmlns="http://namespaces.zope.org/zope"
+ xmlns:grok="http://namespaces.zope.org/grok">
+
+ <include package="zope.app.zcmlfiles" file="meta.zcml" />
+ <include package="zope.app.zcmlfiles" />
+
+ <include package="megrok.layout" />
+
+ <include package="megrok.z3cform.composed" />
+ <include package="megrok.z3cform.composed" file="meta.zcml" />
+
+ <!-- Layer manipulation -->
+ <include package="megrok.z3cform.base" file="default_form_layer.zcml"/>
+
+</configure>
Modified: megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/meta.zcml
===================================================================
--- megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/meta.zcml 2009-10-27 18:29:59 UTC (rev 105307)
+++ megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/meta.zcml 2009-10-27 19:27:02 UTC (rev 105308)
@@ -1,6 +1,8 @@
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:grok="http://namespaces.zope.org/grok">
+
<include package="grokcore.component" file="meta.zcml" />
<grok:grok package=".meta" />
+
</configure>
Added: megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/tests.py
===================================================================
--- megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/tests.py (rev 0)
+++ megrok.z3cform.composed/trunk/src/megrok/z3cform/composed/tests.py 2009-10-27 19:27:02 UTC (rev 105308)
@@ -0,0 +1,26 @@
+# -*- coding: utf-8 -*-
+
+import os.path
+import unittest
+
+from zope.testing import doctest
+from zope.app.testing import functional
+from grokcore.component.testing import grok_component
+
+ftesting_zcml = os.path.join(os.path.dirname(__file__), 'ftesting.zcml')
+FunctionalLayer = functional.ZCMLLayer(
+ ftesting_zcml, __name__, 'FunctionalLayer', allow_teardown=True
+ )
+
+def test_suite():
+ suite = unittest.TestSuite()
+ readme = functional.FunctionalDocFileSuite(
+ 'README.txt',
+ globs={
+ '__name__': 'megrok.z3cform.composed.tests',
+ 'grok_component': grok_component
+ }
+ )
+ readme.layer = FunctionalLayer
+ suite.addTest(readme)
+ return suite
More information about the checkins
mailing list