[Product-Developers] Problem creating first product

ericx ericx at vineyard.net
Mon May 19 03:54:29 UTC 2008


I'm working thru Professional Plone development, and I have a problem
creating my first demo product.


The demo as outlined in the book is simple enough. It is an initial policy
which does nothing but change the title and description. At this stage, I
have unit tests which indicate that I have passed both these assumptions;
but the product itself does not load; and I'm a bit unsure where to look for
errors.


Starting the instance in the foreground produces no error; but the new
policy is unavailable in the list of installable products. Testing the
product does announce that it cannot be loaded (NOT FOUND):



 ** root at ethel ** /usr/local/www/hhsa ** Sun May 18 21:20:37
# ./bin/instance test -s hhsa.policy
Running tests at level 1
Installing CMFCore ... done (0.717s)
Installing CMFDefault ... done (0.474s)
Installing CMFCalendar ... done (0.092s)
Installing CMFTopic ... done (0.053s)
Installing DCWorkflow ... done (0.120s)
Installing CMFActionIcons ... done (0.053s)
Installing CMFQuickInstallerTool ... done (0.136s)
Installing CMFFormController ... done (0.780s)
Installing GroupUserFolder ... done (0.875s)
Installing ZCTextIndex ... done (0.132s)
Installing CMFPlone ... done (4.985s)
Installing Archetypes ... done (0.452s)
Installing ATContentTypes ... done (0.093s)
Installing ATReferenceBrowserWidget ... done (0.034s)
Installing CMFDynamicViewFTI ... done (0.032s)
Installing ExternalEditor ... done (0.039s)
Installing ExtendedPathIndex ... done (0.039s)
Installing ResourceRegistries ... done (0.033s)
Installing SecureMailHost ... done (0.034s)
Installing CMFPlacefulWorkflow ... done (0.039s)
Installing PasswordResetTool ... done (0.045s)
Installing PluggableAuthService ... done (0.053s)
Installing PluginRegistry ... done (0.043s)
Installing PlonePAS ... done (0.050s)
Installing kupu ... done (0.575s)
Installing CMFEditions ... done (0.060s)
Installing CMFDiffTool ... done (0.050s)
Installing PloneLanguageTool ... done (0.051s)
Test-module import failures:

Module: hhsa.policy.tests

AttributeError: 'module' object has no attribute 'test_suite'


Running Products.PloneTestCase.layer.PloneSite tests:
/usr/local/www/Zope210/lib/python/zope/configuration/xmlconfig.py:323:
DeprecationWarning: zope.app.annotation has moved to zope.annotation. Import
of zope.app.annotation will become unsupported in Zope 3.5
  __import__(arguments[0])
  Set up Products.PloneTestCase.layer.ZCML in 9.494 seconds.
Installing hhsa.policy ... NOT FOUND
/usr/local/www/Zope210/Products/PlonePAS/setuphandlers.py:39:
DeprecationWarning: portal_groups.getGroupIds is deprecated and will be
removed in Plone 3.5. Use PAS searchGroups instead
  existing = gtool.listGroupIds()
  Set up Products.PloneTestCase.layer.PloneSite in 12.298 seconds.
  Running:
..
  Ran 2 tests with 0 failures and 0 errors in 0.060 seconds.
Tearing down left over layers:
  Tear down Products.PloneTestCase.layer.PloneSite in 1.142 seconds.
  Tear down Products.PloneTestCase.layer.ZCML in 0.006 seconds.

Test-modules with import problems:
  hhsa.policy.tests


I'm a complete python/zope/plone n00b. However, I would guess that the 2
deprecation warnings have nothing to do with my trouble, correct?


I'm very curious that hhsa.policy can be loaded in order to run the tests
but not loaded by the plone instance. Am I reading that correctly?


Is it as simple as a path issue? The ZCML slug created by buildout doesn't
seem to have any path information.


My buildout.cfg: 



# File:		buildout.cfg
# Author:	Charlie Root, ericx at vineyard.net
# Date:		Wed May 14 21:02:08 2008
# Time-stamp:	<2008-05-16 18:40:03 ericx>
# Description:	The mysterious plone buildout file. Must learn more...
#
# $Id: buildout.cfg 9 2008-05-16 22:52:18Z root $

[buildout]
parts =
    plone
    productdistros
    instance
    zopepy

# Add additional egg download sources here. dist.plone.org contains archives
# of Plone packages.
find-links =
    http://dist.plone.org
    http://download.zope.org/ppix/
    http://download.zope.org/distribution/
    http://effbot.org/downloads

# Add additional eggs here
# elementtree is required by Plone
eggs =
    elementtree
    hhsa.policy

# Reference any eggs you are developing here, one per line
# e.g.: develop = src/my.package
develop =
    src/hhsa.policy

[plone]
#recipe = plone.recipe.plone>=3.0,<3.1dev
recipe = plone.recipe.plone==3.0.6
#recipe = plone.recipe.plone>=3.0.6,<3.1dev
# By overriding the download URLs and making them an empty list, we
# Make sure our own products directory takes precedence
urls =


# Use this section to download additional old-style products.
# List any number of URLs for product tarballs under URLs (separate
# with whitespace, or break over several lines, with subsequent lines
# indented). If any archives contain several products inside a top-level
# directory, list the archive file name (i.e. the last part of the URL,
# normally with a .tar.gz suffix or similar) under 'nested-packages'.
# If any archives extract to a product directory with a version suffix, list
# the archive name under 'version-suffix-packages'.
[productdistros]
recipe = plone.recipe.distros
urls =
 
http://www.zope.org/Members/shh/DocFinderTab/1.0.2/DocFinderTab-1.0.2.tar.gz
  http://plone.org/products/clouseau/releases/0.8.1/clouseau-0-8-1.zip
nested-packages =
version-suffix-packages =

[instance]
recipe = plone.recipe.zope2instance
zope2-location = /usr/local/www/Zope210
user = zope_admin:zope-pass
http-address = 8080
debug-mode = on
#verbose-security = on

# If you want Zope to know about any additional eggs, list them here.
# This should include any development eggs you listed in develop-eggs above,
# e.g. eggs = ${buildout:eggs} ${plone:eggs} my.package
eggs =
    ${buildout:eggs}
    ${plone:eggs}

# If you want to register ZCML slugs for any packages, list them here.
# e.g. zcml = my.package my.other.package
zcml =
    hhsa.policy

products =
    ${buildout:directory}/products
    ${productdistros:location}
    /usr/local/www/Zope210/Products

zope-conf-additional =
    effective-user zope

[zopepy]
recipe = zc.recipe.egg
eggs = ${instance:eggs}
interpreter = zopepy
extra-paths = /usr/local/www/Zope210/lib/python
scripts = zopepy


Thanks for your time.

-- 
View this message in context: http://www.nabble.com/Problem-creating-first-product-tp17310880s20094p17310880.html
Sent from the Product Developers mailing list archive at Nabble.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.plone.org/pipermail/plone-product-developers/attachments/20080518/a3af37fa/attachment-0001.html>


More information about the Product-Developers mailing list