Example #1
0
 def _register(self):
     from zope.interface import Interface
     from karl.models.interfaces import ITagQuery
     karl.testing.registerAdapter(DummyTagQuery, (Interface, Interface),
                                  ITagQuery)
     from repoze.workflow.testing import registerDummyWorkflow
     registerDummyWorkflow('security')
Example #2
0
 def _register(self):
     from zope.interface import Interface
     from karl.models.interfaces import ITagQuery
     karl.testing.registerAdapter(DummyTagQuery, (Interface, Interface),
                                  ITagQuery)
     from repoze.workflow.testing import registerDummyWorkflow
     registerDummyWorkflow('security')
Example #3
0
 def _register(self):
     from zope.interface import Interface
     from karl.utilities.interfaces import IKarlDates
     from karl.models.interfaces import ITagQuery
     testing.registerUtility(dummy, IKarlDates)
     testing.registerAdapter(DummyTagQuery, (Interface, Interface),
                             ITagQuery)
     from repoze.workflow.testing import registerDummyWorkflow
     registerDummyWorkflow('security')
Example #4
0
    def setUp(self):
        cleanUp()

        from repoze.lemonade.testing import registerContentFactory
        from karl.content.interfaces import ICommunityFile
        registerContentFactory(testing.DummyModel, ICommunityFile)

        from zope.interface import Interface
        from repoze.workflow.testing import registerDummyWorkflow
        self.workflow = DummyWorkflow()
        registerDummyWorkflow('security', self.workflow, Interface)
Example #5
0
    def setUp(self):
        testing.cleanUp()

        from repoze.lemonade.testing import registerContentFactory
        from karl.content.interfaces import ICommunityFile
        from karl.content.models.files import CommunityFile
        registerContentFactory(CommunityFile, ICommunityFile)

        from zope.interface import Interface
        from repoze.workflow.testing import registerDummyWorkflow
        self.workflow = DummyWorkflow()
        registerDummyWorkflow('security', self.workflow, Interface)
Example #6
0
    def setUp(self):
        testing.cleanUp()

        from repoze.lemonade.testing import registerContentFactory
        from karl.content.interfaces import ICommunityFile
        from karl.content.models.files import CommunityFile

        registerContentFactory(CommunityFile, ICommunityFile)

        from zope.interface import Interface
        from repoze.workflow.testing import registerDummyWorkflow

        self.workflow = DummyWorkflow()
        registerDummyWorkflow("security", self.workflow, Interface)
Example #7
0
    def test_it_two_comments(self):
        from karl.models.interfaces import ICommunity
        from karl.models.interfaces import ISite
        from zope.interface import directlyProvides
        from karl.testing import DummyProfile
        from repoze.workflow.testing import registerDummyWorkflow
        site = testing.DummyModel()
        site['test'] = context = testing.DummyModel()
        directlyProvides(context, ICommunity, ISite)
        registerDummyWorkflow('security')
        context.catalog = {'creation_date': DummyCreationDateIndex()}
        context['profiles'] = profiles = testing.DummyModel()
        profiles['dummy'] = DummyProfile(title='Dummy Creator')
        from webob.multidict import MultiDict
        request = testing.DummyRequest(params=MultiDict({
            'year': 2009,
            'month': 4
        }))
        request.layout_manager = mock.Mock()
        from karl.utilities.interfaces import IKarlDates
        karl.testing.registerUtility(dummy, IKarlDates)
        from datetime import datetime
        entry = testing.DummyModel(creator='dummy',
                                   title='Dummy Entry',
                                   description='Some words',
                                   created=datetime(2009, 4, 15))
        from zope.interface import directlyProvides
        from karl.content.interfaces import IBlogEntry
        directlyProvides(entry, IBlogEntry)
        entry['comments'] = testing.DummyModel()
        entry['comments']['1'] = DummyComment()
        entry['comments']['2'] = DummyComment()
        context['e1'] = entry

        def dummy_byline_info(context, request):
            return context

        from zope.interface import Interface
        from karl.content.views.interfaces import IBylineInfo
        karl.testing.registerAdapter(dummy_byline_info, (Interface, Interface),
                                     IBylineInfo)
        response = self._callFUT(context, request)
        self.assertEqual(len(response['entries']), 1)
        self.assertEqual(response['entries'][0]['title'], 'Dummy Entry')
        self.assertEqual(response['entries'][0]['creator_href'],
                         'http://example.com/test/e1/')
        self.assertEqual(response['entries'][0]['href'],
                         'http://example.com/test/e1/')
        self.assertEqual(response['entries'][0]['creator_title'],
                         'Dummy Creator')
