Exemple #1
0
 def test_it(self):
     karltesting.registerSettings()
     gf = self._callFUT()
     self.assertEqual(gf, [
         ('group.KarlAdmin', 'KarlAdmin'),
         ('group.KarlLovers', 'KarlLovers')
         ])
Exemple #2
0
    def setUp(self):
        from zope.interface import directlyProvides
        from karl.content.interfaces import ICommunityFile

        config = cleanUp()
        config.setup_registry()  # this is not a unit test

        karltesting.registerSettings()

        # Create dummy site skel
        community = karltesting.DummyCommunity()
        site = community.__parent__.__parent__

        profiles = testing.DummyModel()
        site["profiles"] = profiles
        self.profile = profiles["member"] = karltesting.DummyProfile()
        profiles["creator"] = karltesting.DummyProfile()

        community["files"] = testing.DummyModel()

        f = testing.DummyModel(text="This is a test",
                               description="Some description")
        community["files"]["file"] = f
        f.title = "An interesting file"
        f.docid = 0
        directlyProvides(f, ICommunityFile)
        self.f = f
        f.creator = "creator"
Exemple #3
0
    def setUp(self):
        cleanUp()

        from zope.interface import directlyProvides
        from karl.content.interfaces import IBlogEntry

        karltesting.registerSettings()

        # Create dummy site skel
        community = karltesting.DummyCommunity()
        site = community.__parent__.__parent__

        profiles = testing.DummyModel()
        site["profiles"] = profiles
        self.profile = profiles["member"] = karltesting.DummyProfile()
        profiles["creator"] = karltesting.DummyProfile()

        community["blog"] = testing.DummyModel()

        blogentry = testing.DummyModel(text="This is a test")
        community["blog"]["blogentry"] = blogentry
        blogentry["attachments"] = testing.DummyModel()
        blogentry.title = "Blog Entry"
        blogentry.docid = 0
        directlyProvides(blogentry, IBlogEntry)
        self.blogentry = blogentry

        blogentry["comments"] = comments = testing.DummyModel()
        self.comment = self._add_comment(blogentry)
Exemple #4
0
    def setUp(self):
        from zope.interface import directlyProvides
        from karl.content.interfaces import IBlogEntry

        config = cleanUp()
        config.setup_registry()  # this is not a unit test

        karltesting.registerSettings()

        # Create dummy site skel
        self.community = community = karltesting.DummyCommunity()
        site = community.__parent__.__parent__

        profiles = testing.DummyModel()
        site["profiles"] = profiles
        self.profile = profiles["member"] = karltesting.DummyProfile()
        profiles["creator"] = karltesting.DummyProfile()

        community["blog"] = testing.DummyModel()

        blogentry = testing.DummyModel(text="This is a test")
        community["blog"]["blogentry"] = blogentry
        blogentry["attachments"] = testing.DummyModel()
        blogentry.title = "Blog Entry"
        blogentry.docid = 0
        directlyProvides(blogentry, IBlogEntry)
        self.blogentry = blogentry
        blogentry.creator = "creator"
Exemple #5
0
 def test___call___no_parent(self):
     from repoze.bfg.testing import DummyModel
     from karl.testing import registerSettings
     registerSettings()
     context = DummyModel()
     url = self._makeOne(context)
     self.assertEqual(url(), 'http://offline.example.com/app/')
Exemple #6
0
    def setUp(self):
        import datetime
        from zope.interface import directlyProvides
        from karl.content.interfaces import IBlogEntry

        cleanUp()
        karltesting.registerSettings()

        # Create dummy site skel
        community = karltesting.DummyCommunity()
        site = community.__parent__.__parent__

        profiles = testing.DummyModel()
        site["profiles"] = profiles
        self.profile = profiles["member"] = karltesting.DummyProfile()
        profiles["creator"] = karltesting.DummyProfile()

        community["blog"] = testing.DummyModel()

        blogentry = testing.DummyModel(text="This is a test")
        blogentry.created = datetime.datetime(2010, 5, 12, 2, 42)
        blogentry.creator = 'member'
        community["blog"]["blogentry"] = blogentry
        blogentry["attachments"] = testing.DummyModel()
        blogentry.title = "Blog Entry"
        blogentry.docid = 0
        directlyProvides(blogentry, IBlogEntry)
        self.blogentry = blogentry

        blogentry["comments"] = testing.DummyModel()
        self.comment = self._add_comment(blogentry)
