Beispiel #1
0
 def setUp(self):
     """
     Set up a store for testing.
     """
     self.store = Store()
     self.account = LoginAccount(store=self.store, password=u'1234')
     self.method = LoginMethod(store=self.store,
                               account=self.account,
                               localpart=u'username',
                               domain=u'domain.example.com',
                               internal=True,
                               protocol=u'*',
                               verified=True)
Beispiel #2
0
    def setUp(self):
        # XXX Incorrect setup.  See xquotient.test.test_compose.CompositionTestMixin
        self.store = Store(self.mktemp())

        LoginMethod(store=self.store,
                    internal=False,
                    protocol=u'email',
                    localpart=u'recipient',
                    domain=u'host',
                    verified=True,
                    account=self.store)

        self.fromAddr = smtpout.FromAddress(address=u'recipient@host',
                                            store=self.store)
        self.inbox = inbox.Inbox(store=self.store)
        installOn(self.inbox, self.store)
        self.composer = compose.Composer(store=self.store)
        installOn(self.composer, self.store)
        self.defaultFromAddress = self.store.findUnique(
            smtpout.FromAddress, smtpout.FromAddress._address == None)

        self.message = testMessageFactory(
            store=self.store,
            spam=False,
            impl=DummyMessageImplWithABunchOfAddresses(store=self.store))
        self.messageDetail = MessageDetail(self.message)
Beispiel #3
0
 def test_switchTo(self):
     """
     L{ShellServer.switchTo} takes a L{ITerminalServerFactory} and uses it
     to create a new L{ITerminalProtocol} which it connects to a
     L{_ReturnToMenuWrapper}.  L{buildTerminalProtocol} is passed an
     L{IViewer}.
     """
     terminal = FakeTerminal()
     store = Store()
     # Put a login method into the store so it can have a role.  See #2665.
     LoginMethod(
         store=store,
         internal=True,
         protocol=u'*',
         verified=True,
         localpart=u'alice',
         domain=u'example.com',
         # Not really an account, but simpler...
         account=store)
     server = ShellServer(store)
     server.makeConnection(terminal)
     factory = MockTerminalServerFactory()
     server.switchTo(factory)
     self.assertIdentical(factory.shellViewer.roleIn(store),
                          getSelfRole(store))
     self.assertTrue(isinstance(server._protocol, MockTerminalProtocol))
     self.assertTrue(
         isinstance(server._protocol.terminal, _ReturnToMenuWrapper))
     self.assertIdentical(server._protocol.terminal._shell, server)
     self.assertIdentical(server._protocol.terminal._terminal, terminal)
def createDatabase(store):
    LoginMethod(store=store,
                localpart=LOCAL,
                domain=DOMAIN,
                verified=VERIFIED,
                protocol=PROTOCOL,
                account=store,
                internal=INTERNAL)
    installOn(Composer(store=store), store)
def createDatabase(s):
    LoginMethod(store=s,
                localpart=u'foo',
                domain=u'bar',
                verified=True,
                protocol=u'*',
                account=s,
                internal=False)
    DSPAMFilter(store=s)
 def setUp(self):
     self.store = Store()
     # Cheat so getSelfRole will work...
     lm = LoginMethod(store=self.store,
                      localpart=u'me',
                      domain=u'here',
                      internal=True,
                      protocol=u'*',
                      account=self.store,
                      verified=True)
def createDatabase(s):
    """
    Install a Composer on the given store.
    """
    LoginMethod(store=s,
                localpart=u'foo',
                domain=u'bar',
                verified=True,
                protocol=u'*',
                account=s,
                internal=False)
    Composer(store=s).installOn(s)
    def getInbox(self):
        """
        Return a newly created Inbox, in a newly created Store.
        """
        s = Store()
        LoginMethod(store=s,
                    internal=False,
                    protocol=u'email',
                    localpart=u'default',
                    domain=u'host',
                    verified=True,
                    account=s)

        installOn(Composer(store=s), s)
        installOn(Catalog(store=s), s)
        installOn(MessageLister(store=s), s)
        inbox = Inbox(store=s)
        installOn(inbox, s)
        return inbox
Beispiel #9
0
    def setUp(self):
        self.store = Store(dbdir=self.mktemp())

        installOn(inbox.Inbox(store=self.store), self.store)
        self.composer = compose.Composer(store=self.store)
        installOn(self.composer, self.store)

        LoginMethod(store=self.store,
                    internal=False,
                    protocol=u'email',
                    localpart=u'recipient',
                    domain=u'host',
                    verified=True,
                    account=self.store)

        self.msg = testMessageFactory(
            store=self.store,
            spam=False,
            impl=DummyMessageImplWithABunchOfAddresses(store=self.store))
        self.msgDetail = MessageDetail(self.msg)
Beispiel #10
0
def createDatabase(s):
    """
    Install a Composer and ComposePreferenceCollection on the given store.
    """
    LoginMethod(store=s,
                localpart=u'foo',
                domain=u'bar',
                verified=True,
                protocol=u'*',
                account=s,
                internal=False)

    Composer(store=s).installOn(s)

    ComposePreferenceCollection(store=s,
                                smarthostAddress=u'foo2@bar',
                                smarthostUsername=u'foo2',
                                smarthostPort=23,
                                smarthostPassword=u'secret',
                                preferredSmarthost=u'localhost').installOn(s)
def createStore(testCase):
    location = testCase.mktemp()
    s = Store(location)
    da = DeliveryAgent(store=s)
    installOn(da, s)
    makeSomeMessages(testCase, da, location)
    installOn(POP3Up(store=s), s)
    ls = LoginSystem(store=s)
    installOn(ls, s)

    # Engage in some trickery to allow this to be used as its own user.
    la = LoginAccount(store=s, password=u'asdfjkl;', avatars=s, disabled=False)
    LoginMethod(store=s,
                account=la,
                localpart=u'user',
                domain=u'example.com',
                protocol=u'email',
                internal=True,
                verified=True)
    return s