Example #8
0
    def test_it_two_comments(self):
        from karl.models.interfaces import ICommunity
        from karl.models.interfaces import ISite
        from zope.interface import directlyProvides
        from karl.testing import DummyProfile
        from repoze.workflow.testing import registerDummyWorkflow

        site = testing.DummyModel()
        site["test"] = context = testing.DummyModel()
        directlyProvides(context, ICommunity, ISite)
        registerDummyWorkflow("security")
        context.catalog = {"creation_date": DummyCreationDateIndex()}
        context["profiles"] = profiles = testing.DummyModel()
        profiles["dummy"] = DummyProfile(title="Dummy Creator")
        from webob.multidict import MultiDict

        request = testing.DummyRequest(params=MultiDict({"year": 2009, "month": 4}))
        request.layout_manager = mock.Mock()
        from karl.utilities.interfaces import IKarlDates

        karl.testing.registerUtility(dummy, IKarlDates)
        from datetime import datetime

        entry = testing.DummyModel(
            creator="dummy", title="Dummy Entry", description="Some words", created=datetime(2009, 4, 15)
        )
        from zope.interface import directlyProvides
        from karl.content.interfaces import IBlogEntry

        directlyProvides(entry, IBlogEntry)
        entry["comments"] = testing.DummyModel()
        entry["comments"]["1"] = DummyComment()
        entry["comments"]["2"] = DummyComment()
        context["e1"] = entry

        def dummy_byline_info(context, request):
            return context

        from zope.interface import Interface
        from karl.content.views.interfaces import IBylineInfo

        karl.testing.registerAdapter(dummy_byline_info, (Interface, Interface), IBylineInfo)
        response = self._callFUT(context, request)
        self.assertEqual(len(response["entries"]), 1)
        self.assertEqual(response["entries"][0]["title"], "Dummy Entry")
        self.assertEqual(response["entries"][0]["creator_href"], "http://example.com/test/e1/")
        self.assertEqual(response["entries"][0]["href"], "http://example.com/test/e1/")
        self.assertEqual(response["entries"][0]["creator_title"], "Dummy Creator")
Example #9
0
 def _registerDummyWorkflow(self):
     from repoze.workflow.testing import registerDummyWorkflow
     wf = DummyWorkflow(
         [{'transitions':['private'],'name': 'public', 'title':'Public'},
          {'transitions':['public'], 'name': 'private', 'title':'Private'}])
     workflow = registerDummyWorkflow('security', wf)
     return workflow
Example #10
0
 def _registerDummyWorkflow(self):
     from repoze.workflow.testing import registerDummyWorkflow
     wf = DummyWorkflow(
         [{'transitions':['private'],'name': 'public', 'title':'Public'},
          {'transitions':['public'], 'name': 'private', 'title':'Private'}])
     workflow = registerDummyWorkflow('security', wf)
     return workflow