Exemple #7
0
    def setUp(self):
        cleanUp()

        from zope.interface import directlyProvides
        from karl.content.interfaces import ICommunityFile

        karltesting.registerSettings()

        # Create dummy site skel
        community = karltesting.DummyCommunity()
        site = community.__parent__.__parent__

        profiles = testing.DummyModel()
        site["profiles"] = profiles
        self.profile = profiles["member"] = karltesting.DummyProfile()
        profiles["creator"] = karltesting.DummyProfile()

        community["files"] = testing.DummyModel()

        f = testing.DummyModel(
            text="This is a test", description="Some description")
        community["files"]["file"] = f
        f.title = "An interesting file"
        f.docid = 0
        directlyProvides(f, ICommunityFile)
        self.f = f
        f.creator = "creator"
Exemple #8
0
 def test___call___no_parent(self):
     from pyramid.testing import DummyModel
     from karl.testing import registerSettings
     registerSettings()
     context = DummyModel()
     url = self._makeOne(context)
     self.assertEqual(url(), 'http://offline.example.com/app/')
Exemple #9
0
 def test___call___w_parent(self):
     from pyramid.testing import DummyModel
     from karl.testing import registerSettings
     registerSettings()
     root = self._makeRoot()
     context = root['foo'] = DummyModel()
     url = self._makeOne(context)
     self.assertEqual(url(), 'http://offline.example.com/app/foo')
Exemple #10
0
 def test___call___w_parent_chain(self):
     from pyramid.testing import DummyModel
     from karl.testing import registerSettings
     registerSettings()
     root = self._makeRoot()
     foo = root['foo'] = DummyModel()
     context = foo['bar'] = DummyModel()
     url = self._makeOne(context)
     self.assertEqual(url(), 'http://offline.example.com/app/foo/bar')
Exemple #11
0
    def setUp(self):
        self._cleanUp()

        from karl.utilities.interfaces import IAlerts
        from repoze.bfg.testing import registerUtility
        self.alerts = DummyAlerts()
        registerUtility(self.alerts, IAlerts)
        from karl.testing import registerSettings
        registerSettings()
Exemple #12
0
 def test___call___w_parent_chain(self):
     from repoze.bfg.testing import DummyModel
     from karl.testing import registerSettings
     registerSettings()
     parent = DummyModel()
     foo = parent['foo'] = DummyModel()
     context = foo['bar'] = DummyModel()
     url = self._makeOne(context)
     self.assertEqual(url(), 'http://offline.example.com/app/foo/bar')