def createDatabase(s):
    LoginMethod(store=s,
                localpart=u'foo',
                domain=u'bar',
                verified=True,
                protocol=u'*',
                account=s,
                internal=False)

    FromAddress(store=s,
                address=u'foo@bar',
                smtpHost=u'bar',
                smtpPort=26,
                smtpUsername=u'foo',
                smtpPassword=u'secret')
    FromAddress(store=s,
                address=u'foo2@bar',
                smtpHost=u'bar',
                smtpPort=26,
                smtpUsername=u'foo2',
                smtpPassword=u'secret')
Beispiel #13
0
    def getFromAddressScrollTable(self):
        s = Store()

        LoginMethod(store=s,
                    internal=False,
                    protocol=u'email',
                    localpart=u'default',
                    domain=u'host',
                    verified=True,
                    account=s)

        installOn(compose.Composer(store=s), s)

        smtpout.FromAddress(store=s,
                            address=u'notdefault@host',
                            smtpHost=u'host',
                            smtpUsername=u'notdefault')

        f = smtpout.FromAddressScrollTable(s)
        f.setFragmentParent(self)
        f.docFactory = getLoader(f.fragmentName)
        return f
    def _getComposeFragment(self, composeFragFactory=compose.ComposeFragment):

        s = Store()

        LoginMethod(store=s,
                    internal=False,
                    protocol=u'email',
                    localpart=u'default',
                    domain=u'host',
                    verified=True,
                    account=s)

        installOn(Inbox(store=s), s)

        smtpout.FromAddress(store=s, address=u'*****@*****.**').setAsDefault()

        composer = compose.Composer(store=s)
        installOn(composer, s)

        composeFrag = composeFragFactory(composer)
        composeFrag.jsClass = u'Quotient.Test.ComposeController'
        composeFrag.setFragmentParent(self)
        composeFrag.docFactory = getLoader(composeFrag.fragmentName)
        return (s, composeFrag)
Beispiel #15
0
class HeuristicTestCases(unittest.TestCase):
    """
    These are tests for sharing APIs which heuristically determine identifying
    information about a user's store or a shared item.
    """

    def setUp(self):
        """
        Set up a store for testing.
        """
        self.store = Store()
        self.account = LoginAccount(store=self.store, password=u'1234')
        self.method = LoginMethod(store=self.store,
                                  account=self.account,
                                  localpart=u'username',
                                  domain=u'domain.example.com',
                                  internal=True,
                                  protocol=u'*',
                                  verified=True)


    def test_getSelfRole(self):
        """
        The self-role of a store should be determined by its L{LoginMethod}s.
        """
        self.assertEquals(list(self.store.query(sharing.Role)), [])
        me = sharing.getSelfRole(self.store)
        self.assertEquals(me.externalID, u'*****@*****.**')
        self.assertEquals(me.store, self.store)
        self.assertEquals(list(me.allRoles()),
                          [me,
                           sharing.getAuthenticatedRole(self.store),
                           sharing.getEveryoneRole(self.store)])


    def test_getAccountRole(self):
        """
        L{getAccountRole} returns a L{Role} in a given store for one of the
        account names passed to it.
        """
        role = sharing.getAccountRole(
            self.store, [(u"username", u"domain.example.com")])
        self.assertEquals(role.externalID, u"*****@*****.**")


    def test_noAccountRole(self):
        """
        L{getAccountRole} raises L{ValueError} if passed an empty list of account names.
        """
        self.assertRaises(ValueError, sharing.getAccountRole, self.store, [])


    def test_identifierFromSharedItem(self):
        """
        L{sharing.Identifier.fromSharedItem} should identify a shared Item's shareID.
        """
        t = PrivateThing(store=self.store)
        sharing.getEveryoneRole(self.store).shareItem(t, shareID=u'asdf')
        sid = sharing.Identifier.fromSharedItem(t)
        self.assertEquals(sid.shareID, u'asdf')
        self.assertEquals(sid.localpart, u'username')
        self.assertEquals(sid.domain, u'domain.example.com')


    def test_identifierFromSharedItemMulti(self):
        """
        L{sharing.Identifier.fromSharedItem} should identify a shared Item's
        shareID even if it is shared multiple times.
        """
        t = PrivateThing(store=self.store)
        sharing.getEveryoneRole(self.store).shareItem(t, shareID=u'asdf')
        sharing.getAuthenticatedRole(self.store).shareItem(t, shareID=u'jkl;')
        sid = sharing.Identifier.fromSharedItem(t)
        self.assertIn(sid.shareID, [u'asdf', u'jkl;'])
        self.assertEquals(sid.localpart, u'username')
        self.assertEquals(sid.domain, u'domain.example.com')


    def test_identifierFromSharedItemNoShares(self):
        """
        L{sharing.Identifier.fromSharedItem} should raise L{NoSuchShare} if the given
        item is not shared.
        """
        t = PrivateThing(store=self.store)
        self.assertRaises(sharing.NoSuchShare, sharing.Identifier.fromSharedItem, t)


    def test_identifierFromSharedItemNoMethods(self):
        """
        L{sharing.Identifier.fromSharedItem} should raise L{NoSuchShare} if the given
        item's store contains no L{LoginMethod} objects.
        """
        self.method.deleteFromStore()
        t = PrivateThing(store=self.store)
        sharing.getEveryoneRole(self.store).shareItem(t, shareID=u'asdf')
        self.assertRaises(sharing.NoSuchShare, sharing.Identifier.fromSharedItem, t)