Example #11
0
 def test_it_two_comments(self):
     from karl.models.interfaces import ICommunity
     from karl.models.interfaces import ISite
     from zope.interface import directlyProvides
     from karl.testing import DummyProfile
     from repoze.workflow.testing import registerDummyWorkflow
     site = testing.DummyModel()
     site['test'] = context = testing.DummyModel()
     directlyProvides(context, ICommunity, ISite)
     registerDummyWorkflow('security')
     context.catalog = {'creation_date': DummyCreationDateIndex()}
     context['profiles'] = profiles = testing.DummyModel()
     profiles['dummy'] = DummyProfile(title='Dummy Creator')
     from webob.multidict import MultiDict
     request = testing.DummyRequest(
         params=MultiDict({'year': 2009, 'month': 4}))
     request.layout_manager = mock.Mock()
     from karl.utilities.interfaces import IKarlDates
     karl.testing.registerUtility(dummy, IKarlDates)
     from datetime import datetime
     entry = testing.DummyModel(
         creator='dummy', title='Dummy Entry',
         description='Some words',
         created=datetime(2009, 4, 15))
     from zope.interface import directlyProvides
     from karl.content.interfaces import IBlogEntry
     directlyProvides(entry, IBlogEntry)
     entry['comments'] = testing.DummyModel()
     entry['comments']['1'] = DummyComment()
     entry['comments']['2'] = DummyComment()
     context['e1'] = entry
     def dummy_byline_info(context, request):
         return context
     from zope.interface import Interface
     from karl.content.views.interfaces import IBylineInfo
     karl.testing.registerAdapter(dummy_byline_info, (Interface, Interface),
                                  IBylineInfo)
     response = self._callFUT(context, request)
     self.assertEqual(len(response['entries']), 1)
     self.assertEqual(response['entries'][0]['title'], 'Dummy Entry')
     self.assertEqual(response['entries'][0]['creator_href'],
                      'http://example.com/test/e1/')
     self.assertEqual(response['entries'][0]['href'],
                      'http://example.com/test/e1/')
     self.assertEqual(response['entries'][0]['creator_title'],
                      'Dummy Creator')
 def test_handle_submit_success(self):
     from karl.models.interfaces import IProfile
     from repoze.lemonade.testing import registerContentFactory
     from repoze.sendmail.interfaces import IMailDelivery
     from repoze.workflow.testing import registerDummyWorkflow
     from karl.models.interfaces import ICommunity
     from zope.interface import directlyProvides
     workflow = registerDummyWorkflow('security')
     mailer = karltesting.DummyMailer()
     karltesting.registerUtility(mailer, IMailDelivery)
     registerContentFactory(DummyContent, IProfile)
     class DummyWhoPlugin(object):
         def remember(self, environ, identity):
             self.identity = identity
             return []
     request = self._makeRequest()
     community = testing.DummyModel()
     profiles = testing.DummyModel()
     community['profiles'] = profiles
     community.users = karltesting.DummyUsers()
     community.members_group_name = 'community:members'
     directlyProvides(community, ICommunity)
     context = self._makeContext()
     community['invite'] = context
     community.title = 'Community'
     community.description = 'Community'
     community.sessions = DummySessions()
     context.email = '*****@*****.**'
     controller = self._makeOne(context, request)
     converted = {'password':'******', 'password_confirm':'1',
                  'username':'******',
                  'firstname':'firstname', 'lastname':'lastname',
                  'phone':'phone', 'extension':'extension',
                  'department':'department', 'position':'position',
                  'organization':'organization', 'location':'location',
                  'country':'country', 'websites':['website'],
                  'languages':'languages', 'date_format':'en-US',
                  'biography':'bio',
                  }
     karltesting.registerDummyRenderer(
         'karl.views:templates/email_accept_invitation.pt')
     response = controller.handle_submit(converted)
     self.assertEqual(response.location,
                      'http://example.com/?status_message=Welcome%21')
     self.assertEqual(community.users.added,
                      ('username', 'username', '1', ['community:members']))
     profiles = community['profiles']
     self.failUnless('username' in profiles)
     self.assertEqual(workflow.initialized,[profiles['username']])
     profile = profiles['username']
     self.assertEqual('phone', profile.phone)
     self.assertEqual('firstname', profile.firstname)
     self.assertEqual('lastname', profile.lastname)
     self.assertEqual('bio', profile.biography)
     self.failIf('invite' in community)
     self.assertEqual(len(mailer), 1)
Example #13
0
 def test_update_inactive_user(self):
     from repoze.workflow.testing import registerDummyWorkflow
     workflow = registerDummyWorkflow('security')
     self.root['profiles']['crossi'] = profile = testing.DummyModel(
         security_state='inactive')
     self.urllib2.filename = 'gsa_data5.xml'
     self._call_it()
     self.assertEqual(profile.languages, 'Esperanto, Portuguese')
     self.assertEqual(self.root.users.removed_users, [])
     self.assertEqual(len(workflow.transitioned), 0)
Example #14
0
    def setUp(self):
        cleanUp()

        site = testing.DummyModel()
        profiles = site['profiles'] = testing.DummyModel()
        encrypt = lambda x: 'sha:' + x
        users = site.users = karltesting.DummyUsers(encrypt=encrypt)
        self.site = site

        self.renderer = testing.registerDummyRenderer(
            'templates/admin/upload_users_csv.pt'
        )

        from repoze.lemonade.testing import registerContentFactory
        from karl.models.interfaces import IProfile
        registerContentFactory(testing.DummyModel, IProfile)

        from repoze.workflow.testing import registerDummyWorkflow
        registerDummyWorkflow('security')