Exemple #13
0
    def test_handle_submit(self):
        from karl.testing import registerSettings
        registerSettings()

        context = self.blog
        self.site.system_email_domain = 'example.com'
        tags = DummyTags()
        self.site.tags = tags
        from karl.testing import DummyCatalog
        self.site.catalog = DummyCatalog()
        self.site.sessions = DummySessions()
        from karl.testing import DummyUpload
        attachment1 = DummyUpload(filename="test1.txt")
        attachment2 = DummyUpload(filename=r"C:\My Documents\Ha Ha\test2.txt")
        converted = {
            'title':'foo',
            'text':'text',
            'tags':['tag1', 'tag2'],
            'sendalert':True,
            'security_state':'public',
            'attachments':[attachment1, attachment2],
            }
        self._register()
        from karl.content.interfaces import IBlogEntry
        from karl.content.interfaces import ICommunityFile
        from repoze.lemonade.testing import registerContentFactory
        registerContentFactory(DummyBlogEntry, IBlogEntry)
        registerContentFactory(DummyFile, ICommunityFile)
        request = self._makeRequest()
        controller = self._makeOne(context, request)
        response = controller.handle_submit(converted)
        self.assertEqual(response.location,
                         'http://example.com/communities/community/blog/foo/')
        self.assertEqual(3, len(self.mailer))
        for x in self.mailer:
            self.assertEqual(x.mfrom, '*****@*****.**')
        recipients = reduce(lambda x,y: x+y, [x.mto for x in self.mailer])
        recipients.sort()
        self.assertEqual(["*****@*****.**", "*****@*****.**", "*****@*****.**",], recipients)

        blogentry_url = "http://example.com/communities/community/blog/foo/"

        attachments_url = "%sattachments" % blogentry_url
        self.failUnless(context['foo']['attachments']['test1.txt'])
        self.failUnless(context['foo']['attachments']['test2.txt'])

        from base64 import decodestring
        body = self.mailer[0].msg.get_payload(decode=True)
        self.failUnless("%s/test1.txt" % attachments_url in body)
        self.failUnless("%s/test2.txt" % attachments_url in body)

        attachment1 = context['foo']['attachments']['test1.txt']
        self.assertEqual(attachment1.filename, "test1.txt")

        attachment2 = context['foo']['attachments']['test2.txt']
        self.assertEqual(attachment2.filename, "test2.txt")
Exemple #14
0
 def setUp(self):
     cleanUp()
     sessions = self.sessions = DummySessions()
     context = testing.DummyModel(sessions=sessions)
     context.title = 'profiles'
     self.context = context
     request = testing.DummyRequest()
     request.environ['repoze.browserid'] = '1'
     self.request = request
     karltesting.registerSettings()
Exemple #15
0
    def test_handle_submit(self):
        from karl.testing import registerSettings
        registerSettings()

        context = self.blog
        self.site.system_email_domain = 'example.com'
        tags = DummyTags()
        self.site.tags = tags
        from karl.testing import DummyCatalog
        self.site.catalog = DummyCatalog()
        self.site.sessions = DummySessions()
        from karl.testing import DummyUpload
        attachment1 = DummyUpload(filename="test1.txt")
        attachment2 = DummyUpload(filename=r"C:\My Documents\Ha Ha\test2.txt")
        converted = {
            'title': 'foo',
            'text': 'text',
            'tags': ['tag1', 'tag2'],
            'sendalert': True,
            'security_state': 'public',
            'attachments': [attachment1, attachment2],
        }
        self._register()
        from karl.content.interfaces import IBlogEntry
        from karl.content.interfaces import ICommunityFile
        from repoze.lemonade.testing import registerContentFactory
        registerContentFactory(DummyBlogEntry, IBlogEntry)
        registerContentFactory(DummyFile, ICommunityFile)
        request = self._makeRequest()
        controller = self._makeOne(context, request)
        karl.testing.registerDummyRenderer(
            'templates/email_blog_entry_alert.pt')
        response = controller.handle_submit(converted)
        self.assertEqual(response.location,
                         'http://example.com/communities/community/blog/foo/')
        self.assertEqual(3, len(self.mailer))
        recipients = reduce(lambda x, y: x + y, [x.mto for x in self.mailer])
        recipients.sort()
        self.assertEqual([
            "*****@*****.**",
            "*****@*****.**",
            "*****@*****.**",
        ], recipients)

        self.failUnless(context['foo']['attachments']['test1.txt'])
        self.failUnless(context['foo']['attachments']['test2.txt'])

        body = self.mailer[0].msg.get_payload(decode=True)
        self.assertEqual(body, '')

        attachment1 = context['foo']['attachments']['test1.txt']
        self.assertEqual(attachment1.filename, "test1.txt")

        attachment2 = context['foo']['attachments']['test2.txt']
        self.assertEqual(attachment2.filename, "test2.txt")
Exemple #16
0
 def setUp(self):
     cleanUp()
     self.sessions = sessions = DummySessions()
     context = DummyProfile(sessions=sessions)
     context.title = 'title'
     self.context = context
     request = testing.DummyRequest()
     request.environ['repoze.browserid'] = '1'
     self.request = request
     # this initializes the available groups
     karltesting.registerSettings()
