Практической
пользы псто.
Как мы знаем,
в Наудок (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
Комментариев нет:
Отправить комментарий