예제 #1
0
    def test_attribute_deletion(self):

        self.folder.invokeFactory('Document', 'd1')
        target = self.folder['d1']

        target.title = u'Old title'
        target.description = u'Old description'

        draft = Draft()

        draft.someAttribute = 1
        draft.description = u'New description'

        proxy = DraftProxy(draft, target)

        del proxy.someAttribute
        del proxy.title
        del proxy.description

        self.assertEqual(
            set(['someAttribute', 'title', 'description']),
            draft._proxyDeleted
        )

        self.assertFalse(hasattr(draft, 'someAttribute'))
        self.assertFalse(hasattr(draft, 'title'))
        self.assertFalse(hasattr(draft, 'description'))

        self.assertFalse(hasattr(proxy, 'someAttribute'))
        self.assertFalse(hasattr(proxy, 'title'))
        self.assertFalse(hasattr(proxy, 'description'))

        self.assertEqual(u'Old title', target.title)
        self.assertEqual(u'Old description', target.description)
예제 #2
0
파일: tests.py 프로젝트: CGTIC/Plone_SP
 def test_attribute_deletion(self):
     
     self.folder.invokeFactory('Document', 'd1')
     target = self.folder['d1']
     
     target.title = u"Old title"
     target.description = u"Old description"
     
     draft = Draft()
     
     draft.someAttribute = 1
     draft.description = u"New description"
     
     proxy = DraftProxy(draft, target)
     
     del proxy.someAttribute
     del proxy.title
     del proxy.description
     
     self.assertEquals(set(['someAttribute', 'title', 'description']), draft._proxyDeleted)
     
     self.failIf(hasattr(draft, 'someAttribute'))
     self.failIf(hasattr(draft, 'title'))
     self.failIf(hasattr(draft, 'description'))
     
     self.failIf(hasattr(proxy, 'someAttribute'))
     self.failIf(hasattr(proxy, 'title'))
     self.failIf(hasattr(proxy, 'description'))
     
     self.assertEquals(u"Old title", target.title)
     self.assertEquals(u"Old description", target.description)
예제 #3
0
    def test_annotations(self):

        self.folder.invokeFactory('Document', 'd1')
        target = self.folder['d1']

        targetAnnotations = IAnnotations(target)
        targetAnnotations[u'test.key'] = 123
        targetAnnotations[u'other.key'] = 456

        draft = Draft()

        draftAnnotations = IAnnotations(draft)
        draftAnnotations[u'some.key'] = 234

        proxy = DraftProxy(draft, target)

        proxyAnnotations = IAnnotations(proxy)

        self.assertEqual(123, proxyAnnotations[u'test.key'])
        self.assertEqual(234, proxyAnnotations[u'some.key'])

        proxyAnnotations[u'test.key'] = 789

        self.assertEqual(789, proxyAnnotations[u'test.key'])
        self.assertEqual(123, targetAnnotations[u'test.key'])

        # Annotations API

        self.assertEqual(789, proxyAnnotations.get(u'test.key'))

        keys = proxyAnnotations.keys()
        self.assertTrue(u'test.key' in keys)
        self.assertTrue(u'some.key' in keys)
        self.assertTrue(u'other.key' in keys)

        self.assertEqual(789, proxyAnnotations.setdefault(u'test.key', -1))
        self.assertEqual(234, proxyAnnotations.setdefault(u'some.key', -1))
        self.assertEqual(456, proxyAnnotations.setdefault(u'other.key', -1))
        self.assertEqual(-1, proxyAnnotations.setdefault(u'new.key', -1))

        del proxyAnnotations[u'test.key']
        self.assertFalse(u'test.key' in proxyAnnotations)
        self.assertFalse(u'test.key' in draftAnnotations)
        self.assertTrue(u'test.key' in targetAnnotations)
        self.assertTrue(u'test.key' in draft._proxyAnnotationsDeleted)

        del proxyAnnotations[u'some.key']
        self.assertFalse(u'some.key' in proxyAnnotations)
        self.assertFalse(u'some.key' in draftAnnotations)
        self.assertFalse(u'some.key' in targetAnnotations)
        self.assertTrue(u'some.key' in draft._proxyAnnotationsDeleted)

        # this key was never in the proxy/draft
        del proxyAnnotations[u'other.key']
        self.assertFalse(u'other.key' in proxyAnnotations)
        self.assertFalse(u'other.key' in draftAnnotations)
        self.assertTrue(u'other.key' in targetAnnotations)
        self.assertTrue(u'other.key' in draft._proxyAnnotationsDeleted)
