Skip to content
This repository has been archived by the owner on Jan 12, 2022. It is now read-only.

Commit

Permalink
testing zope.events
Browse files Browse the repository at this point in the history
  • Loading branch information
zupo committed Dec 24, 2012
1 parent 876f063 commit bec7b89
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 11 deletions.
6 changes: 2 additions & 4 deletions src/niteoweb/ipn/core/interfaces.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,7 @@ class MemberEnabledEvent(object):
"""Emmited when a member is enabled."""
implements(IMemberEnabledEvent)

def __init__(self, context, username):
self.context = context
def __init__(self, username):
self.username = username


Expand All @@ -61,6 +60,5 @@ class MemberDisabledEvent(object):
"""Emmited when a member is disabled."""
implements(IMemberDisabledEvent)

def __init__(self, context, username):
self.context = context
def __init__(self, username):
self.username = username
6 changes: 2 additions & 4 deletions src/niteoweb/ipn/core/ipn.py
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,7 @@ def enable_member(
)

# Notify third-party code that a member was enabled
notify(MemberEnabledEvent(self, member.id))

# TODO: send email with credentials + subscribe to aweber
notify(MemberEnabledEvent(member.id))

# Done!
logger.info("Enabled member '%s'." % email)
Expand Down Expand Up @@ -201,7 +199,7 @@ def disable_member(
)

# Notify third-party code that a member was enabled
notify(MemberDisabledEvent(self, member.id))
notify(MemberDisabledEvent(member.id))

# Done!
logger.info("Disabled member '%s'." % member.id)
Expand Down
10 changes: 9 additions & 1 deletion src/niteoweb/ipn/core/tests/test_disable.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@

from DateTime import DateTime
from niteoweb.ipn.core.interfaces import IIPN
from niteoweb.ipn.core.interfaces import IMemberDisabledEvent
from niteoweb.ipn.core.testing import IntegrationTestCase
from plone import api
from zope.component import eventtesting
from zope.component import queryAdapter
from zope.testing.loggingsupport import InstalledHandler

Expand All @@ -19,6 +21,7 @@ def setUp(self):
self.portal = self.layer['portal']
self.ipn = queryAdapter(self.portal, IIPN)
self.log = InstalledHandler('niteoweb.ipn.core')
eventtesting.setUp()

# create a test member and a test product group
api.user.create(email='enabled@email.com')
Expand All @@ -28,7 +31,7 @@ def setUp(self):
def tearDown(self):
"""Clean up after yourself."""
self.log.clear()
self.log.uninstall()
eventtesting.clearEvents()

@mock.patch('niteoweb.ipn.core.ipn.DateTime')
def test_disable_member(self, DT):
Expand All @@ -53,6 +56,11 @@ def test_disable_member(self, DT):
api.user.get_roles(username='enabled@email.com'),
)

# test event emitted
events = list(set(eventtesting.getEvents(IMemberDisabledEvent)))
self.assertEquals(len(events), 1)
self.assertEquals(events[0].username, 'enabled@email.com')

# test member history
self.assert_member_history(
username='enabled@email.com',
Expand Down
12 changes: 10 additions & 2 deletions src/niteoweb/ipn/core/tests/test_enable.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@
"""Tests for enable_member action."""

from DateTime import DateTime
from plone import api
from niteoweb.ipn.core.interfaces import IIPN
from niteoweb.ipn.core.interfaces import IMemberEnabledEvent
from niteoweb.ipn.core.testing import IntegrationTestCase
from plone import api
from zope.component import eventtesting
from zope.component import queryAdapter
from zope.testing.loggingsupport import InstalledHandler

Expand All @@ -19,6 +21,7 @@ def setUp(self):
self.portal = self.layer['portal']
self.ipn = queryAdapter(self.portal, IIPN)
self.log = InstalledHandler('niteoweb.ipn.core')
eventtesting.setUp()

# create a test product group and set it's validity
api.group.create(groupname='1')
Expand All @@ -28,7 +31,7 @@ def setUp(self):
def tearDown(self):
"""Clean up after yourself."""
self.log.clear()
self.log.uninstall()
eventtesting.clearEvents()

@mock.patch('niteoweb.ipn.core.ipn.DateTime')
def test_create_member(self, DT):
Expand Down Expand Up @@ -58,6 +61,11 @@ def test_create_member(self, DT):
DateTime('2012/01/11')
)

# test event emitted
events = list(set(eventtesting.getEvents(IMemberEnabledEvent)))
self.assertEquals(len(events), 1)
self.assertEquals(events[0].username, 'new@email.com')

# test member history
self.assert_member_history(
username='new@email.com',
Expand Down

0 comments on commit bec7b89

Please sign in to comment.