Exemple #17
0
 def setUp(self):
     testing.cleanUp()
     from karl.testing import registerSettings
     registerSettings()
     site = makeRoot()
     self.context = site
     request = testing.DummyRequest()
     request.environ['repoze.browserid'] = '1'
     self.request = request
     karl.testing.registerDummyRenderer(
         'karl.views:forms/templates/snippets.pt')
Exemple #18
0
 def setUp(self):
     testing.cleanUp()
     from karl.testing import registerSettings
     registerSettings()
     site = makeRoot()
     self.context = site
     request = testing.DummyRequest()
     request.environ['repoze.browserid'] = '1'
     self.request = request
     karl.testing.registerDummyRenderer(
         'karl.views:forms/templates/snippets.pt')
Exemple #19
0
 def setUp(self):
     cleanUp()
     self.sessions = sessions = DummySessions()
     context = DummyProfile(sessions=sessions)
     context.title = 'title'
     self.context = context
     request = testing.DummyRequest()
     request.environ['repoze.browserid'] = '1'
     self.request = request
     # this initializes the available groups
     karltesting.registerSettings()
Exemple #20
0
 def setUp(self):
     testing.cleanUp()
     from karl.testing import registerSettings
     registerSettings()
     from karl.models.interfaces import ISite
     site = testing.DummyModel(sessions=DummySessions())
     directlyProvides(site, ISite)
     self.context = site
     request = testing.DummyRequest()
     request.environ['repoze.browserid'] = '1'
     self.request = request
     testing.registerDummyRenderer('karl.views:forms/templates/snippets.pt')
Exemple #21
0
    def test_handle_submit(self):
        from karl.testing import registerSettings

        registerSettings()

        context = self.blog
        self.site.system_email_domain = "example.com"
        tags = DummyTags()
        self.site.tags = tags
        from karl.testing import DummyCatalog

        self.site.catalog = DummyCatalog()
        self.site.sessions = DummySessions()
        from karl.testing import DummyUpload

        attachment1 = DummyUpload(filename="test1.txt")
        attachment2 = DummyUpload(filename=r"C:\My Documents\Ha Ha\test2.txt")
        converted = {
            "title": "foo",
            "text": "text",
            "tags": ["tag1", "tag2"],
            "sendalert": True,
            "security_state": "public",
            "attachments": [attachment1, attachment2],
        }
        self._register()
        from karl.content.interfaces import IBlogEntry
        from karl.content.interfaces import ICommunityFile
        from repoze.lemonade.testing import registerContentFactory

        registerContentFactory(DummyBlogEntry, IBlogEntry)
        registerContentFactory(DummyFile, ICommunityFile)
        request = self._makeRequest()
        controller = self._makeOne(context, request)
        karl.testing.registerDummyRenderer("templates/email_blog_entry_alert.pt")
        response = controller.handle_submit(converted)
        self.assertEqual(response.location, "http://example.com/communities/community/blog/foo/")
        self.assertEqual(3, len(self.mailer))
        recipients = reduce(lambda x, y: x + y, [x.mto for x in self.mailer])
        recipients.sort()
        self.assertEqual(["*****@*****.**", "*****@*****.**", "*****@*****.**"], recipients)

        self.failUnless(context["foo"]["attachments"]["test1.txt"])
        self.failUnless(context["foo"]["attachments"]["test2.txt"])

        body = self.mailer[0].msg.get_payload(decode=True)
        self.assertEqual(body, "")

        attachment1 = context["foo"]["attachments"]["test1.txt"]
        self.assertEqual(attachment1.filename, "test1.txt")

        attachment2 = context["foo"]["attachments"]["test2.txt"]
        self.assertEqual(attachment2.filename, "test2.txt")
Exemple #22
0
 def setUp(self):
     testing.cleanUp()
     from karl.testing import registerSettings
     registerSettings()
     from karl.models.interfaces import ISite
     site = testing.DummyModel(sessions=DummySessions())
     directlyProvides(site, ISite)
     self.context = site
     request = testing.DummyRequest()
     request.environ['repoze.browserid'] = '1'
     self.request = request
     karl.testing.registerDummyRenderer(
         'karl.views:forms/templates/snippets.pt')