Example #15
0
    def test_handle_submit(self):
        controller = self._makeOne(self.context, self.request)
        # first set up the easier fields
        converted = {'login': '******',
                     'password': '******',
                     'groups': ['group.KarlLovers'],
                     'home_path': '/home_path'}
        for fieldname, value in profile_data.items():
            if fieldname == 'photo':
                continue
            converted[fieldname] = value
        # then set up the photo
        from karl.models.interfaces import IImageFile
        from karl.models.tests.test_image import one_pixel_jpeg as dummy_photo
        from karl.testing import DummyUpload
        from karl.views.tests.test_file import DummyImageFile
        from repoze.lemonade.interfaces import IContentFactory
        from repoze.lemonade.testing import registerContentFactory
        testing.registerAdapter(lambda *arg: DummyImageFile, (IImageFile,),
                                IContentFactory)
        converted['photo'] = DummyUpload(filename='test.jpg',
                                         mimetype='image/jpeg',
                                         data=dummy_photo)
        # next the workflow
        from repoze.workflow.testing import registerDummyWorkflow
        workflow = registerDummyWorkflow('security')
        # and the profile content factory
        from karl.models.profile import Profile
        from karl.models.interfaces import IProfile
        registerContentFactory(Profile, IProfile)
        # finally submit our constructed form
        response = controller.handle_submit(converted)
        self.assertEqual('http://example.com/profile/login/', response.location)
        user = self.users.get_by_id('login')
        self.failIf(user is None)
        self.assertEqual(user['groups'], ['group.KarlLovers'])
        self.assertEqual(len(workflow.initialized), 1)
        self.failUnless('login' in self.context)
        profile = self.context['login']
        self.failUnless('photo.jpg' in profile)
        self.failUnless(len(profile['photo.jpg'].stream.read()) > 0)

        # try again and make sure it fails
        converted['firstname'] = 'different'
        from repoze.bfg.formish import ValidationError
        self.assertRaises(ValidationError, controller.handle_submit, converted)
        profile = self.context['login']
        self.failIf(profile.firstname != 'firstname')

        # once more, testing URL prepending
        converted['login'] = '******'
        converted['website'] = 'www.example.com'
        response = controller.handle_submit(converted)
        profile = self.context['newlogin']
        self.assertEqual(profile.website, 'http://www.example.com')
Example #16
0
    def _registerSecurityWorkflow(self):
        from repoze.workflow.testing import registerDummyWorkflow

        wf = DummyWorkflow(
            [
                {"transitions": ["private"], "name": "public", "title": "Public"},
                {"transitions": ["public"], "name": "private", "title": "Private"},
            ]
        )
        workflow = registerDummyWorkflow("security", wf)
        return workflow
Example #17
0
 def test_create_inactive_user(self):
     from repoze.workflow.testing import registerDummyWorkflow
     workflow = registerDummyWorkflow('security')
     self.urllib2.filename = 'gsa_data5.xml'
     self._call_it()
     users = self.root.users
     username, login, password, groups = users.added
     self.assertEqual(username, 'crossi')
     self.assertEqual(login, 'crossi')
     self.assertEqual(groups, set(['group.KarlStaff']))
     self.assertEqual(users.removed_users, ['crossi'])
     self.assertEqual(workflow.transitioned[0]['to_state'], 'inactive')
Example #18
0
    def test_deactivate_user(self):
        from repoze.workflow.testing import registerDummyWorkflow
        workflow = registerDummyWorkflow('security')

        self._call_it()
        users = self.root.users
        self.failIf(users.get_by_id('crossi') is None)
        self.assertEqual(users.removed_users, [])

        self.urllib2.filename = 'gsa_data5.xml'
        self._call_it()
        self.assertEqual(users.removed_users, ['crossi', 'crossi'])
        self.assertEqual(workflow.transitioned[0]['to_state'], 'inactive')
Example #19
0
    def setUp(self):
        testing.cleanUp()

        self.root = root = testing.DummyModel()
        root.users = karl.testing.DummyUsers()
        root['profiles'] = testing.DummyModel()

        from repoze.lemonade.testing import registerContentFactory
        from karl.models.interfaces import IProfile
        registerContentFactory(karl.testing.DummyProfile, IProfile)

        from repoze.workflow.testing import registerDummyWorkflow
        self.wf = registerDummyWorkflow('security')
Example #20
0
    def setUp(self):
        testing.cleanUp()

        self.root = root = testing.DummyModel()
        root.users = karl.testing.DummyUsers()
        root['profiles'] = testing.DummyModel()

        from repoze.lemonade.testing import registerContentFactory
        from karl.models.interfaces import IProfile
        registerContentFactory(karl.testing.DummyProfile, IProfile)

        from repoze.workflow.testing import registerDummyWorkflow
        self.wf = registerDummyWorkflow('security')
