~divmod-dev/divmod.org/multiple-to-1940

« back to all changes in this revision

Viewing changes to Axiom/axiom/test/historic/test_parentHook2to3.py

  • Committer: exarkun
  • Date: 2009-07-07 20:35:43 UTC
  • Revision ID: svn-v4:866e43f7-fbfc-0310-8f2a-ec88d1da2979:trunk:17723
Merge scheduler-nonitem-1408-2

Author: exarkun
Reviewer: glyph
Fixes: #1408

Introduce an in-memory-only `IScheduler` adapter for `Store` which supercedes
the `Scheduler` and `SubScheduler` item classes.  `Scheduler` and `SubScheduler`
still exist, but they will be deprecated shortly, and then upgraded out of
existence.  The correct way to get the scheduler for a store is to adapt the
store to `IScheduler`.  This will succeed without any particular database
state being created to support it.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
1
2
"""
2
3
Test upgrading L{_SubSchedulerParentHook} from version 2 to 3.
3
4
"""
 
5
 
4
6
from axiom.test.historic.stubloader import StubbedTest
5
7
 
6
 
from axiom.scheduler import Scheduler, _SubSchedulerParentHook
 
8
from axiom.scheduler import _SubSchedulerParentHook
7
9
from axiom.substore import SubStore
 
10
from axiom.dependency import _DependencyConnector
8
11
 
9
12
 
10
13
class SubSchedulerParentHookUpgradeTests(StubbedTest):
11
14
    """
12
15
    Test upgrading L{_SubSchedulerParentHook} from version 2 to 3.
13
16
    """
 
17
    def setUp(self):
 
18
        d = StubbedTest.setUp(self)
 
19
        def cbSetUp(ignored):
 
20
            self.hook = self.store.findUnique(_SubSchedulerParentHook)
 
21
        d.addCallback(cbSetUp)
 
22
        return d
 
23
 
14
24
 
15
25
    def test_attributesCopied(self):
16
26
        """
17
 
        L{_SubSchedulerParentHook} version 2's attributes should have been
 
27
        The only attribute of L{_SubSchedulerParentHook} which still exists at
 
28
        the current version, version 4, C{subStore}, ought to have been
18
29
        copied over.
19
30
        """
20
 
        hook = self.store.findUnique(_SubSchedulerParentHook)
21
 
        self.assertIdentical(hook.loginAccount, self.store.findUnique(SubStore))
22
 
        self.assertIdentical(hook.scheduler, self.store.findUnique(Scheduler))
 
31
        self.assertIdentical(
 
32
            self.hook.subStore, self.store.findUnique(SubStore))
 
33
 
 
34
 
 
35
    def test_uninstalled(self):
 
36
        """
 
37
        The record of the installation of L{_SubSchedulerParentHook} on the
 
38
        store is deleted in the upgrade to schema version 4.
 
39
        """
 
40
        self.assertEquals(
 
41
            list(self.store.query(
 
42
                    _DependencyConnector,
 
43
                    _DependencyConnector.installee == self.hook)),
 
44
            [])