Exemple #23
0
 def test_with_filename_too_big(self):
     from karl.testing import registerSettings
     from karl.content.interfaces import ICommunityFile
     from StringIO import StringIO
     registerSettings(upload_limit=1)
     attachments = [ DummyFile(filename='abc', mimetype='text/plain',
                               file=StringIO('abc')) ]
     folder = testing.DummyModel()
     from repoze.lemonade.testing import registerContentFactory
     class BigDummyFile(object):
         def __init__(self, **kw):
             self.__dict__.update(kw)
             self.size = 10000
     registerContentFactory(BigDummyFile, ICommunityFile)
     request = testing.DummyRequest()
     self.assertRaises(ValueError,
                       self._callFUT, attachments, folder, 'chris', request)
Exemple #24
0
    def test_handle_w_inactive_contacts(self):
        karltesting.registerSettings()
        md = self._registerMailDelivery()
        _called_with = self._registerCatalogSearch([0], inactive=True)
        message = self._makeMessage()
        root = testing.DummyModel()
        people = root['people'] = testing.DummyModel()
        section = people['section'] = testing.DummyModel()
        report = section['report'] = testing.DummyModel()
        report['mailinglist'] = testing.DummyModel(short_address='alias')
        report.getQuery = lambda: {'testing': True}
        adapter = self._makeOne(report)

        adapter.handle(message, {'report': 'section+report'}, 'text', ())

        self.assertEqual(_called_with, [{'testing': True}])
        self.assertEqual(len(md._sent), 0)
Exemple #25
0
 def test_with_filename_too_big(self):
     from karl.testing import registerSettings
     from karl.content.interfaces import ICommunityFile
     from StringIO import StringIO
     registerSettings(upload_limit=1)
     attachments = [ DummyFile(filename='abc', mimetype='text/plain',
                               file=StringIO('abc')) ]
     folder = testing.DummyModel()
     from repoze.lemonade.testing import registerContentFactory
     class BigDummyFile(object):
         def __init__(self, **kw):
             self.__dict__.update(kw)
             self.size = 10000
     registerContentFactory(BigDummyFile, ICommunityFile)
     request = testing.DummyRequest()
     self.assertRaises(ValueError,
                       self._callFUT, attachments, folder, 'chris', request)
Exemple #26
0
    def test_handle_w_mailinglist_wo_subdomain(self):
        karltesting.registerSettings()
        md = self._registerMailDelivery()
        _called_with = self._registerCatalogSearch([0, 1])
        message = self._makeMessage()
        root = testing.DummyModel()
        people = root['people'] = testing.DummyModel()
        section = people['section'] = testing.DummyModel()
        report = section['report'] = testing.DummyModel()
        report['mailinglist'] = testing.DummyModel(short_address='alias')
        report.getQuery = lambda: {'testing': True}
        adapter = self._makeOne(report)

        adapter.handle(message, {'report': 'section+report'}, 'text', ())

        self.assertEqual(len(md._sent), 2)
        for index, (to, sentmessage) in enumerate(md._sent):
            self.assertEqual(to, ['*****@*****.**' % index])
            self.failIf('Message-Id' in sentmessage)
            self.assertEqual(sentmessage['Reply-To'],
                            '*****@*****.**')
        self.assertEqual(_called_with, [{'testing': True}])
