[Checkins] SVN: z3ext.product/trunk/ tests updated
Nikolay Kim
fafhrd at datacom.kz
Thu Sep 4 06:54:47 EDT 2008
Log message for revision 90797:
tests updated
Changed:
U z3ext.product/trunk/CHANGES.txt
U z3ext.product/trunk/src/z3ext/product/README.txt
U z3ext.product/trunk/src/z3ext/product/interfaces.py
U z3ext.product/trunk/src/z3ext/product/product.py
U z3ext.product/trunk/src/z3ext/product/zcml.py
-=-
Modified: z3ext.product/trunk/CHANGES.txt
===================================================================
--- z3ext.product/trunk/CHANGES.txt 2008-09-04 09:05:41 UTC (rev 90796)
+++ z3ext.product/trunk/CHANGES.txt 2008-09-04 10:54:46 UTC (rev 90797)
@@ -2,10 +2,10 @@
CHANGES
=======
-1.2.0 (2008-??-??)
+1.2.0 (2008-09-04)
------------------
-- Added product dependencies (required attribute)
+- Added product dependencies (require attribute)
1.1.2 (2008-08-13)
Modified: z3ext.product/trunk/src/z3ext/product/README.txt
===================================================================
--- z3ext.product/trunk/src/z3ext/product/README.txt 2008-09-04 09:05:41 UTC (rev 90796)
+++ z3ext.product/trunk/src/z3ext/product/README.txt 2008-09-04 10:54:46 UTC (rev 90797)
@@ -95,7 +95,7 @@
Product manipulation
--------------------
-instalation status
+Instalation status
>>> product.isInstalled()
False
@@ -105,7 +105,7 @@
>>> product.__installed__
False
-instalation
+Instalation
>>> product.install()
>>> product.__installed__
@@ -117,7 +117,7 @@
ProductAlreadyInstalledError: Product already installed.
-updateing product
+Updateing product
>>> product.update()
@@ -214,6 +214,61 @@
[u'ext']
+Product dependencies
+--------------------
+Product can depends on other products.
+
+ >>> class IMyProduct2(interface.Interface):
+ ... """ Product 2 """
+ ...
+ ... email = schema.TextLine(
+ ... title=u"E-mail Address",
+ ... description=u"E-mail Address used to send notifications")
+
+ >>> context = xmlconfig.string('''
+ ... <configure
+ ... xmlns:z3ext="http://namespaces.zope.org/z3ext" i18n_domain="test">
+ ...
+ ... <z3ext:product
+ ... name="my-product2"
+ ... title="My product2"
+ ... require="my-product"
+ ... schema="z3ext.product.README.IMyProduct2" />
+ ...
+ ... </configure>''', context)
+
+'my-product2' is depends on 'my-product'
+
+ >>> product = component.getUtility(IMyProduct)
+ >>> product.__installed__
+ False
+
+ >>> product2 = component.getUtility(IMyProduct2)
+ >>> product2.__require__
+ [u'my-product']
+
+Let's install my-product2
+
+ >>> product2.install()
+
+Now both products are installed
+
+ >>> product.__installed__
+ True
+
+ >>> product2.__installed__
+ True
+
+But on uninstall required products stay intalled
+
+ >>> product2.uninstall()
+
+ >>> product.__installed__
+ True
+
+ >>> product.uninstall()
+
+
Component registry
------------------
@@ -258,7 +313,7 @@
>>> installer = component.getUtility(IConfiglet, 'product')
>>> installer.keys()
- (u'my-product',)
+ (u'my-product', u'my-product2')
>>> installer.isAvailable()
True
Modified: z3ext.product/trunk/src/z3ext/product/interfaces.py
===================================================================
--- z3ext.product/trunk/src/z3ext/product/interfaces.py 2008-09-04 09:05:41 UTC (rev 90796)
+++ z3ext.product/trunk/src/z3ext/product/interfaces.py 2008-09-04 10:54:46 UTC (rev 90797)
@@ -52,7 +52,7 @@
title = u'Product name',
required = True)
- __required__ = interface.Attribute(u'Required products.')
+ __require__ = interface.Attribute(u'Require products.')
__installed__ = interface.Attribute(u'Is product installed.')
Modified: z3ext.product/trunk/src/z3ext/product/product.py
===================================================================
--- z3ext.product/trunk/src/z3ext/product/product.py 2008-09-04 09:05:41 UTC (rev 90796)
+++ z3ext.product/trunk/src/z3ext/product/product.py 2008-09-04 10:54:46 UTC (rev 90797)
@@ -42,7 +42,7 @@
return registry in sm.__bases__
def _checkRequiredInstall(self):
- for productId in self.__required__:
+ for productId in self.__require__:
product = queryUtility(IProduct, productId)
if product is None:
raise interfaces.RequiredProductNotFound(
@@ -51,7 +51,7 @@
product.install()
def _checkRequiredUpdate(self):
- for productId in self.__required__:
+ for productId in self.__require__:
product = queryUtility(IProduct, productId)
if product is None:
raise interfaces.RequiredProductNotFound(
Modified: z3ext.product/trunk/src/z3ext/product/zcml.py
===================================================================
--- z3ext.product/trunk/src/z3ext/product/zcml.py 2008-09-04 09:05:41 UTC (rev 90796)
+++ z3ext.product/trunk/src/z3ext/product/zcml.py 2008-09-04 10:54:46 UTC (rev 90797)
@@ -37,8 +37,8 @@
default = False,
required = False)
- required = fields.Tokens(
- title = u'Required',
+ require = fields.Tokens(
+ title = u'Require',
value_type = schema.TextLine(),
required = False)
@@ -48,7 +48,7 @@
def __init__(self, _context, name, schema, title,
description='', class_=None, provides=(),
permission='z3ext.ManageProducts', tests=(),
- configurable=False, required = ()):
+ configurable=False, require = ()):
if '.' not in name:
product_class = Product
@@ -80,7 +80,7 @@
_context, name, schema, title,
description, class_, provides, permission, tests)
- self._class.__required__ = required
+ self._class.__require__ = require
self._class.__product_name__ = productName
if configurable:
More information about the Checkins
mailing list