Практической
пользы псто.
Как мы знаем,
в Наудок (Naudoc) используется древняя
версия Zope 2.10.
Поэтому, если
надо сваять расширение/аддон/продукт
для этой платформы, надо пользоваться
старыми рецептами.
Вот, к примеру,
минималистичный продукт, заготовка,
фактически.
Предположим,
папка Products Наудока лежит тут
/opt/naudoc/Products
Тогда создаем
папку
/opt/naudoc/Products/MyProduct
в ней файл
/opt/naudoc/Products/MyProduct/__init__.py
import logging
logger = logging.getLogger('MyProduct')
__version__ = '$Revision: 0.1 $'[11:-2]
def log(message):
logger.warning('dev log: %s' % message)
def initialize(context):
log('initialize with %s' % context)
|
В принципе,
это уже продукт, можно использовать.
Например, так
# su -l zope
/opt/naudoc/bin/zopectl debug
>>> from Products.MyProduct import log
>>> log('oops')
|
Это если Наудок
был установлен для работы под системной
учеткой 'zope'.
Добавим немного
юнит тестов.
Создадим папку
/opt/naudoc/Products/MyProduct/tests
и положим туда
файл
/opt/naudoc/Products/MyProduct/tests/__init__.py
он пустой, это
маркер пакета;
и файл
/opt/naudoc/Products/MyProduct/tests/test_all.py
import unittest
from Products.MyProduct import __version__
class TestPackage(unittest.TestCase):
def test_failUnless(self):
self.failUnless(__version__ == '0.1')
def test_assertEqual(self):
self.assertEqual(__version__, '0.1')
def test_suite():
return unittest.TestSuite((
unittest.makeSuite(TestPackage),
))
if __name__ == "__main__":
unittest.main(defaultTest="test_suite")
|
Запускать
тесты надо осторожно. Нет, очень осторожно!
/opt/naudoc/bin/zopectl test -k -m MyProduct.tests
Если, невзначай, вы пропустите ключик
«-k», то тестраннер уничтожит все pyc
файлы. А это означает, что систему вы
запустить уже не сможете, ибо не ко всем
модулям Наумен поставляет исходники
(py). Только из резервной копии
восстанавливать.
Поэтому, делаем
резервные копии и только потом запускаем
всякое.
Впрочем, это
должно быть привычкой.
original post http://vasnake.blogspot.com/2015/03/naudoczope-2107-products.html

Комментариев нет:
Отправить комментарий