Example #21
0
File: tests.py Project: lslaz1/karl
 def test_object_is_reset(self):
     from repoze.lemonade.testing import registerContentFactory
     from repoze.workflow.testing import registerDummyWorkflow
     from repoze.lemonade.interfaces import IContent
     workflow = registerDummyWorkflow('security')
     from zope.interface import directlyProvides
     from zope.interface import Interface
     class IFoo(Interface):
         pass
     registerContentFactory(testing.DummyModel, IFoo)
     root = testing.DummyModel()
     directlyProvides(root, (IContent, IFoo))
     root.state = 'state'
     L = self._callFUT(root)
     self.assertEqual(workflow.resetted, [root])
     self.assertEqual(L, ['updated 1 content objects'])
Example #22
0
 def test_reactivate_user(self):
     from repoze.workflow.testing import registerDummyWorkflow
     workflow = registerDummyWorkflow('security', DummyWorkflow())
     self.root['profiles']['crossi'] = profile = testing.DummyModel(
         security_state='inactive',
         title='Mr. Handsome',
         email='mr@handsome')
     self.urllib2.filename = 'gsa_data4.xml'
     self._call_it()
     users = self.root.users
     self.assertEqual(profile.languages, 'Esperanto, Portuguese')
     username, login, password, groups = users.added
     self.assertEqual(username, 'crossi')
     self.assertEqual(login, 'crossi')
     self.assertEqual(groups, set(['group.KarlStaff']))
     self.assertEqual(users.removed_users, [])
     self.assertEqual(len(workflow.transitioned), 1)
Example #23
0
    def test_object_is_reset(self):
        from repoze.lemonade.testing import registerContentFactory
        from repoze.workflow.testing import registerDummyWorkflow
        from repoze.lemonade.interfaces import IContent
        workflow = registerDummyWorkflow('security')
        from zope.interface import directlyProvides
        from zope.interface import Interface

        class IFoo(Interface):
            pass

        registerContentFactory(testing.DummyModel, IFoo)
        root = testing.DummyModel()
        directlyProvides(root, (IContent, IFoo))
        root.state = 'state'
        L = self._callFUT(root)
        self.assertEqual(workflow.resetted, [root])
        self.assertEqual(L, ['updated 1 content objects'])
Example #24
0
File: tests.py Project: lslaz1/karl
 def test_object_with_custom_acl_matches_object_acl(self):
     from repoze.lemonade.testing import registerContentFactory
     from repoze.workflow.testing import registerDummyWorkflow
     from repoze.lemonade.interfaces import IContent
     workflow = registerDummyWorkflow('security')
     from zope.interface import directlyProvides
     from zope.interface import Interface
     class IFoo(Interface):
         pass
     registerContentFactory(testing.DummyModel, IFoo)
     root = testing.DummyModel()
     root.state = 'state'
     acl = []
     root.__acl__ = acl
     root.__custom_acl__ = acl
     directlyProvides(root, (IContent, IFoo))
     L = self._callFUT(root)
     self.assertEqual(workflow.resetted, [])
     self.assertEqual(L, ['updated 0 content objects'])
Example #25
0
    def test_duplicate_filenames(self):
        from zope.interface import directlyProvides
        from karl.content.interfaces import IImage
        from repoze.workflow.testing import registerDummyWorkflow
        from karl.content.interfaces import ICommunityFile
        workflow = registerDummyWorkflow(
            'security', content_type=ICommunityFile)
        root = testing.DummyModel()
        tempfolder = root['TEMP'] = DummyTempFolder()
        image = tempfolder['1234'] = testing.DummyModel(
            filename='kids.png'
        )
        directlyProvides(image, IImage)
        doc = root['doc'] = testing.DummyModel(
            text='Hey, check out this picture of my kids! '
                 '<img alt="My Kids"'
                 '     src="http://example.com/TEMP/1234/thumb/300x300.jpg"'
                 '     width="300" height="200"/>'
                 ' - Doting Father'
                '<img alt="My Kids"'
                '     src="http://example.com/doc/kids.png/thumb/300x300.jpg"'
                '     width="300" height="200"/>')
        doc['kids.png'] = testing.DummyModel(
            filename='kids.png'
        )
        doc.get_attachments = lambda: doc

        self._call_fut(doc, testing.DummyRequest())
        self.failIf('1234' in tempfolder)
        self.failUnless('kids.png' in doc)
        self.assertEqual(doc.text,
                'Hey, check out this picture of my kids! '
                '<img alt="My Kids"'
                '     src="http://example.com/doc/kids-1.png/thumb/300x300.jpg"'
                '     width="300" height="200"/>'
                ' - Doting Father'
                '<img alt="My Kids"'
                '     src="http://example.com/doc/kids.png/thumb/300x300.jpg"'
                '     width="300" height="200"/>')
        self.failUnless(tempfolder.cleanedup)
        self.assertEqual(workflow.initialized, [image])
