test for migration of favorites basically working

This commit is contained in:
Helmut Merz 2023-12-18 15:10:06 +01:00
parent 506e539c2d
commit 2c22df9c1d
2 changed files with 46 additions and 8 deletions

View file

@ -3,15 +3,23 @@
"""Common definitions for testing the SQL-based storage implementation. """Common definitions for testing the SQL-based storage implementation.
""" """
import config
import unittest import unittest
from zope import component, interface from zope import component, interface
from zope.app.testing.setup import placefulSetUp, placefulTearDown from zope.app.testing.setup import placefulSetUp, placefulTearDown
from loops.expert.testsetup import TestSite from loops.expert.testsetup import TestSite
from loops.organize.setup import SetupManager from loops.organize.personal.setup import SetupManager
from loops.organize.tests import setupUtilitiesAndAdapters from loops.organize.tests import setupObjectsForTesting
from loops import util from loops import util
config.dbname = 'ccotest'
config.dbuser = 'ccotest'
class Glob(object):
pass
class TestCase(unittest.TestCase): class TestCase(unittest.TestCase):
@ -19,12 +27,14 @@ class TestCase(unittest.TestCase):
@classmethod @classmethod
def prepare(cls): def prepare(cls):
cls.site = site = placefulSetUp(True) cls.site = site = placefulSetUp(True)
component.provideAdapter(SetupManager, name='organize') component.provideAdapter(SetupManager, name='organize.personal')
t = TestSite(site) 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'] cls.loopsRoot = loopsRoot = site['loops']
loopsId = util.getUidForObject(loopsRoot) loopsId = util.getUidForObject(loopsRoot)
setupData = setupUtilitiesAndAdapters(loopsRoot) setupData = setupObjectsForTesting(site, g.concepts)
g.johnC = setupData.johnC
@classmethod @classmethod
def cleanup(cls): def cleanup(cls):

View file

@ -3,6 +3,17 @@
"""Comprehensive functional testing for SQL-based storage implementation. """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 from loops.storage.tests import common
@ -10,10 +21,27 @@ class TestStorage(common.TestCase):
def test_000_setUp(self): def test_000_setUp(self):
self.prepare() 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): def test_fav_001_setUp(self):
self.assertEqual('a'.upper(), 'A') 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): def test_query(self):
self.assertEqual('a'.upper(), 'A') self.assertEqual('a'.upper(), 'A')