def createDatabase(store): """ Make a L{Person} in the given store. """ organizer = Organizer(store=store) person = Person(store=store, organizer=organizer, name=NAME) person.created = CREATED
def testMostRecentMessages(self): s = Store() o = Organizer(store=s) installOn(o, s) def makePerson(name, address): return EmailAddress(store=s, address=address, person=Person(store=s, organizer=o, name=name)).person p11 = makePerson(u'11 Message Person', u'11@person') p2 = makePerson(u'2 Message Person', u'2@person') def makeMessages(n, email): return list(reversed(list( testMessageFactory(store=s, subject=u'Message %d' % (i,), sender=email, spam=False, receivedWhen=Time()) for i in xrange(n)))) p11messages = makeMessages(11, u'11@person') p2messages = makeMessages(2, u'2@person') lister = MessageLister(store=s) getMessages = lambda person, count: list( lister.mostRecentMessages(person, count)) self.assertEquals(getMessages(p2, 3), p2messages) self.assertEquals(getMessages(p2, 2), p2messages) self.assertEquals(getMessages(p2, 1), p2messages[:-1]) self.assertEquals(getMessages(p11, 12), p11messages) self.assertEquals(getMessages(p11, 11), p11messages) self.assertEquals(getMessages(p11, 10), p11messages[:-1]) p11messages[0].trainSpam() self.assertEquals(getMessages(p11, 11), p11messages[1:]) # Used to be: # p11messages[1].draft = True # but this is now a nonsensical transition. p11messages[1].trainSpam() self.assertEquals(getMessages(p11, 11), p11messages[2:]) p11messages[2].moveToTrash() self.assertEquals(getMessages(p11, 11), p11messages[3:])
def test_getPeople(self): """ L{Inbox.getPeople} should return all L{Person} items in the store, sorted in the naive alphabetical way. """ organizer = Organizer(store=self.store) installOn(organizer, self.store) organizer.storeOwnerPerson.name = u'Carol' bob = Person(store=self.store, organizer=organizer, name=u'Bob') self.assertEquals(list(self.inbox.getPeople()), [bob, organizer.storeOwnerPerson])
def setUp(self): """ Extend L{_MessageRetrievalMixin.setUp} to also install an L{Organizer}, L{Person} and L{EmailAddress}, and an L{Message} from that person """ super(MessagesByPersonRetrievalTestCase, self).setUp() self.organizer = Organizer(store=self.store) installOn(self.organizer, self.store) self.person = Person(store=self.store, organizer=self.organizer, name=u'The Person') EmailAddress(store=self.store, address=u'the@person', person=self.person) self.messageFromPerson = testMessageFactory(store=self.store, read=False, spam=False, receivedWhen=Time(), sender=u'the@person')
def test_addPerson(self): """ Test that adding a person via the Quotient version of C{AddPersonFragment} works. """ def keyword(contactType): return contactType.uniqueIdentifier().encode('ascii') store = Store() self.organizer = Organizer(store=store) installOn(self.organizer, store) addPersonFrag = AddPersonFragment(self.organizer) name = u'Captain P.' email = u'foo@bar' fragment = addPersonFrag.addPerson(name, email) self.assertTrue(isinstance(fragment, PersonFragment)) person = fragment.person self.assertIdentical( store.findUnique( Person, Person.storeID != self.organizer.storeOwnerPerson.storeID), person) self.assertEqual(person.name, name) self.assertEqual(person.getEmailAddress(), email)
""" An interactive demonstration of various people-related functionality. Run this test like this:: $ twistd -n athena-widget --element=xmantissa.test.acceptance.people.{editperson,addperson} $ firefox http://localhost:8080/ """ from axiom.store import Store from axiom.dependency import installOn from xmantissa.people import Organizer, EditPersonView, AddPersonFragment store = Store() organizer = Organizer(store=store) installOn(organizer, store) person = organizer.createPerson(u'alice') def editperson(): """ Create a database with a Person in it and return the L{EditPersonView} for that person. """ return EditPersonView(person) def addperson(): """ Create a database with an L{Organizer} in it and return a L{AddPersonFragment} wrapped around the organizer.
def makeOrganizer(self): """ Return an L{Organizer}. """ return Organizer(store=Store())
def createDatabase(s): Organizer(store=s).installOn(s) MessageLister(store=s).installOn(s)
def createDatabase(s): installOn(Organizer(store=s), s)
def createDatabase(s): Organizer(store=s)