Exemple #27
0
    def setUp(self):
        import datetime
        from zope.interface import directlyProvides
        from karl.content.interfaces import IBlogEntry
        from karl.models.interfaces import ICommentsFolder

        cleanUp()
        karltesting.registerSettings()

        # Create dummy site skel
        community = karltesting.DummyCommunity()
        site = community.__parent__.__parent__

        profiles = testing.DummyModel()
        site["profiles"] = profiles
        self.profile = profiles["member"] = karltesting.DummyProfile()
        profiles["creator"] = karltesting.DummyProfile()

        community["blog"] = testing.DummyModel()
        community["blog"].__parent__ = community

        blogentry = testing.DummyModel(text="This is a test")
        blogentry.created = datetime.datetime(2010, 5, 12, 2, 42)
        blogentry.creator = 'member'
        community["blog"]["blogentry"] = blogentry
        blogentry.__parent__ = community['blog']
        blogentry["attachments"] = testing.DummyModel()
        blogentry["attachments"].__parent__ = blogentry
        blogentry.title = "Blog Entry"
        blogentry.docid = 0
        directlyProvides(blogentry, IBlogEntry)
        self.blogentry = blogentry

        blogentry["comments"] = testing.DummyModel()
        blogentry["comments"].__parent__ = self.blogentry
        directlyProvides(blogentry['comments'], ICommentsFolder)

        self.comment = self._add_comment(blogentry)
Exemple #28
0
    def setUp(self):
        from zope.interface import directlyProvides
        from karl.content.interfaces import ICalendarEvent

        config = cleanUp()
        config.setup_registry()  # this is not a unit test

        karltesting.registerSettings()
        karltesting.registerKarlDates()

        # Create dummy site skel
        community = karltesting.DummyCommunity()
        site = community.__parent__.__parent__

        profiles = testing.DummyModel()
        site["profiles"] = profiles
        self.profile = profiles["member"] = karltesting.DummyProfile()
        profiles["creator"] = karltesting.DummyProfile()

        community["calendar"] = testing.DummyModel()

        event = testing.DummyModel(
            text="This is a test",
            description="Some description",
            startDate=datetime(2009, 8, 5, 10, 0),
            endDate=datetime(2009, 8, 5, 11, 0),
            attendees=['alice', 'bob'],
            location='NYC',
            contact_name='Alice W',
            contact_email='*****@*****.**',
        )
        community["calendar"]["event"] = event
        event.title = "An Exciting Event!"
        event.docid = 0
        directlyProvides(event, ICalendarEvent)
        self.event = event
        event.creator = "creator"
Exemple #29
0
    def setUp(self):
        from zope.interface import directlyProvides
        from karl.content.interfaces import ICalendarEvent

        config = cleanUp()
        config.setup_registry() # this is not a unit test

        karltesting.registerSettings()
        karltesting.registerKarlDates()

        # Create dummy site skel
        community = karltesting.DummyCommunity()
        site = community.__parent__.__parent__

        profiles = testing.DummyModel()
        site["profiles"] = profiles
        self.profile = profiles["member"] = karltesting.DummyProfile()
        profiles["creator"] = karltesting.DummyProfile()

        community["calendar"] = testing.DummyModel()

        event = testing.DummyModel(
            text="This is a test",
            description="Some description",
            startDate=datetime(2009, 8, 5, 10, 0),
            endDate=datetime(2009, 8, 5, 11, 0),
            attendees=['alice', 'bob'],
            location='NYC',
            contact_name='Alice W',
            contact_email='*****@*****.**',
            )
        community["calendar"]["event"] = event
        event.title = "An Exciting Event!"
        event.docid = 0
        directlyProvides(event, ICalendarEvent)
        self.event = event
        event.creator = "creator"
Exemple #30
0
 def test___call___no_parent(self):
     from karl.testing import registerSettings
     registerSettings()
     root = self._makeRoot()
     url = self._makeOne(root)
     self.assertEqual(url(), 'http://offline.example.com/app/')
Exemple #31
0
 def _registerSettings(self):
     from karl.testing import registerSettings
     registerSettings()
Exemple #32
0
 def setUp(self):
     cleanUp()
     from karl.testing import registerSettings
     registerSettings()
Exemple #33
0
 def _registerSettings(self):
     from karl.testing import registerSettings
     registerSettings()
Exemple #34
0
 def setUp(self):
     cleanUp()
     karltesting.registerSettings()
Exemple #35
0
 def test___call___no_parent(self):
     from karl.testing import registerSettings
     registerSettings()
     root = self._makeRoot()
     url = self._makeOne(root)
     self.assertEqual(url(), 'http://offline.example.com/app/')