예제 #4
0
파일: tests.py 프로젝트: CGTIC/Plone_SP
 def test_attributes(self):
     
     self.folder.invokeFactory('Document', 'd1')
     target = self.folder['d1']
     
     target.title = u"Old title"
     
     draft = Draft()
     draft.someAttribute = 1
     
     proxy = DraftProxy(draft, target)
     
     self.assertEquals(u"Old title", proxy.title)
     self.assertEquals(1, proxy.someAttribute)
     
     proxy.title = u"New title"
     
     self.assertEquals(u"New title", proxy.title)
예제 #5
0
    def test_attributes(self):

        self.folder.invokeFactory('Document', 'd1')
        target = self.folder['d1']

        target.title = u'Old title'

        draft = Draft()
        draft.someAttribute = 1

        proxy = DraftProxy(draft, target)

        self.assertEqual(u'Old title', proxy.title)
        self.assertEqual(1, proxy.someAttribute)

        proxy.title = u'New title'

        self.assertEqual(u'New title', proxy.title)
예제 #6
0
파일: tests.py 프로젝트: CGTIC/Plone_SP
 def test_syncDraft(self):
     
     class Target(object):
         pass
     
     draft = Draft()
     draft.a1 = 1
     draft.a2 = 2
     
     target = Target()
     
     class Syncer1(object):
         implements(IDraftSyncer)
         adapts(Draft, Target)
         
         def __init__(self, draft, target):
             self.draft = draft
             self.target = target
         
         def __call__(self):
             self.target.a1 = self.draft.a1
     
     provideAdapter(Syncer1, name=u"s1")
     
     class Syncer2(object):
         implements(IDraftSyncer)
         adapts(Draft, Target)
         
         def __init__(self, draft, target):
             self.draft = draft
             self.target = target
         
         def __call__(self):
             self.target.a2 = self.draft.a2
     
     provideAdapter(Syncer2, name=u"s2")
     
     syncDraft(draft, target)
     
     self.assertEquals(1, target.a1)
     self.assertEquals(2, target.a2)
예제 #7
0
    def test_syncDraft(self):

        class Target(object):
            pass

        draft = Draft()
        draft.a1 = 1
        draft.a2 = 2

        target = Target()

        @adapter(Draft, Target)
        @implementer(IDraftSyncer)
        class Syncer1(object):

            def __init__(self, draft, target):
                self.draft = draft
                self.target = target

            def __call__(self):
                self.target.a1 = self.draft.a1

        provideAdapter(Syncer1, name=u's1')

        @adapter(Draft, Target)
        @implementer(IDraftSyncer)
        class Syncer2(object):

            def __init__(self, draft, target):
                self.draft = draft
                self.target = target

            def __call__(self):
                self.target.a2 = self.draft.a2

        provideAdapter(Syncer2, name=u's2')

        syncDraft(draft, target)

        self.assertEqual(1, target.a1)
        self.assertEqual(2, target.a2)
예제 #8
0
    def test_getCurrentDraft_draft_set_create(self):
        request = self.request

        management = ICurrentDraftManagement(request)
        management.draft = setDraft = Draft()

        draft = getCurrentDraft(request, create=True)
        self.assertEqual(setDraft, draft)

        response = request.response
        self.assertFalse('plone.app.drafts.targetKey' in response.cookies)
        self.assertFalse('plone.app.drafts.draftName' in response.cookies)
예제 #9
0
    def test_interfaces(self):

        self.folder.invokeFactory('Document', 'd1')
        target = self.folder['d1']

        draft = Draft()
        proxy = DraftProxy(draft, target)

        self.assertFalse(IDraft.providedBy(proxy))
        self.assertTrue(IDraftProxy.providedBy(proxy))

        if HAS_PLONE_APP_CONTENTTYPES:
            from plone.app.contenttypes.interfaces import IDocument
            self.assertTrue(IDocument.providedBy(proxy))
        elif HAS_ATCONTENTTYPES:
            from Products.ATContentTypes.interfaces import IATDocument
            self.assertTrue(IATDocument.providedBy(proxy))
예제 #10
0
 def factory(userId, targetKey):
     return Draft(name=u'foo')
예제 #11
0
 def test_discardDraft_no_user(self):
     self.storage.createDraft('user1', '123')
     draft = Draft('user2', '123', u'draft')
     self.storage.discardDraft(draft)
예제 #12
0
 def test_discardDraft_not_found(self):
     self.storage.createDraft('user1', '123')
     draft = Draft('user1', '123', u'bogus')
     self.storage.discardDraft(draft)