Example #26
0
    def test_object_with_custom_acl_matches_object_acl(self):
        from repoze.lemonade.testing import registerContentFactory
        from repoze.workflow.testing import registerDummyWorkflow
        from repoze.lemonade.interfaces import IContent
        workflow = registerDummyWorkflow('security')
        from zope.interface import directlyProvides
        from zope.interface import Interface

        class IFoo(Interface):
            pass

        registerContentFactory(testing.DummyModel, IFoo)
        root = testing.DummyModel()
        root.state = 'state'
        acl = []
        root.__acl__ = acl
        root.__custom_acl__ = acl
        directlyProvides(root, (IContent, IFoo))
        L = self._callFUT(root)
        self.assertEqual(workflow.resetted, [])
        self.assertEqual(L, ['updated 0 content objects'])
Example #27
0
File: tests.py Project: zagy/karl
    def test_object_with_custom_acl_different_than_object_acl(self):
        from repoze.lemonade.testing import registerContentFactory
        from repoze.workflow.testing import registerDummyWorkflow
        from repoze.lemonade.interfaces import IContent

        workflow = registerDummyWorkflow("security")
        from zope.interface import directlyProvides
        from zope.interface import Interface

        class IFoo(Interface):
            pass

        registerContentFactory(testing.DummyModel, IFoo)
        root = testing.DummyModel()
        root.state = "state"
        root.__acl__ = ["123"]
        root.__custom_acl__ = []
        directlyProvides(root, (IContent, IFoo))
        L = self._callFUT(root)
        self.assertEqual(workflow.resetted, [root])
        self.assertEqual(L, ["updated 1 content objects"])
Example #28
0
    def test_duplicate_filenames(self):
        from zope.interface import directlyProvides
        from karl.content.interfaces import IImage
        from repoze.workflow.testing import registerDummyWorkflow
        from karl.content.interfaces import ICommunityFile
        workflow = registerDummyWorkflow('security',
                                         content_type=ICommunityFile)
        root = testing.DummyModel()
        tempfolder = root['TEMP'] = DummyTempFolder()
        image = tempfolder['1234'] = testing.DummyModel(filename='kids.png')
        directlyProvides(image, IImage)
        doc = root['doc'] = testing.DummyModel(
            text='Hey, check out this picture of my kids! '
            '<img alt="My Kids"'
            '     src="http://example.com/TEMP/1234/thumb/300x300.jpg"'
            '     width="300" height="200"/>'
            ' - Doting Father'
            '<img alt="My Kids"'
            '     src="http://example.com/doc/kids.png/thumb/300x300.jpg"'
            '     width="300" height="200"/>')
        doc['kids.png'] = testing.DummyModel(filename='kids.png')
        doc.get_attachments = lambda: doc

        self._call_fut(doc, testing.DummyRequest())
        self.failIf('1234' in tempfolder)
        self.failUnless('kids.png' in doc)
        self.assertEqual(
            doc.text, 'Hey, check out this picture of my kids! '
            '<img alt="My Kids"'
            '     src="http://example.com/doc/kids-1.png/thumb/300x300.jpg"'
            '     width="300" height="200"/>'
            ' - Doting Father'
            '<img alt="My Kids"'
            '     src="http://example.com/doc/kids.png/thumb/300x300.jpg"'
            '     width="300" height="200"/>')
        self.failUnless(tempfolder.cleanedup)
        self.assertEqual(workflow.initialized, [image])
Example #29
0
 def _callFUT(self, name, workflow=None):
     from repoze.workflow.testing import registerDummyWorkflow
     return registerDummyWorkflow(name, workflow)
