def test_normalize_key_invalid(self):
     key = "somestring"
     self.assertRaises(KeyError, self.container.add, key)
     badsub = ItemSubscriber()
     badsub.email = None
     badsub.user = None
     self.assertRaises(Invalid, self.container.add, badsub)
 def test_normalize_key_email(self):
     expected = ("email", "*****@*****.**")
     sub = ItemSubscriber()
     sub.email = expected[1]
     assert self.container._normalize_key(sub) == expected
     k, v = self.container.add(sub)
     assert k == expected
     assert expected in self.container
 def test_invariants(self):
     """Test interface invariants for IItemSubscriber"""
     verify = lambda sub: IItemSubscriber.validateInvariants(sub)
     # test empty email and user
     subscriber = ItemSubscriber()
     self.assertRaises(Invalid, verify, subscriber)
     # test email only
     subscriber.email = "*****@*****.**"
     self.fail_on_err(Invalid, verify, subscriber)
     # test both user and email
     subscriber.user = "******"
     self.fail_on_err(Invalid, verify, subscriber)
     # test user only
     subscriber.email = None
     self.fail_on_err(Invalid, verify, subscriber)
Ejemplo n.º 4
0
    def update(self):
        context = self.context
        mtool = getToolByName(context, 'portal_membership')
        self.uid = IUIDStrategy(context).getuid()
        self.container = queryUtility(ISubscribers)
        self.utility = getUtility(IDigestUtility)
        self.catalog = queryUtility(ISubscriptionCatalog)
        self.user = mtool.getAuthenticatedMember()
        self.user_id = self.user.getId()

        self.subscriber = ItemSubscriber(user=self.user_id)
        self.subscribed_daily = ('member', self.user_id) in self.catalog.search({'daily-digest': self.uid})
        self.subscribed_weekly = ('member', self.user_id) in self.catalog.search({'weekly-digest': self.uid})
        self.subscribed_nothing = not (self.subscribed_daily or self.subscribed_weekly)
 def test_signature(self):
     key1 = ("email", "*****@*****.**")
     sub1 = ItemSubscriber()
     self.assertRaises(Invalid, sub1.signature)  # no email, no user
     sub1.email = "*****@*****.**"
     assert sub1.signature() == key1
     key2 = ("member", "here")
     sub2 = ItemSubscriber()
     sub2.user = "******"  # default namespace is 'member'
     assert sub2.signature() == key2