From 2c22df9c1d2c668b23a529cf75a1ee111bbcf9c9 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Mon, 18 Dec 2023 15:10:06 +0100 Subject: [PATCH] test for migration of favorites basically working --- storage/tests/common.py | 20 +++++++++++++++----- storage/tests/test_storage.py | 34 +++++++++++++++++++++++++++++++--- 2 files changed, 46 insertions(+), 8 deletions(-) diff --git a/storage/tests/common.py b/storage/tests/common.py index b0f0fb8..8153da8 100644 --- a/storage/tests/common.py +++ b/storage/tests/common.py @@ -3,15 +3,23 @@ """Common definitions for testing the SQL-based storage implementation. """ +import config + import unittest from zope import component, interface from zope.app.testing.setup import placefulSetUp, placefulTearDown from loops.expert.testsetup import TestSite -from loops.organize.setup import SetupManager -from loops.organize.tests import setupUtilitiesAndAdapters +from loops.organize.personal.setup import SetupManager +from loops.organize.tests import setupObjectsForTesting from loops import util +config.dbname = 'ccotest' +config.dbuser = 'ccotest' + + +class Glob(object): + pass class TestCase(unittest.TestCase): @@ -19,12 +27,14 @@ class TestCase(unittest.TestCase): @classmethod def prepare(cls): cls.site = site = placefulSetUp(True) - component.provideAdapter(SetupManager, name='organize') + component.provideAdapter(SetupManager, name='organize.personal') t = TestSite(site) - cls.concepts, cls.resources, cls.views = t.setup() + cls.g = g = Glob() + g.concepts, g.resources, g.views = t.setup() cls.loopsRoot = loopsRoot = site['loops'] loopsId = util.getUidForObject(loopsRoot) - setupData = setupUtilitiesAndAdapters(loopsRoot) + setupData = setupObjectsForTesting(site, g.concepts) + g.johnC = setupData.johnC @classmethod def cleanup(cls): diff --git a/storage/tests/test_storage.py b/storage/tests/test_storage.py index e75f25b..01dac93 100644 --- a/storage/tests/test_storage.py +++ b/storage/tests/test_storage.py @@ -3,6 +3,17 @@ """Comprehensive functional testing for SQL-based storage implementation. """ +import transaction +from zope import component +from zope.traversing.api import getName + +from loops.concept import Concept +from loops.config.base import LoopsOptions +from loops.organize.personal.favorite import Favorites as FavoritesFolder +from loops.organize.personal.interfaces import IFavorites +from loops.organize.personal.storage.favorite import Favorites +from loops.organize.tracking.storage.migration import migrate +from loops.setup import addAndConfigureObject from loops.storage.tests import common @@ -10,10 +21,27 @@ class TestStorage(common.TestCase): def test_000_setUp(self): self.prepare() - self.assertEqual(self.loopsRoot.__name__, 'loops') + self.assertEqual(getName(self.loopsRoot), 'loops') + person = self.loopsRoot['concepts']['person'] + component.provideAdapter(FavoritesFolder) - def test_migration(self): - self.assertEqual('a'.upper(), 'A') + def test_fav_001_setUp(self): + self.assertEqual(getName(self.g.concepts), 'concepts') + self.assertEqual(self.g.johnC.title, u'john') + self.g.records = records = self.loopsRoot.getRecordManager() + self.g.favorites = records['favorites'] + self.g.fav = IFavorites(self.g.favorites) + self.g.fav.add(self.g.resources['d001.txt'], self.g.johnC) + self.assertEqual(len(self.g.favorites), 1) + + def test_fav_002_migration(self): + import config + self.assertEqual(config.dbname, 'ccotest') + self.assertEqual(config.dbuser, 'ccotest') + LoopsOptions(self.loopsRoot).set('cco.storage.schema', ['testing']) + self.assertEqual(LoopsOptions(self.loopsRoot)('cco.storage.schema'), ['testing']) + migrate(self.loopsRoot, 'favorites', factory=Favorites) + transaction.commit() def test_query(self): self.assertEqual('a'.upper(), 'A')