Example #30
0
    def _mk_dummy_site(self):
        import datetime
        from karl.content.interfaces import IBlogEntry
        from karl.content.interfaces import ICalendarEvent
        from karl.content.interfaces import ICommunityFile
        from karl.content.interfaces import IWikiPage
        from karl.models.interfaces import IComment
        from karl.testing import DummyCommunity
        from karl.testing import DummyModel
        from karl.testing import DummyRoot
        from repoze.workflow.testing import registerDummyWorkflow
        from repoze.workflow.testing import DummyWorkflow
        from zope.interface import directlyProvides

        site = DummyRoot()
        site.tags = DummyTags()
        communities = site['communities'] = DummyModel()

        big_endians = communities['big_endians'] = DummyCommunity()
        big_endians.title = 'Big Endians'
        big_endians.member_names = ['fred', 'martin', 'daniela']
        big_endians.moderator_names = ['fred', 'daniela']
        big_endians.created = datetime.datetime(2010, 5, 12, 2, 42)
        big_endians.creator = 'daniela'
        big_endians.content_modified = datetime.datetime(2010, 6, 12, 2, 42)
        big_endians.__custom_acl__ = True

        content = big_endians['wiki1'] = DummyModel()
        content.created = datetime.datetime(2010, 5, 12, 3, 42)
        content.creator = 'daniela'
        directlyProvides(content, IWikiPage)

        content = big_endians['wiki2'] = DummyModel()
        content.created = datetime.datetime(1975, 7, 7, 7, 23)
        content.creator = 'fred'
        directlyProvides(content, IWikiPage)

        little_endians = communities['little_endians'] = DummyCommunity()
        little_endians.title = 'Little Endians'
        little_endians.member_names = ['dusty', 'roberta', 'nina']
        little_endians.moderator_names = ['nina']
        little_endians.created = datetime.datetime(2010, 5, 13, 6, 23)
        little_endians.creator = 'nina'
        little_endians.content_modified = datetime.datetime(
            2010, 6, 12, 3, 42
        )
        little_endians._p_deactivate = lambda: None
        little_endians.state = 'public'

        content = little_endians['blog1'] = DummyModel()
        content.created = datetime.datetime.now()
        content.creator = 'nina'
        directlyProvides(content, IBlogEntry)

        content['comment1'] = DummyModel()
        content = content['comment1']
        content.created = datetime.datetime.now()
        content.creator = 'roberta'
        directlyProvides(content, IComment)

        content = little_endians['file1'] = DummyModel()
        content.created = datetime.datetime.now()
        content.creator = 'dusty'
        directlyProvides(content, ICommunityFile)

        content = little_endians['event1'] = DummyModel()
        content.created = datetime.datetime.now()
        content.creator = 'dusty'
        directlyProvides(content, ICalendarEvent)

        registerDummyWorkflow('security', DummyWorkflow())

        return site
Example #31
0
def registerSecurityWorkflow():
    from repoze.workflow.testing import registerDummyWorkflow
    return registerDummyWorkflow('security')
Example #32
0
 def _registerWorkflow(self):
     from repoze.workflow.testing import registerDummyWorkflow
     return registerDummyWorkflow('security')
Example #33
0
 def _registerWorkflow(self):
     from repoze.workflow.testing import registerDummyWorkflow
     return registerDummyWorkflow('security')
Example #34
0
    def test_handle_submit_success(self):
        from karl.models.interfaces import IProfile
        from repoze.lemonade.testing import registerContentFactory
        from repoze.sendmail.interfaces import IMailDelivery
        from repoze.workflow.testing import registerDummyWorkflow
        from karl.models.interfaces import ICommunity
        from zope.interface import directlyProvides
        workflow = registerDummyWorkflow('security')
        mailer = karltesting.DummyMailer()
        karltesting.registerUtility(mailer, IMailDelivery)
        registerContentFactory(DummyContent, IProfile)

        class DummyWhoPlugin(object):
            def remember(self, environ, identity):
                self.identity = identity
                return []

        request = self._makeRequest()
        community = testing.DummyModel()
        profiles = testing.DummyModel()
        community['profiles'] = profiles
        community.users = karltesting.DummyUsers()
        community.members_group_name = 'community:members'
        directlyProvides(community, ICommunity)
        context = self._makeContext()
        community['invite'] = context
        community.title = 'Community'
        community.description = 'Community'
        community.sessions = DummySessions()
        context.email = '*****@*****.**'
        controller = self._makeOne(context, request)
        converted = {
            'password': '******',
            'password_confirm': '1',
            'username': '******',
            'firstname': 'firstname',
            'lastname': 'lastname',
            'phone': 'phone',
            'extension': 'extension',
            'department': 'department',
            'position': 'position',
            'organization': 'organization',
            'location': 'location',
            'country': 'country',
            'websites': ['website'],
            'languages': 'languages',
            'date_format': 'en-US',
            'biography': 'bio',
        }
        karltesting.registerDummyRenderer(
            'karl.views:templates/email_accept_invitation.pt')
        response = controller.handle_submit(converted)
        self.assertEqual(response.location,
                         'http://example.com/?status_message=Welcome%21')
        self.assertEqual(community.users.added,
                         ('username', 'username', '1', ['community:members']))
        profiles = community['profiles']
        self.failUnless('username' in profiles)
        self.assertEqual(workflow.initialized, [profiles['username']])
        profile = profiles['username']
        self.assertEqual('phone', profile.phone)
        self.assertEqual('firstname', profile.firstname)
        self.assertEqual('lastname', profile.lastname)
        self.assertEqual('bio', profile.biography)
        self.failIf('invite' in community)
        self.assertEqual(len(mailer), 1)
Example #35
0
 def _registerSecurityWorkflow(self):
     from repoze.workflow.testing import registerDummyWorkflow
     workflow = registerDummyWorkflow('security')
     return workflow
Example #36
0
def registerSecurityWorkflow():
    from repoze.workflow.testing import registerDummyWorkflow
    return registerDummyWorkflow('security')
Example #37
0
    def _mk_dummy_site(self):
        import datetime
        from karl.content.interfaces import IBlogEntry
        from karl.content.interfaces import ICalendarEvent
        from karl.content.interfaces import ICommunityFile
        from karl.content.interfaces import IWikiPage
        from karl.models.interfaces import IComment
        from karl.testing import DummyCommunity
        from karl.testing import DummyModel
        from karl.testing import DummyRoot
        from repoze.workflow.testing import registerDummyWorkflow
        from repoze.workflow.testing import DummyWorkflow
        from zope.interface import directlyProvides

        site = DummyRoot()
        site.tags = DummyTags()
        communities = site['communities'] = DummyModel()

        big_endians = communities['big_endians'] = DummyCommunity()
        big_endians.title = 'Big Endians'
        big_endians.member_names = ['fred', 'martin', 'daniela']
        big_endians.moderator_names = ['fred', 'daniela']
        big_endians.created = datetime.datetime(2010, 5, 12, 2, 42)
        big_endians.creator = 'daniela'
        big_endians.content_modified = datetime.datetime(2010, 6, 12, 2, 42)
        big_endians.__custom_acl__ = True

        content = big_endians['wiki1'] = DummyModel()
        content.created = datetime.datetime(2010, 5, 12, 3, 42)
        content.creator = 'daniela'
        directlyProvides(content, IWikiPage)

        content = big_endians['wiki2'] = DummyModel()
        content.created = datetime.datetime(1975, 7, 7, 7, 23)
        content.creator = 'fred'
        directlyProvides(content, IWikiPage)

        little_endians = communities['little_endians'] = DummyCommunity()
        little_endians.title = 'Little Endians'
        little_endians.member_names = ['dusty', 'roberta', 'nina']
        little_endians.moderator_names = ['nina']
        little_endians.created = datetime.datetime(2010, 5, 13, 6, 23)
        little_endians.creator = 'nina'
        little_endians.content_modified = datetime.datetime(2010, 6, 12, 3, 42)
        little_endians._p_deactivate = lambda: None
        little_endians.state = 'public'

        content = little_endians['blog1'] = DummyModel()
        content.created = datetime.datetime.now()
        content.creator = 'nina'
        directlyProvides(content, IBlogEntry)

        content['comment1'] = DummyModel()
        content = content['comment1']
        content.created = datetime.datetime.now()
        content.creator = 'roberta'
        directlyProvides(content, IComment)

        content = little_endians['file1'] = DummyModel()
        content.created = datetime.datetime.now()
        content.creator = 'dusty'
        directlyProvides(content, ICommunityFile)

        content = little_endians['event1'] = DummyModel()
        content.created = datetime.datetime.now()
        content.creator = 'dusty'
        directlyProvides(content, ICalendarEvent)

        registerDummyWorkflow('security', DummyWorkflow())

        return site
Example #38
0
 def _registerSecurityWorkflow(self):
     from repoze.workflow.testing import registerDummyWorkflow
     workflow = registerDummyWorkflow('security')
     return workflow
Example #39
0
 def _callFUT(self, name, workflow=None):
     from repoze.workflow.testing import registerDummyWorkflow
     return registerDummyWorkflow(name, workflow)